While 循环中的 Python Walrus 运算符

标签 python while-loop python-3.8 control-flow walrus-operator

我试图理解海象赋值运算符。
当条件在循环内重新分配为 False 时,经典 while 循环会中断。

x = True
while x:
    print('hello')
    x = False
为什么这不能使用 walrus 运算符?
它忽略了 x 的重新分配,产生了无限循环。
while x := True:
    print('hello')
    x = False

最佳答案

您似乎认为该分配在进入循环之前发生了一次,但事实并非如此。重新分配发生在检查条件之前,并且发生在每次迭代中。x := True 将始终为真,无论任何其他代码如何,这意味着条件将始终评估为真。

关于While 循环中的 Python Walrus 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65514544/

相关文章:

python - 为什么我的 Streamlit 应用程序会打开多次?

linux - 在 Parallel Bash 中运行串行

python - 使用 Pydantic 嵌套模型从 FastAPI 获取 JSON

python - 打印不符合数据间隔设置

bash - ffmpeg 启动时间太长

python - Pygame 在 Windows 10 上使用 pip install pygame 失败

python - 如何在 Heroku 中运行 webapp2(appengine)?

python - 列出 pandas dataframe 列中的所有单词

python - 空 {{ MEDIA_URL }} 标签,由从 Django 1.7.2 过渡到 1.8 引起

javascript - 我无法理解我的 If 陈述如何被视为真实