2015-12-02 60 views
-3

嗯,我很新的編程,我需要一些幫助,這個代碼。嘗試代碼中的功能

roundvalue = True 
rounds = 0 
while roundvalue == True: 
rounds= input("Pick a number of rounds (3 or 5)") 
try: 
    int(rounds) 
except ValueError: 
    try: 
     float(rounds) 
    except ValueError: 
     print ("This is not a number") 

    if rounds == 3: 
     print("You chose three rounds!") 
     roundvalue = False 
    elif rounds == 5: 
     print ("You chose 5 rounds") 
     roundvalue = False 
    else: 
     print ("Input again!") 

代碼的點是選擇了數發子彈,如果用戶輸入什麼都應該重複的問題(即不是3或5個字母或數字)。 *(我的代碼只是目前重複「挑選了數發子彈(3或5)」

+1

這是你真正的縮進? –

+0

這可能是對你有用:[要求用戶輸入,直到他們給出有效響應](http://stackoverflow.com/q/23294658/953482) – Kevin

+1

縮進在Python中很重要。如圖所示,while循環只圍繞'rounds ='部分,它不包含'try ... except'。另外'int(rounds)'不會改變'rounds'的值,因此即使你爲'rounds'輸入'3','rounds == 3'總是'False',因爲'rounds'仍然是一個字符串這點。另外:爲什麼「浮動(輪)」? – dhke

回答

-2

在第一次嘗試,你應該把rounds = int(rounds)並在下面這個適當的壓痕rounds = float(round).

檢查嘗試:

roundvalue = True 
rounds = 0 
while roundvalue == True: 
    rounds= input("Pick a number of rounds (3 or 5)") 
    try: 
     rounds = int(rounds) 
    except ValueError: 
     print ("This is not a number") 

    if rounds == 3: 
     print("You chose three rounds!") 
     roundvalue = False 
    elif rounds == 5: 
     print ("You chose 5 rounds") 
     roundvalue = False 
    else: 
     print ("Input again!") 
+0

同意關於整數,但爲什麼漂浮?如果不是字符3或5,則根據OP將其無效。無需檢查浮標。另外,我不確定你的縮進是否非常好。 –

+1

不,它不是.... – tglaria

+0

我粘貼,它損壞我的縮進...現在很好。 – PatNowak

0

這將在一個更簡潔的方式達到預期的效果。

while True: 
    rounds = input("Pick a number of rounds (3 or 5)") 
    try: 
     rounds = int(rounds) 
     if rounds in [3,5]: 
      break 
    except ValueError: 
     print("This is not a number") 
    print("Input again!") 
print ("You chose %d rounds" % rounds) 
+0

謝謝你的貢獻,但我需要一個較長的代碼;)。 – Lukas