While循环优化:能否合并多个循环以提升代码运行效率?
合并重复while循环优化PIN破解代码
当然可以把最后三个重复的while循环合并成一个更简洁高效的循环,核心思路是利用遍历PIN列表的每个元素,把重复的逻辑复用起来。
优化后的完整代码
import random # 简化PIN生成:直接生成3个随机数,替代原while计数逻辑 pin = [random.randint(1, 10) for _ in range(3)] print(f"Your pin is {pin}") # 合并破解逻辑:遍历PIN的每一位,统一执行查找 for target_num in pin: find = 0 while find != target_num: find += 1 print(find)
优化说明
- 合并破解循环:原代码中三个while循环的逻辑完全一致,只是针对PIN的不同位置,用
for target_num in pin遍历每个目标数字,就能把重复代码合并,后续如果PIN长度调整(比如改成4位),这部分代码完全不用修改。 - 简化PIN生成:原代码用while循环计数生成PIN的方式可以用列表推导式替代,代码更紧凑易读,功能完全一致。
如果只是为了得到结果,其实可以直接打印每个PIN位(因为find最终就是等于目标数字),但如果是为了模拟暴力破解逐个尝试的过程,上面的循环就完全符合需求。
内容的提问来源于stack exchange,提问作者iminertia
相关产品推荐
相关产品推荐

