为什么不在循环中上传变量?

时间:2017-06-07 20:24:18

标签: python python-3.x

我想制作一个程序,跟踪我吃了多少苹果苹果,当我吃一个苹果时拿走苹果。

apples=3

while apples>0:
    try: 
        print("You have {} a left".format(apples))

        Action=input('Action:')
        if action == "eat":
            apples=apples-1
        else:
            print("invalid")
    except:
        pass

但是,当我将eat作为用户输入写入时,此代码不会更新苹果。

  

你剩下3个苹果   行动:吃
  你有3个苹果左   行动:吃
  你有3个苹果左   行动:吃
  你有3个苹果左   行动:吃
  你剩下3个苹果

1 个答案:

答案 0 :(得分:1)

问题在于您定义了Type Result Undefined "undefined" Null "object" Boolean "boolean" Number "number" String "string" Symbol "symbol" Host object (provided by the JS environment) Implementation-dependent Function object "function" Any other object "object" 但尝试使用Action(案例很重要!)。如果没有actiontry,您可能已经注意到了自己。这是你(几乎)从不使用裸except的一个原因。始终捕获except等类似的特定异常。

如果我删除这些并使用此代码,则会显示异常:

ValueError

您可能还需要apples=3 while apples>0: print("You have {} a left".format(apples)) Action=input('Action:') if action == "eat": apples=apples-1 else: print("invalid") # ... --------------------------------------------------------------------------- NameError Traceback (most recent call last) 4 print("You have {} a left".format(apples)) 5 Action=input('Action:') ----> 6 if action == "eat": 7 apples=apples-1 8 else: NameError: name 'action' is not defined strip,因为它有时会包含一个尾随换行符:

input