2017-06-29 5 views
-2

Versuchen, das Collatz Sequence-Programm mit den Richtlinien von "Automatisieren Sie die langweiligen Sachen mit Python" zu schreiben, und ich versuche herauszufinden, ob es eine Möglichkeit gibt, es zu schreiben, ohne eine globale Variable zu definieren.Die Collatz-Sequenz ohne globale Variable möglich?

def collatz(number): 
    if number % 2 == 0: 
     print(number // 2) 
     return number // 2 

    elif number % 2 == 1: 
     print(3 * number + 1) 
     return 3 * number + 1 

while number != 1: 
    collatz(int(input())) 

Ich versuche, seine Spitze von ein paar Seiten zu folgen zurück, als zu versuchen, die Verwendung von globalen Variablen zu begrenzen, aber ich kann nicht eine Lösung für dieses, ohne zu definieren number vor der Funktion zu finden scheinen und dann Aufruf als globale Variable innerhalb der Funktion.

Antwort

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

    print (n) 

Nennen Sie es:

collatz(101)