Problem mit meinem Programm

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tobias96
User
Beiträge: 3
Registriert: Dienstag 22. November 2016, 22:13

Hallo Leute :) ,

Kann mir jemand bei meinem Problem behilflich sein, ich möchte das mein Programm, wenn ich z.B 5 eingebe für n den print teil für beide insgesamt 5x ausgibt und nicht 5 x beide print teile.

Mein Programm :

Code: Alles auswählen

n = input("n eingeben")
n = int(n)
i = 0

for i in range(0,n):

    print(n*"* " )
    print(((n-1)*" *"))

print("fertig")
Wäre echt toll, wenn mir jemand helfen könnt.

Lg
Tobias
Zuletzt geändert von Anonymous am Dienstag 22. November 2016, 22:28, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@Tobias96: Also mir ist nicht so ganz klar was Du erreichen willst. Kannst Du das eventuell noch einmal anders beschreiben und/oder Zeigen wie die Ausgabe für ein gegebenes `n` aussehen soll?

Die Zuweisung an `i` vor der Schleife macht keinen Sinn.

Statt `n` erst an die eingegebene Zeichenkette zu binden und dann an die Zahl die daraus umgewandelt wurde, solltest Du gleich auf die Eingabe die `int()`-Funktion anwenden.
Tobias96
User
Beiträge: 3
Registriert: Dienstag 22. November 2016, 22:13

BlackJack hat geschrieben:@Tobias96: Also mir ist nicht so ganz klar was Du erreichen willst. Kannst Du das eventuell noch einmal anders beschreiben und/oder Zeigen wie die Ausgabe für ein gegebenes `n` aussehen soll?

Die Zuweisung an `i` vor der Schleife macht keinen Sinn.

Statt `n` erst an die eingegebene Zeichenkette zu binden und dann an die Zahl die daraus umgewandelt wurde, solltest Du gleich auf die Eingabe die `int()`-Funktion anwenden.
Danke für deine schnelle antwort BlackJack , ja stimmt das mit i = 0 habe ich im nachhinein gemacht aus verzweiflung :D Also es soll ungefähr so sein, wenn ich für n 5 eingebe .

Code: Alles auswählen

* * * * *
 * * * *
* * * * *
 * * * * 
* * * * *
Er gibt es mir aber so aus :

Code: Alles auswählen

* * * * *
 * * * *
* * * * *
 * * * * 
* * * * * 
 * * * *
* * * * *
 * * * * 
* * * * * 
 * * * *
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

Tobias96 hat geschrieben:Also es soll ungefähr so sein, wenn ich für n 5 eingebe
Also etwas das so ähnlich wie ungefähr wie das folgende ist, je nach dem, was auch immer Du meinst:

Code: Alles auswählen

i = int(input('Bitte n eingeben:'))
for n in range(i):
    print(' *' * 4 if n % 2 else '* ' * 5)
BlackJack

@Tobias96: Dann willst Du nicht in jedem Schleifendurchlauf beide `print()`-Aufrufe machen, sondern abwechselnd den einen und den anderen. Also musst Du irgendwie mit einem ``if``/``else`` basierend auf dem Wert von `i` entscheiden welcher Aufruf gemacht werden soll. Welche mathematische Eigenschaft haben denn alle `i`-Werte für den einen Aufruf die die `i`-Werte für den anderen Aufruf nicht haben‽

@kbr: Den Benutzer nach `n` Fragen und die Eingabe dann an `i` binden, finde ich verwirrend. :-)

Edit: Ungetestet:

Code: Alles auswählen

from itertools import cycle, islice

n = int(input("n eingeben: "))
for line in islice(cycle([n * '* ', (n - 1) * ' *']), n):
    print(line)
Benutzeravatar
kbr
User
Beiträge: 1487
Registriert: Mittwoch 15. Oktober 2008, 09:27

BlackJack hat geschrieben:Den Benutzer nach `n` Fragen und die Eingabe dann an `i` binden, finde ich verwirrend. :-)
Das war extra um Dich zu verwirren, denn der Benutzer sieht 'i' ja gar nicht :)
Tobias96
User
Beiträge: 3
Registriert: Dienstag 22. November 2016, 22:13

Danke für eure hilfe hab es jetzt hinbekommen :)
Antworten