2017-04-08 20 views
1

Iは、次のコードがある - このCollat​​z関数のソースコード:Whileループ構文エラー

number = int(input('enter a number') 

while number != 1: 
    if number%2 == 0: 
    n = number//2 
     print (str(n)) 
    elif number%2 == 1: 
    n = 3*number+1 
     print (str(n)) 
    else: 
    break 

エラーメッセージは以下の通りである:

Python 3.5.2 (default, Dec 2015, 13:05:11) 
[GCC 4.8.2] on linux 

Traceback (most recent call last): 
    File "python", line 5 
    while number != 1: 
     ^
SyntaxError: invalid syntax 

答えて

4

これ:

number = int(input('enter a number') 

number = int(input('enter a number')) 

これを修正したら、印刷文を字下げしないでください。これらのインデントは必要ありません。

+0

、不明瞭な、幅の広い、SWのREC、タイプミス、意見をベースに答える避けてくださいこれは、仕事をします、再現性のない、または重複した質問。 Write-my-codeリクエストと手間のかからない質問は[so]の話題にはならず、プロのコーディング/個人指導サービスに適しています。良い質問は[質問する]、[mcve]を含める、研究努力をして、将来の訪問者に役立つ可能性を秘めています。不適切な質問に答えることで、ナビゲートするのをより困難にし、さらにそのような質問を奨励することで、時間と専門知識をボランティアする他のユーザーを追い払うことができます。 – TigerhawkT3

1

インデントの問題があり、最初の行の括弧を閉じなかった。また、ループごとに更新する必要があるため、nnumberに切り替えてください。それ以外の場合、関数はCollat​​zプロセスを実行しません。あなたは20を入力した場合、それが印刷されます次に

number = int(input('enter a number')) 

while number!=1: 
    if number%2 == 0: 
     number = number//2 
     print(str(number)) 
    elif number%2 == 1: 
     number = 3*number+1 
     print(str(number)) 
    else: 
     break 

[解答]で述べられているように
enter a number20 
10 
5 
16 
8 
4 
2 
1 
+0

ありがとうございました。それは働いて、私は今質問について愚かな気がする。 – Vish

+0

@Vishこの質問の横にあるチェックマークをクリックすると、それが受け入れられたとマークされます。これは本質的にあなたのために働いたことを意味します。 – anonymoose

関連する問題