2016-12-16 150 views
0

我是Python新手,試圖學習它。 這是我的代碼:Python代碼 - 雖然循環永遠不會結束

import sys 
my_int=raw_input("How many integers?") 
try: 
    my_int=int(my_int) 
except ValueError: 
    ("You must enter an integer") 
ints=list() 
count=0 
while count<my_int: 
    new_int=raw_input("Please enter integer{0}:".format(count+1)) 
    isint=False 
    try: 
     new_int=int(new_int) 
    except: 
     print("You must enter an integer") 
    if isint==True: 
     ints.append(new_int) 
     count+=1 

的代碼執行,但循環總是重複,而不是讓我進入第二個整數。

輸出:

How many integers?3 
Please enter integer1:1 
Please enter integer1:2 
Please enter integer1:3 
Please enter integer1: 

我能知道什麼是錯我的代碼? 謝謝

+4

'如果isint == TRUE; - 當將它永遠是真實的嗎? – user2357112

+2

爲什麼你需要布爾檢查?只要把所有你需要的時候在一個int'try' –

回答

1

isint需要斷言輸入爲INT

更新後進行更新: 有第一次嘗試 - 除了一個問題。如果輸入不是整數,程序應該能夠退出或將您帶回開始。下面將繼續循環,直到你輸入一個完整的第一

ints=list() 

proceed = False 
while not proceed: 
    my_int=raw_input("How many integers?") 
    try: 
     my_int=int(my_int) 
     proceed=True 
    except: 
     print ("You must enter an integer") 

count=0 
while count<my_int: 
    new_int=raw_input("Please enter integer{0}:".format(count+1)) 
    isint=False 
    try: 
     new_int=int(new_int) 
     isint=True 
    except: 
     print("You must enter an integer") 
    if isint==True: 
     ints.append(new_int) 
     count+=1 
+0

多少整數代碼3 請輸入整數1:1 請輸入整數2:2 請輸入integer3:3個 –

+0

多少整數3 請輸入整數1 :1 請輸入整數2:2 請輸入整數3:3 現在它的運行完好 謝謝男人。 我感謝大家幫助我。 –

+0

歡迎大家接受我的回答;) – kthouz

3

你的代碼的問題是,isint永遠不會改變,永遠是False,從而count是從來沒有改變過。我想你的意圖是,當輸入是一個有效的整數,增加count;否則,對count什麼都不做。

下面是代碼,isint標誌是不需要:

import sys 

while True: 
    my_int=raw_input("How many integers?") 
    try: 
     my_int=int(my_int) 
     break 
    except ValueError: 
     print("You must enter an integer") 
ints=list() 
count=0 
while count<my_int: 
    new_int=raw_input("Please enter integer{0}:".format(count+1)) 
    try: 
     new_int=int(new_int) 
     ints.append(new_int) 
     count += 1 
    except: 
     print("You must enter an integer") 
0

更好的代碼:

import sys 
my_int=raw_input("How many integers?") 
try: 
    my_int=int(my_int) 
except ValueError: 
    ("You must enter an integer") 
ints = [] 


for count in range(0, my_int): 

    new_int=raw_input("Please enter integer{0}:".format(count+1)) 
    isint=False 

    try: 

     new_int=int(new_int) 
     isint = True 

    except: 

     print("You must enter an integer") 

    if isint==True: 
     ints.append(new_int)