variable geschachtelte Schleife

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
Tengel
User
Beiträge: 210
Registriert: Sonntag 17. März 2013, 12:29

Diese Bücher :evil:

Code: Alles auswählen

anzahl_zeilen = int(input("Wie viele Zeilen Sterne möchtest du: "))
anzahl_sterne = int(input("Wieviele Sterne pro Zeile: "))

for zeile in range(0, anzahl_zeilen):
    for stern in range(0, anzahl_sterne):
        print("*",)
    print()

dieses print("*",) steht im Buch als print "*", - und hat in Python 2 wohl so funktioniert aber bei Python 3 kommt zwar kein Fehler aber es macht auch nichts.

Unabhängig davon das man einfach

Code: Alles auswählen

anzahl_zeilen = int(input("Wie viele Zeilen Sterne möchtest du: "))
anzahl_sterne = int(input("Wieviele Sterne pro Zeile: "))

for zeile in range(0, anzahl_zeilen):
    print("*" * anzahl_sterne)
Das wäre dann natürlich keine geschachtelte Variable Schleife...aber irgendwo sollten Beispiele halt auch Sinn machen oder seh ich das Falsch?
Benutzeravatar
darktrym
User
Beiträge: 784
Registriert: Freitag 24. April 2009, 09:26

Man sollte meinen, dass nach 170 geschriebenen Nachrichten immerhin die Basics sitzen.
Hat es mit 0 im range eine besondere Bewandtnis?
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Fuer Python3 oder Python2 mit `from __future__ import print_function` muss es `print("*", end="")` heissen.

Wenn du jetzt sinnvolle Beispiele fuer eine zwei geschachtelte Schleifen forderst, dann faellt mir auf Anhieb erstmal nur eine Matrix-Multiplikation ein und hier verlagert sich die Schwierigkeit weit mehr auf die Mathematik als auf den Umgang mit der Programmiersprache.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Eigentlich brauchst du gar keine Schleife...

Code: Alles auswählen

print("*"*anzahl_sterne + "\n")*anzahl_zeilen
Das Leben ist wie ein Tennisball.
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

format ist immer schön. itertools auch. :mrgreen:

Code: Alles auswählen

from itertools import repeat
anzahl_zeilen = 10
anzahl_sterne = 45
print(''.join(repeat('{:*<{}}\n'.format('', anzahl_sterne), anzahl_zeilen)))
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

EyDu hat geschrieben:Eigentlich brauchst du gar keine Schleife...

Code: Alles auswählen

print("*"*anzahl_sterne + "\n")*anzahl_zeilen

Code: Alles auswählen

TypeError: unsupported operand type(s) for *: 'NoneType' and 'int'
:P
BlackJack

@nomnom: Nicht wenn man die richtige Python-Version nimmt. :-)

Code: Alles auswählen

In [31]: print("*"*anzahl_sterne + "\n")*anzahl_zeilen
*****
*****
*****
nomnom
User
Beiträge: 487
Registriert: Mittwoch 19. Mai 2010, 16:25

BlackJack hat geschrieben:@nomnom: Nicht wenn man die richtige Python-Version nimmt. :-)
Was heißt richtig? Tengel benutzt doch offensichtlich Python 3. ;)
LPython
User
Beiträge: 2
Registriert: Montag 13. Mai 2013, 12:47

@Tengel wieso nimmst du in range (0, anzahl_sterne)
Du kannst auch einfach in range (anzahl_sterne) geht doch
auch oder??? :)
Antworten