【问题标题】:Variable Assigned Boolean Values [closed]变量分配的布尔值
【发布时间】:2020-08-02 23:06:39
【问题描述】:

我正在学习 Python,但我遇到了一个问题。如果有人能帮助解决我的疑问,我将不胜感激。

当我输入这段代码时:

i=1 and i<=10 
print(i)

输出为真。显然我现在是一个布尔值,但我不明白为什么。 因为有一个“and”,而 1 小于 10,所以 statement “i=1 and i变量 i(而不是整个语句)变成布尔值?我以为我仍然应该是一个值为 1 的整数?

这是一个初学者的问题,但它真的让我感到困惑。感谢任何提供想法的人!

【问题讨论】:

  • 该行读取为i = (1 and i&lt;=10)。您正在将表达式 1 and i&lt;=10(这是真的)分配给变量 i
  • 你可能想写i == 1而不是i = 1
  • 如果 i 之前没有被定义过,这个代码将导致 NameError
  • 声明是1 and i&lt;=10。然后将其结果绑定到i,作为赋值运算符= 的左侧。

标签: python types boolean


【解决方案1】:

通过您的代码,我认为您正在将“1 和 i

如果您想检查等于 1,请使用 ‘==’ 并添加一个 if 语句,因此您的代码将是:

if i==1 and i<=10:

    print(i)

【讨论】:

    【解决方案2】:

    语句在赋值运算符=的右边

    1 and i<=10 
    

    i 在您的示例中此时未定义,因此会引发 NameError 。我假设您在运行此代码之前在某处定义了 i 并且没有看到错误。

    如果定义了i,则计算此语句的结果将被分配回i,因为它位于赋值运算符= 的左侧。和它一样

    i = (1 and i <= 10)
    

    如果你想在比较之前赋值i,那么它需要在另一个语句中

    i = 1
    i <= 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2020-01-17
      相关资源
      最近更新 更多