【问题标题】:undefined variable when checking user input with if使用 if 检查用户输入时未定义的变量
【发布时间】:2021-03-11 16:07:40
【问题描述】:
while True:
    try:
        num = int(input("Enter a number [n>2]: "))
        if num <= 2:
            raise ValueError
        break
    except ValueError:
        print("Not a number. Try again!")
        continue

在询问用户输入后,VSCode 在num 上给我一个“未定义的变量”是否正常?我的意思是,num 将在用户输入数字时定义。

【问题讨论】:

  • 你试过运行它吗?如果没有问题,那么您可以忽略该警告。
  • 另外,VS Code 没有给我任何警告。
  • 是的,没问题。但我想了解为什么黄色下划线。我一直被教导要解决它们
  • 是的,有时 VS Code 会给你一些错误的警告。例如,如果代码有错误并且我更改了代码但没有保存它,则错误行会一直保留直到保存。
  • @Tomerikoo 所以它没有。 break 语句无法访问。奇怪的代码。

标签: python visual-studio-code


【解决方案1】:

发生这种情况是因为 VS 代码调试 AI 会警告您,如果您在 except 块中或代码中的其他位置使用 num 变量,则会导致错误。要解决它,您可以这样做

   num = 0
   while True:
       try:
           num = int(input("Enter a number [n>2]: "))
           if num <= 2:
               raise ValueError
               break
       except ValueError:
           print("Not a number. Try again!")
           continue

它应该会消失,因为我已经定义了变量 num 在所有情况下都可以工作

【讨论】:

  • 如果您在except 中实际使用它,它不会警告您吗?
  • 如果你这样做应该会直接报错。警告说这可能会导致问题。他们并没有说特定线路正在引起问题。调试算法可能容易出错,并且可能无法考虑所有情况,因此它们会发出警告以防万一
猜你喜欢
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
相关资源
最近更新 更多