2015-01-25 4 views
0

저는 파이썬으로 연습을하기 위해 기본적인 계승 프로그램을 작성하려고했습니다. 다음 코드에서이 오류가 발생했습니다. 어떤 도움을 주시면 감사하겠습니다.계승을위한 계승을위한 파이썬 프로그램

** 행 1 : 예기치 않은 토큰 근처의 구문 오류 '('

라인 1 : 데프 계승

def factorial(x): 
    x = raw_input(":") 
    if x == 0: 
     return 1 
    else: 
     return x * factorial(x-1) 

내가 터미널을 통해이 프로그램을 실행

, 그것은 나에게 다음과 같은 오류를 제공합니다 (X) **

들여 쓰기 실수 외에도 함수에서이 줄을 이동해야
+0

, 당신은 그것을 제안에 대한 최초의 – Kasramvd

답변

0

,

x = raw_input(":"), 
,

또는 모든 재귀 수준에서 숫자를 입력해야합니다.

0

재귀 함수를 사용하면 함수 내에서 raw_input을 사용하면 안됩니다. 함수의 전체 논리가 저하되므로 재귀 함수 밖에서 입력을 수행해야합니다. 그리고주의해야 할 또 다른 점은 함수가 항상 String을 반환하므로 명시 적으로 Integer 유형으로 변환해야하므로 작업이 완료된 것입니다. 당신은 잘못된 들여 쓰기가

def factorial(x): 
    if x == 0 or x==1: 
     return 1 
    else: 
     return x * factorial(x-1) 

number = int(raw_input(":")) 
print factorial(number) 
+0

감사를 해결해야하지만 오류가 라인 1에오고, 즉 나에게 감각을하지 않는 실행에서 내 코드를 중지 무엇이다 – sanster9292

+0

@ sanster9292 내 컴퓨터에서 완벽하게 작동하고 계승 (5)에 '120' – ZdaR