2014-11-12 4 views
0

이 코드를 실행할 때 오류가 계속 발생합니다. 나는 무엇이 잘못되었는지 알고 싶다. 코드는 단어와 정수를 읽을 수 있어야하며 2보다 크거나 같을 때까지 프롬프트를 반복해야합니다 (정수> = 2 : '를 입력하십시오). 미리 감사드립니다.파이썬 소수 번호 루프

@rpattiso에서 언급 한 바와 같이
def prime_number(): 

    prime_num = input('Please enter an integer >= 2: ') 

    while not(prime_num.isdigit() and int(prime_num)<1): 

     prime_num = input('Please enter an integer >= 2: ') 

    for i in range(2,int(prime_num)+1): 
     for x in range(2,i): 
      if i%x == 0: 
       break 
     else: 
      print (i) 
+7

무엇이 오류입니까? – 101

+0

실행하려고하면 완전히 비어 있습니다. 이 문제를 해결할 수있는 방법이 있습니까? – DatOneGuy

+1

숫자가 1보다 작아 질 때까지 반복한다는 것을 고려하면 오류가있는 코드를 어떻게 가져올 지 확신하지 못합니다. – abarnert

답변

0
  1. , 당신은 방법 및
  2. 당신 while 조건을 호출하지 않는 것은 버그가

이 작동합니다 :

def prime_number(): 
    prime_num = input('Please enter an integer >= 2: ') 

    while not (prime_num.isdigit() and not int(prime_num)<1): 
     prime_num = input('Please enter an integer >= 2: ') 

    for i in range(2,int(prime_num)+1): 
     for x in range(2,i): 
      if i%x == 0: 
       break 
     else: 
      print (i) 
prime_number() 
+0

왜 그런지 모르겠지만 실행을 시도 할 때 아무것도 얻지 못했습니다. – DatOneGuy

0

을 당신이 필요 함수를 입력하십시오. 이것은 일반적으로 파이썬에서 다음과 같이 수행됩니다 :

def prime_number(): 
    prime_num = input('Please enter an integer >= 2: ')  
    while not(prime_num.isdigit() and int(prime_num)<1):  
     prime_num = input('Please enter an integer >= 2: ') 

    for i in range(2,int(prime_num)+1): 
     for x in range(2,i): 
      if i%x == 0: 
       break 
     else: 
      print (i) 


if __name__ == "__main__": 
    prime_number()   

일반적으로 약간의 조언. 나는 소수 논리 연산 로직으로부터 입력 로직을 분리 할 것이다.