我正在try 使用布尔变量Flip(True变为False,False变为True),该变量位于函数内部.但是,我遇到了一个问题,要么必须在函数内部为变量赋值(从而将变量重置为我在函数内赋给它的值),要么不这样做,这会导致UnundLocalError.在这方面有任何帮助都是很好的.

我正在创建一个函数Click(),它在循环的每次迭代中翻转一个布尔值

def click():
    alternate = True #not doing this will cause an error
    alternate = not alternate #flipping the variable

然后使用函数运行循环

while True:
    click()
    print(alternate) #constantly prints False

而我想要的是打印True、False、True等.

推荐答案

python没有通过引用传递.它有可变和不可变的变量. 所以如果你的变量是可变的,你需要每次返回值并像这样重置它:

def click(alternate):
    alternate = not alternate #flipping the variable
    return alternate

以及:

alternate = True
while True:
    alternate=click(alternate )
    print(alternate) #constantly prints False

Python相关问答推荐

从Python调用GMP C函数时的分段错误和内存泄漏

pandas DataFrame中类型转换混乱

如何将我的位置与光强度数据匹配到折射图案曲线中?

使用图片生成PDF Django rest框架

遵循轮廓中对象方向的计算线

将轨迹优化问题描述为NLP.如何用Gekko解决这个问题?当前面临异常:@错误:最大方程长度错误

Polars:使用列值引用when / then表达中的其他列

使用Keras的线性回归参数估计

滚动和,句号来自Pandas列

根据另一列中的nan重置值后重新加权Pandas列

Pytest两个具有无限循环和await命令的Deliverc函数

Pandas 都是(),但有一个门槛

如何记录脚本输出

如何列举Pandigital Prime Set

C#使用程序从Python中执行Exec文件

如何获取numpy数组的特定索引值?

如何在Python中获取`Genericums`超级类型?

如何使用两个关键函数来排序一个多索引框架?

matplotlib图中的复杂箭头形状

Gekko中基于时间的间隔约束