2017-04-08 2 views
1

다음 코드 본 - Collatz 기능에 대한 소스 코드 :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 레크 리 에이션, 오타, 의견을 기반 대답 피해주십시오이 일을 할 것입니다 , 재현 불가능하거나 중복 된 질문. Write-my-code 요청과 저조한 숙제 문제는 [so]에 대한 논점이 아니며 전문적인 코딩/개인 교습 서비스에 더 적합합니다. 좋은 질문은 [질문], [mcve] 포함, 연구 노력, 미래 방문자에게 유용 할 잠재력을 지니고 있습니다. 부적절한 질문에 답하는 것은 사이트 탐색에 어려움을 겪고 사이트에 악영향을 미쳐 더 많은 시간과 전문 지식을 가진 다른 사용자를 몰아 낼 수 있습니다. – TigerhawkT3

1

들여 쓰기 문제가 있으며 첫 번째 행에서 대괄호를 닫지 않았습니다. 또한 모든 루프를 업데이트해야하므로 n에서 number으로 전환하십시오. 그렇지 않으면 함수가 Collatz 프로세스를 수행하지 않습니다. 당신이 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