2015-08-23 62 views
1

我的代碼區分輸入是否有效。它不應該接受零或單詞。如果用戶插入零,它可以工作,並說「除零之外的任何東西」,「再試一次」,但當它再次詢問時,它接受任何東西。我該怎麼做,才能繼續詢問,直到有一個有效的輸入? 到目前爲止我:我的代碼如何才能接受Python中的整數?

A = raw_input('Enter A: ') 
try: 
    A = float(A) 
    if A == 0: 
     print "anything but zero" 
     A = raw_input("Try again") 
except ValueError: 
    print "HEY! that is not a float!" 
    A = raw_input("Try again") 

請幫幫忙!謝謝你們!

+0

你試過用谷歌搜索你的問題的標題嗎? – TigerhawkT3

+0

我做到了!我一直在嘗試,但沒有工作..這就是我已經得到的東西.. – user5258170

+0

這個傻瓜實際上是可怕的 –

回答

0

使用while循環:

valid = false 
while not valid: 
    A = raw_input('Enter A: ') 
    try: 
     A = float(A) 
     if A == 0: 
      print "anything but zero" 
      A = raw_input("Try again") 
     else: 
      valid = true 
    except ValueError: 
     print "HEY! that is not a float!" 
     A = raw_input("Try again") 
1

你需要使用一個循環:

while True: 
    A = raw_input('Enter A:') 
    try: 
     A = float(A) 
    except ValueError: 
     print "enter a float!" 
    else: 
     if A == 0: 
      print "Enter not 0" 
     else: 
      break 
+0

這個工程!非常感謝! – user5258170

0

希望這有助於:)

while 1==1: 
A = raw_input('Enter A: ') 
try: 
    A = float(A) 
    if A == 0: 
     print "anything but zero" 
     A = raw_input("Try again") 
    else: 
     #valid input 
     break 
except ValueError: 
    print "HEY! that is not a float!" 
1

最簡單的方法是使用while循環並且如果演員成功並且不等於0,則移動試玩中的所有邏輯:

while True: 
    try: 
     A = float(raw_input('Enter A: ')) 
     if A != 0: 
      break 
     print "anything but zero" 
    except ValueError: 
     print "HEY! that is not a float!" 

如果你實際上只想要整數,你應該投射到int而不是float

相關問題