【问题标题】:Modifying variable within conditional expression in Python在Python中修改条件表达式中的变量
【发布时间】:2024-01-19 13:50:01
【问题描述】:

在Java中,可以这样写代码:

int number = 1;
while((number++)<10){
     System.out.println(number);
}

我尝试在 Python 中做同样的事情,但遇到了语法错误。 Python中是否有任何类似的功能可以在条件表达式中修改变量的值?

【问题讨论】:

  • Python 没有自增运算符。
  • 如果您告诉我们您想要完成什么,可能会更有帮助。 Python 有各种内置和可扩展的方法来使用迭代器,这通常是要走的路。实际上,在 Python 3.8 中,assignment expression 将被添加到语言中,在这种情况下可以使用它来获得类似于您拥有的 Java 代码的东西。问题是,您可能不想像编写 Java 那样编写 python。
  • 即将在 3.8 中发布

标签: java python increment control-structure


【解决方案1】:

Python 不允许您修改控制结构中的变量,例如 Java 和 C,因为它没有递增或递减运算符。

你可以试试

for number in range(1, 10):
    print(number)

或者使用 while 循环(如 Julien 建议的那样)

number = 1
while number < 10:
    print(number)
    number += 1

另外,请查看 this answer,它解释了 ++-- 的排除

【讨论】:

  • 贴近 OP 的代码:while number &lt; 10: number +=1
  • @Julien,是的,但是 while 循环没有利用任何自动增量功能,这也是所要求的
  • 但是根据循环中发生的情况,for 循环的行为可能会完全不同......
  • 可以修改控制结构中的变量(取决于您的意思)。可以使用任何有效的表达式。 Python 只是缺少一个增量运算符
最近更新 更多