2016-11-29 73 views
1

這不是整個代碼,而是我正在試驗的代碼,以獲得整個代碼的解決方案。我還需要一個處理無效字符串輸入的答案。爲什麼此代碼不讓我檢查無效輸入

def menu_payment(): 
burger_count= (input("Please input the number of Racquet Burgers (Cheese Burgers) you would like: ")) 
if (burger_count !=int) or (burger_count<=0): 
    print("You must eneter a positive whole number for your order. Please try again.") 
    menu_payment() 
+0

嗨,你好嗎 請輸入你想要的球拍漢堡(芝士漢堡)的數量:1 你必須爲你的訂單發出一個正整數。請再試一次。 請輸入您想要的球拍漢堡包的數量: – jkc13

+0

發生這種情況時,我跑的代碼 – jkc13

+0

對不起,沒有空格 – jkc13

回答

0

嘗試這樣做:

def menu_payment(): 
    burger_count = input("How many burgers would you like:") 
    try: 
     burger_count = int(burger_count) 
     valid_number = 1 
    except: 
     print(burger_count, " is not a valid number") 
     valid_number = 0 
    if valid_number == 1 and burger_count > 0: 
     print ("I will get your burgers right away") 
    else: 
     print("Please put a valid number and no negetives") 
+0

非常感謝!這個迴應真的有幫助。再次感謝。祝你有個好的一天。 – jkc13

0

檢查有效字符串的問題來自您的if語句。我會首先建議,檢查值是否爲int,然後檢查它的值。這是解決這個問題的最容易和最容易混淆的方式。

+0

我明白你的意思了。因此,我實現了一些要做的事情並提出了一個else語句,但現在無論我輸入什麼,它都告訴我我的輸入無效。 – jkc13

0

輸入將始終將用戶輸入轉換爲字符串。因此,輸入「1」是「1」的字符串,而不是整數。

你可以嘗試用一個int之類的函數來包裝一下你輸入:

burger_count = int(input("Please input the number of Racquet Burgers (Cheese Burgers) you would like: ")) 

但是,如果輸入以外的任何其他一個整數,這將拋出一個ValueError。

此外,我不認爲檢查變量類型是這樣的。你可以這樣做:

if type(burger_count) is not int: 
    <do something> 

可能超低效(預咖啡腳本是壞的),但在這裏我將如何處理這個問題:

def menu_payment(): 
    while True: 
     try: 
      burger_count = int(input("burgers: ")) 
     except ValueError: 
      print("You must eneter a number for your order. Please try again.") 
      continue 
     else: 
      if burger_count <= 0: 
       print("You must eneter a number for your order. Please try again.") 
       continue 
      else: 
       return burger_count