关于#python#的问题:如果正确率大于等于80%

编写程序,实现一个循环5次计算的小游戏,每次随机产生两个100以内的数字,让用户计算两个数字之和并输入结果,如果计算结果正确则加一分,如果计算结果错误则不加分。如果正确率大于等于80%,则闯关成功。

import random

score = 0
for i in range(5):
    x = random.randint(1, 100)
    y = random.randint(1, 100)
    ans = x + y
    user_ans = int(input("请计算{}+{}的结果:".format(x, y)))
    if user_ans == ans:
        score += 1
        print("回答正确!")
    else:
        print("回答错误。")

if score >= 4:
    print("恭喜你闯关成功!")
else:
    print("闯关失败,加油再试一次!")

print("你的得分是:{},正确率是:{:.0%}".format(score, score/5))

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7665241
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:用 Python 编程,假设一年期定期利率为 3.25%,计算一下需要过多少年,一万元的一年定期存款连本带息能翻番?
  • 除此之外, 这篇博客: 算法第四期——前缀和(Python)中的  方法2:二维前缀和(通过70%) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    【思路】
    “二维前缀和”,定义s[ ][ ]:
            s[i][j]表示子矩阵[1,1] ~ [i,j]的和

     (1) 预计算出s[ ][ ],然后快速计算二维子区间和

    (2)阴影子矩阵[i1,j1] ~ [i2, j2]区间和,等于:s[i2][j2] - s[i2][j1-1] - s[i1-1][j2]+s[i1-1][j1-1](结合上图来理解:绿-红1-红2+蓝
    其中:1、s[i1-1][ j1-1](上图蓝色区域)被减了2次,需要加回来1次。

               2、s[i2][j1-1]s[i1-1][j2]和s[i1-1][j1-1]这里的-1红色和蓝色区域不包括阴影部分。(不-1的话上式会减去阴影部分的一部分)

    【复杂度】相比暴力法O(N^{6}),这里预计算前缀和再求和的总复杂度为O(N^4)+O(N^{2})≈O(N^4),70%的数据,N,M≤100,100^4=10^8,刚好可以通过70%。

  • 以下回答来自chatgpt:

    我可以回答该问题。以下是代码:

    import random
    
    # 产生两个随机整数(100以内)
    def produce_nums():
        num1 = random.randint(0, 100)
        num2 = random.randint(0, 100)
        return num1, num2
    
    # 验证用户输入是否为数字
    def input_and_check():
        while True:
            user_input = input("请输入两个数的和:")
            try:
                user_input = int(user_input)
                break
            except:
                print("输入错误,请输入数字!")
        return user_input
    
    # 游戏主体部分
    def play_game():
        score = 0
        for i in range(5):
            # 产生两个随机数
            num1, num2 = produce_nums()
            answer = num1 + num2
            # 用户输入答案
            user_answer = input_and_check()
            # 判断答案是否正确
            if user_answer == answer:
                score += 1
                print("答案正确,得分加一!")
            else:
                print("答案错误,不加分。")
        # 判断得分是否达到80%
        if score >= 4:
            print("游戏结束,你获得了%d分,正确率为%.2f%%,恭喜你通过了本关!" % (score, score/5*100))
        else:
            print("游戏结束,你获得了%d分,正确率为%.2f%%,再接再厉!" % (score, score/5*100))
    
    # 程序运行流程
    print("欢迎来到小游戏!")
    play_game()
    

    运行结果:

    欢迎来到小游戏!
    请输入两个数的和:99
    答案错误,不加分。
    请输入两个数的和:87
    答案错误,不加分。
    请输入两个数的和:78
    答案错误,不加分。
    请输入两个数的和:87
    答案错误,不加分。
    请输入两个数的和:50
    答案正确,得分加一!
    游戏结束,你获得了1分,正确率为20.00%,再接再厉!
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^