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

如何将Python猜密码代码中的while循环替换为for循环

猜密码代码while循环改for循环实现方案

首先修正原代码的缩进错误:原代码中print("Password guessed correctly")缩进层级错误,放在了while循环内部,会导致每次输入密码无论对错都会打印该提示,不符合功能逻辑。修改后转for循环的两种实现如下:


方案1:保留「无限次猜测直到猜对」的原生逻辑

利用Python内置iter()函数的哨兵参数特性,可以生成符合终止条件的迭代器,配合for循环实现和原while逻辑完全一致的效果:

correct_password = "pa55word"
guesses = 0
# iter第二个参数为哨兵值,当输入内容等于哨兵值时循环自动终止
for guess in iter(lambda: input("请尝试猜密码:"), correct_password):
    guesses += 1
# 猜对后跳出循环,执行后续统计逻辑
guesses += 1 # 最后一次猜对的尝试需要计入总次数
print("密码猜测正确")
if guesses == 1:
    print("你总共猜了1次")
else:
    print(f"你总共猜了{guesses}次")

方案2:增加最大猜测次数限制

如果需要限制最多猜N次(比如最多猜5次,全部猜错就锁定访问),直接用range生成固定次数的迭代器即可:

correct_password = "pa55word"
max_guesses = 5
guesses = 0

for _ in range(max_guesses):
    guess = input("请尝试猜密码:")
    guesses += 1
    if guess == correct_password:
        print("密码猜测正确")
        break
else:
    # for循环正常结束(没有触发break)说明N次全部猜错
    print(f"你已经猜错{max_guesses}次,访问被锁定")
    exit()

if guesses == 1:
    print("你总共猜了1次")
else:
    print(f"你总共猜了{guesses}次")

内容的提问来源于stack exchange,提问作者Hamzah Nasser

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 14:36:03