2016-09-02 1 views
0

while 루프와 ValueError를 결합하려고 할 때 몇 가지 문제가 발생했습니다. 처음에는 프로그램에서 숫자를 더하기를 원했습니다. 숫자의 합계가 X를 초과하면 내 프로그램이 다른 문장으로 계속 진행되기를 바랍니다. 처음에는 입력이 (예를 들어) 문자열 일 수도 있다는 사실에 집중하지 않았습니다.while 루프에서 정수 오류 검사

number = 1 

while number < 10: 
    add = int(raw_input("Enter a number to add: ")) 
    number += add 
    print number 
else: 
    print "Number is greater than 10" 

첫 번째 코드를 try/except 및 ValueError와 결합하여 정수 만 입력하도록 시도했습니다. 숫자의 합이 X를 초과하면 두 번째 코드가 다른 문장으로 계속 진행되지 않습니다. 왜 누군가가이 코드가 작동하지 않는지 설명해 주시겠습니까?

number = 1 

while number < 10: 
    while True: 
     try: 
      add = int(raw_input("Enter a number: ")) 
      number += add 
      print number 
     except ValueError: 
      print "Please enter a number" 
else: 
    print "Number is greater than 10" 

감사합니다.

답변

1

여분의 루프가 발생하는 while True: 루프가 있습니다.

제거하면 코드가 정상적으로 작동합니다.

while(condition) (조건 : True)이 실수로 이어지는 또 다른 예입니다. 루프를 한 번 입력하고 때로는 인위적으로 상태를 초기화해야합니다. 그 대신 쓸 것입니다

number = 1 

    while True: 
     try: 
      add = int(raw_input("Enter a number: ")) 
      number += add 
      print number 
      if number>10: 
       break 
     except ValueError: 
      print "Please enter a number" 

    print "Number is greater than 10" 
+0

대단히 감사합니다 : –

+1

그것이 작동하는 경우 질문을 받아주십시오. –