知行编程网知行编程网  2022-12-07 15:30 知行编程网 隐藏边栏  8 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python里如何猜数的相关知识,包括python猜数字记录次数,以及用python猜数游戏流程图设计这些编程知识,希望对大家有参考作用。

如何在 python 中猜测数字

游戏要求:一个小的猜数游戏。在游戏中,程序每轮会随机生成一个0到1024之间的数字。用户输入猜中的数字,程序告诉用户猜大还是小

向上。如果在一定次数内猜对,则本轮用户获胜,否则本轮输。在每一轮开始时,程序都会要求用户输入用户名。该程序将运行直到用户

输入“3”停止游戏。每轮游戏开始前,输入“1”即可查看用户的输入历史。

具体代码实现:

import mathimport random#历史记录history = {}def input_guess(start,end):
    """输入数字并判断是否在范围之内"""
    guess = int(input("请输入{}~{}之间你猜测的数字:".format(start,end)))
    if guess >= start and guess <= end:
        return guess    
    else:
        print("输入非法数字,重新输入,请确认数字在{}~{}之间".format(start,end))
        input_guess(start,end)def begin():
    """开始游戏"""
    name = input("请输入姓名:")
    
    #①将输入的字符串转换成列表
    start, end = input("请输入猜测数字的范围,用,分隔:").split(',')
    start,end = int(start),int(end)
    #检查用户名是否存在,如果不存在,创建用户
    if name not in history.keys():
        history[name] = []
    
    #②randrange里的参数必须是数字
    answer = random.randrange(start,end+1)
    times = math.log2(start+end)
    times = math.floor(times)
    count = 0
    print("请在{}次内猜测正确数字".format(times))


    #循环times次判断输入数字是否猜对
    while count < times:
        guess = input_guess(start, end)
        if guess < answer:
            print("猜小了")
        elif guess == answer:
            print("猜对了")
            history[name].append("成功")
            break
        elif guess > answer:
            print("猜大了")
        count += 1
    else:
        print("猜测次数太多,游戏失败,正确答案为{}".format(answer))
        history[name].append("失败")
    main()def main():
    print("1.历史记录")
    print("2.继续游戏")
    print("3.退出游戏")
    choice = input("输入数字选择:")

    if choice == "1":
        print(history)
        main()
    elif choice == "2":
        begin()
    else:
        passif __name__ == '__main__':
    main()

推荐学习《


猜测数字

通过二分法猜数来确定每局可以猜到的次数,并使用while...else和if语句循环解释。因为标②,输入的字符串必须转换为

int类型,int只能转换string类型,而且①是list,所以只能在下一行写start,end = int(start),int(end),不能在input前直接加int


游戏记录

游戏录制需要创建字典来记录数据。字典的键名是用户名。游戏开始时,先验证用户名是否已经存在于字典中。如果字典中不存在,则添加

添加到字典中,值为空列表。这里只记录游戏的成败。其实你也可以记录下每局猜数的数字记录,也可以尝试使用

collections.deque来记录数据

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享