2017-09-10 1 views
0

프로그램을 실행하는 동안 필요한 올바른 답이 계산됩니다. 그러나 if 루프의 return 함수는 필요한 답을 반환하지 않고 대신 "None"을 반환합니다. 나는 그것을 찾아 보았고, 나는 그것이 멍청한 무언가라고 확신한다.python 반환 함수가 값을 전달하지 않음

def is_prime(n): 
    #function tocheck if number is prime 
    for i in range(2,n): 
     #print (i) 
     if n%i==0: 
      return False 
    return True 

def gap(g,m,n): 
    #Function to find prime number 
    #pair with prime gap "g" 
    print (is_prime(m),m) 
    print (is_prime(m+g),m+g) 
    if is_prime(m) and is_prime(m+g): 
     print ("This is the right answer : ",[m,g+m]) 
     #value not returning 
     return [m,g+m] 

    elif g+m<n: 
     print("restart with",m+1) 
     gap(g,m+1,n) 

print (gap(8,300,400)) 
+3

들여 쓰기를 수정하십시오. 코드를 읽을 수 없습니다. –

+0

'elif'에서'return' 문'return gap (g, m + 1, n)'을 사용해야합니다. – ettanany

+0

'elif' 블록의 끝에'return gap (g, m + 1, n)'을 추가하십시오. – MedAli

답변

1

난 당신이 return gap(g,m+1,n)을 필요가 있다고 생각합니다. 그렇지 않으면 함수는 재귀 호출의 결과를 반환하지 않습니다.

+0

고마워! 나는 잠시 그것을 알아 내려고 노력 해왔다. 당신의 영혼이 일합니다 ..! –

관련 문제