2014-04-01 2 views
0
#!/usr/bin/python3 

def isprime(n): 
    if n == 0 or n == 1: 
     return False 
    for x in range(2, n): 
     if n % x == 0: 
      return False 
    else: 
     print(n, "is a prime number") 
     return True 
def getv(): 
    x = input("Between what 2 number do you want to check for primes?\n>>\t") 
    y = input("Second number.\n>>\t") 
    return x 
    return y 
getv() 
z = int(x) - 1 

for n in range(int(z),int(y)): 
    isprime(n) 

2 개의 값을 입력하면 NameError가 입력됩니다. 이름 'x'가 정의되지 않았습니다. getv() 함수가 orignally가 아니었지만 입력 변수에 대한 테스트 검사를 수행하여 int 객체 또는 str이고 숫자 만 포함하도록했습니다. getv() 함수가 없으면 부드럽게 작동합니다. 함수가 값을 반환하지 않는 이유는 무엇입니까?이 함수가 어떤 값도 반환하지 않는 이유는 무엇입니까?

+2

은 당신이 오류가'getv() '함수에서 오는 확신합니까? 'x ='가 그때까지 정의되지 않았기 때문에'z = int (x) - 1' 라인에서 나오는 것처럼 보입니다. –

+2

값을 반환하고 있지만 값을 사용하고 있지 않습니다. –

답변

4

당신과 정수로를 설정해야 전화 할 때 실제로 변수를 무언가에 할당해야합니다.

x, y = getv() 
또한

, 당신은 함수에 두 개의 반환 할 수 없습니다 그것은이로 변경

return x, y 
3

getv()은 무엇이든 반환 값을 지정하지 않고 호출합니다. 당신은 아마이

x = getv() 

또는 가능

def getv(): 
    x = input("Between what 2 number do you want to check for primes?\n>>\t") 
    y = input("Second number.\n>>\t") 
    return x, y 

x, y = getv() 

주 같은 것을하고 싶지 : 당신이 수학에 대한 이러한 값을 사용하려는 경우, 당신은 int()

관련 문제