记录 / 简单的猜数游戏 (Python)

记录 / 简单的猜数游戏 (Python)

1A2B

记录 / 简单的猜数游戏 (Python)

对于"抽取不重复的4个数字"这样的问题,传统的解决办法是通过抽索引然后删除的方法进行处理,不过显然python的random库提供了一个更好的解决方案 random.sample ,再使用 str.join 方法拼接在一起

import random

answer = ''.join(random.sample(list("1234567890"), k=4))

count = 0

def validate(input):
    try:
        int(input)
    except:
        print("非数字")
        return False
    if len(input) != 4:
        print("位数错误")
        return False
    return True

while True:
    user_answer = input("请输入: ")
    
    if not validate(user_answer):
        continue
    count+=1
    A = 0
    B = 0
    for (index, digit) in enumerate(user_answer):
        if answer[index] == digit:
            A+=1
        elif digit in answer:
            B+=1
    if A == 4:
        print(f"恭喜! 正确答案是{answer},您共猜测{count}次")
        break
    print(f"{A}A{B}B")

LICENSED UNDER CC BY-NC-SA 4.0
Comment