2017-06-29 4 views
-2

「Pythonで退屈なものを自動化する」のガイドラインを使ってCollat​​z Sequenceプログラムを作成しようとしていますが、グローバル変数を定義しなくても書き込む方法があるかどうかを判断しようとしています。グローバル変数なしで可能なCollat​​zシーケンス?

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())) 

私は戻って、グローバル変数の使用を制限しようとするなど、いくつかのページから自分の先端を追跡しようとしているが、私は関数の前numberを定義することなく、これに対する解決策を見つけるように見えることはできませんし、その後、関数内でグローバル変数として呼び出します。

答えて

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

    print (n) 

コールそれを:

collatz(101) 
関連する問題