个人觉得适合新手print(“hello world“)后练习的第二个python程序,猜数字的小游戏。

猜数字游戏所用的知识点:random.randint(),if/else/elif语句,while循环,open()。

这个代码只要懂得,if/else/elif语句,while循环,open()的语句,然后有一点基本的逻辑就可以做出来了,还是比较简单的,所以说比较适合新手练习。

代码:

#导入random库
import random

# 用print()函数在控制台打出游戏规则
print("游戏规则:系统随机给出一个1~10的数字,你有三次机会来猜,每次猜错会有提示。")

#等待命令开始游戏
input("\"按回车键继续\"")

jg=str("r")
#用while循环来保证程序可以一直运行
while jg==str("r"):
    num = random.randint(1, 10)
    #因为random取到的是int型,所以sr也要转化为int型
    sr = int(input("我第一次猜:"))
    #使用if、else、elif的判断语句来判断答案是否正确。
    if sr == num:
        print("恭喜你,第一次就猜中了!")
        jg = input("\"按回车键退出,或输入r继续:\"")
    else:
        print("很遗憾,你猜错了")
        dc = sr > num
        if dc == True:
            print("猜的太大了")
        else:
            print("猜的太小了")
        sr = int(input("再来一次:"))
        if sr == num:
            print("恭喜你,你猜中了")
            jg = input("\"按回车键退出,或输入r继续:\"")
        else:
            print("又猜错了")
            dc = sr > num
            if dc == True:
                print("还是猜大了")
            else:
                print("还是猜小了")
            sr = int(input("最后一次了:"))
            if sr == num:
                print("终于猜中了,太险了")
                jg = input("\"按回车键退出,或输入r继续:\"")
            else:
                print("啊,又猜错了")
                print("很可惜,你失败了")
                print(f"答案是{num}")
                score = 0
                #使用输入的数据来判断是否进入下一次while循环
                jg = input("\"按回车键退出,或输入r继续:\"")

再加入计分板与记录历史最高分的功能:

#导入random库
import random

score = 0
#如果是第一次启动,则创建记录最高分和当前分数的文档
f = open("score.txt","w",encoding="UTF-8")
f1 = open("score_max.txt","a",encoding="UTF-8")
f1.close()

#可以使用with open()来避免忘记关闭文件

#读取文档中的内容
f1 = open("score_max.txt","r",encoding="UTF-8")
#如果文档为空,那么设置初始值0
if f1.read() == "":
    f1 = open("score_max.txt", "w", encoding="UTF-8")
    f1.write("0")
    f1.close()

# 用print()函数在控制台打出游戏规则
print("游戏规则:系统随机给出一个1~10的数字,你有三次机会来猜,每次猜错会有提示。")

#打印出历史最高分
f2 = open("score_max.txt","r",encoding="UTF-8")
sc = f2.read()
print(f"历史最高分数:{sc}")
f2.close()

#等待命令
input("\"按回车键继续\"")

jg=str("r")
#用while循环来保证程序可以一直运行
while jg==str("r"):
    score = score
    num = random.randint(1, 10)
    #因为random取到的是int型,所以sr也要转化为int型
    sr = int(input("我第一次猜:"))
    #使用if、else、elif的判断语句来判断答案是否正确。
    if sr == num:
        print("恭喜你,第一次就猜中了!")
        score += 1
        print(f"您的分数为:{score}")
        jg = input("\"按回车键退出,或输入r继续:\"")
    else:
        print("很遗憾,你猜错了")
        dc = sr > num
        if dc == True:
            print("猜的太大了")
        else:
            print("猜的太小了")
        sr = int(input("再来一次:"))
        if sr == num:
            print("恭喜你,你猜中了")
            score += 1
            print(f"您的分数为:{score}")
            jg = input("\"按回车键退出,或输入r继续:\"")
        else:
            print("又猜错了")
            dc = sr > num
            if dc == True:
                print("还是猜大了")
            else:
                print("还是猜小了")
            sr = int(input("最后一次了:"))
            if sr == num:
                print("终于猜中了,太险了")
                score += 1
                print(f"您的分数为:{score}")
                jg = input("\"按回车键退出,或输入r继续:\"")
            else:
                print("啊,又猜错了")
                print("很可惜,你失败了")
                print(f"答案是{num}")
                score = 0
                #使用输入的数据来判断是否进入下一次while循环
                jg = input("\"按回车键退出,或输入r继续:\"")

    mf1 = open("score_max.txt", "r", encoding="UTF-8")
    max = mf1.read()
    #如果当前分数大于历史最高分,那么将当前分数代替它
    if int(score) > int(max):
        mf1.close()
        mf1 = open("score_max.txt", "w", encoding="UTF-8")
        mf1.write(str(score))
    mf1.close()

完成

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TYMLISY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值