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)
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)
Mobile version