Seite 1 von 1

Problem mit meinem Programm

Verfasst: Dienstag 22. November 2016, 22:18
von Tobias96
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

Re: Problem mit meinem Programm

Verfasst: Dienstag 22. November 2016, 22:31
von 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.

Re: Problem mit meinem Programm

Verfasst: Dienstag 22. November 2016, 22:37
von Tobias96
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

* * * * *
 * * * *
* * * * *
 * * * * 
* * * * * 
 * * * *
* * * * *
 * * * * 
* * * * * 
 * * * *

Re: Problem mit meinem Programm

Verfasst: Dienstag 22. November 2016, 22:54
von kbr
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)

Re: Problem mit meinem Programm

Verfasst: Dienstag 22. November 2016, 22:57
von 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)

Re: Problem mit meinem Programm

Verfasst: Dienstag 22. November 2016, 23:04
von kbr
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 :)

Re: Problem mit meinem Programm

Verfasst: Mittwoch 23. November 2016, 18:26
von Tobias96
Danke für eure hilfe hab es jetzt hinbekommen :)