Warum wird die while-Schleife nur einmal ausgeführt, wenn ich die return-Anweisung anstelle von print verwende? [DuplikaPython

Python-Programme
Anonymous
 Warum wird die while-Schleife nur einmal ausgeführt, wenn ich die return-Anweisung anstelle von print verwende? [Duplika

Post by Anonymous »

Ich habe mit dem Buch „Automate The Boring Stuff“ von Al Sweigart begonnen.

Am Ende von Kapitel 3 schlägt der Autor als Übung vor, eine Collatz-Sequenz in Python zu erstellen. (In der Übungsübung wird vorgeschlagen, dass ich eine print-Funktion und eine return-Anweisung verwende.)

Wenn ich in meinem Code eine print()-Funktion verwende, funktioniert sie hervorragend und ich erhalte alle ausgewerteten Werte, die ich auf dem Bildschirm sehen möchte:

Code: Select all

print("This is The Collatz Sequence")
user = int(input("Enter a number: "))

def collatz(n):
print(n)
while n != 1:
if n % 2 == 0:
n = n // 2
print(n)
else:
n = n * 3 + 1
print(n)

collatz(user)
Frage:

Wie kommt es, dass die while-Schleife nur einmal ausgeführt wird, wenn ich die return-Anweisung verwenden möchte?

Wenn ich beispielsweise die Ganzzahl 3 mit der return-Anweisung an meine Funktion übergebe, erhalte ich nur den Rückgabewert von 3 und 10:

Code: Select all

print("This is The Collatz Sequence")
user = int(input("Enter a number: "))

def collatz(n):
print(n)
while n != 1:
if n % 2 == 0:
n = n // 2
return n
else:
n = n * 3 + 1
return n

result = collatz(user)
print(result)

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post