2016-11-29 64 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 
相关问题