python - 尝试通过 if 语句保持随机数出现的计数
问题描述
我正在尝试计算生成随机数的次数,并在达到某个数字后停止它。我是 python 新手,可能有一个我看不到的简单修复。
p = 0
def gameplay():
i = random.randint(1,2)
if i <= 1:
print(1)
p = p + 1
gameplay();
else:
print(2)
p = p + 1
gameplay();
if p <= 10:
gameplay();
我不断收到错误消息:“分配前引用了局部变量‘p’”
解决方案
p = 0
def gameplay(p):
i = random.randint(1,2)
if i <= 1:
print(1)
else:
print(2)
p = p + 1
return p
while p <= 10:
p = gameplay(p)
我编辑了您的代码,因此p
在游戏功能中递增,然后再次返回变量“p”。从而消除您的错误和对全局变量的需要p
。
我将 if 语句更改为 while 循环,因为我认为示例代码试图实现一个递归函数,该函数运行直到p
大于 10。如果这不是您想要的,只需将其更改回 if 语句,但是然后确保 pgameplay(p)
在您的代码中的其他地方被调用。
推荐阅读
- svg - svg blobbed 图像在编码后被破坏
- r - 使用具有相同字符串但顺序不同的列合并两个 data.frame
- c++ - 智能指针或类似于标准 C++ 类的 lock_guard 在析构函数中执行任意代码
- octave - 如何将保存为结构的矩阵转换为矩阵
- angular - Angular 11:延迟加载模块中未识别组件和指令
- c# - 不可为空的引用类型:我可以定义一个默认元素吗?
- mysql - 有没有办法使用 python for mysql (mysqlconnector) 创建表名是用户输入的表?
- firebase - 用于 URL 缩短的 Firebase 扩展:如何将 Firestore 路径放入 URL 的位置?
- java - 当客户端关闭连接而不读取数据时,服务器端的 Java Socket 输出流写入将被永远阻塞。如何处理?
- python - IDLE 在 mac 上使用与 python3 不同的 python 版本