You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

while循环满足difficoltà <= difficoltà*2条件却不退出,求修正记忆数字游戏Python代码

问题根因

  • 循环条件逻辑错误:difficoltà <= difficoltà*2 是永远成立的永真式,不管变量值涨到多少,正数必然小于等于自身两倍,所以循环永远不会因为这个条件退出,你复用了同一个变量存初始目标和当前计数,没有单独保存初始设定的目标判断次数。
  • 答对判断逻辑错误:所有随机数都是从randomlist中抽取的,numero not in randomlist 永远不可能成立,导致用户答对“没见过数字”的情况永远无法触发加分。
  • 胜利判断逻辑错误:check变量在循环内部每次被覆盖,循环结束后无法正确判断是否完成目标。

修正后代码(已汉化交互提示)

import random
# 生成1-50不重复的随机数池
randomlist = []
for i in range(0,50):
    n = random.randint(1,50)
    if n not in randomlist:
        randomlist.append(n)

life = 3
punti = 0
numeri_visti = []
# 读取用户设定的目标判断次数
target = int(input("你想要完成多少次数字判断? "))

while life > 0 and punti < target:
    numero = str(random.choice(randomlist))
    print(f"当前数字:{numero}")
    risposta = input("你之前见过这个数字吗?输入是/否:")
    # 答对见过的情况
    if risposta == "是" and numero in numeri_visti:
        punti += 1
        print(f"答对了!当前得分:{punti}")
    # 答对没见过的情况
    elif risposta == "否" and numero not in numeri_visti:
        numeri_visti.append(numero)
        punti += 1
        print(f"答对了!当前得分:{punti}")
    # 答错扣生命值
    else:
        life -= 1
        print(f"答错了!剩余生命值:{life}")

# 循环结束后判断胜负
if life > 0:
    print("恭喜你通关游戏,你是记忆大师!!!")
else:
    print(f"很遗憾你输了,不要气馁,你最终获得了{punti}分!!!")

内容的提问来源于stack exchange,提问作者Mark Furlanis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:54:01