鱼C论坛

 找回密码
 立即注册
查看: 1827|回复: 4

[已解决]大佬们帮忙看看怎么才能做到全部答完后才出结果 我这个是做一个出一个

[复制链接]
发表于 2020-12-23 19:53:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#随机生成十道十以内的加减乘除并给出答案
import random
for i in range(11):
    a = random.randint(1,10)
    b = random.randint(1,10)
    c = ['/','*','-','+']
    f = random.randint(0,3)
    print("%d%s%d="%(a,c[f],b))
    g = int(input())
    if f == 0:
        if  g == a//b:
            print("%d%s%d=%d √"%(a,'//',b,a//b))
        else:
            print("%d%s%d=%d × 正确答案为 %d"%(a,'/',b,g,a/b))
    if f ==1:
        if g == a*b:
            print("%d%s%d=%d √"%(a,'*',b,a*b))
        else:
            print("%d%s%d=%d × 正确答案为 %d"%(a,'*',b,g,a*b))
    if f ==2:
        if g == a-b:
            print("%d%s%d=%d √"%(a,'-',b,a-b))
        else:
            print("%d%s%d=%d × 正确答案为 %d"%(a,'-',b,g,a-b))
    if f == 3:
        if g == a+b:
            print("%d%s%d=%d √"%(a,'+',b,a+b))
        else:
            print("%d%s%d=%d × 正确答案为 %d"%(a,'+',b,g,a+b))

最佳答案
2020-12-23 20:24:42
  1. import random
  2. d = []
  3. for i in range(11):
  4.     a = random.randint(1,10)
  5.     b = random.randint(1,10)
  6.     c = ['/','*','-','+']
  7.     f = random.randint(0,3)
  8.     print("%d%s%d="%(a,c[f],b))
  9.     g = int(input())
  10.     if f == 0:
  11.         if  g == a // b:
  12.             d . append("%d%s%d=%d √"%(a,'//',b,a//b))
  13.         else:
  14.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'/',b,g,a/b))
  15.     if f ==1:
  16.         if g == a*b:
  17.             d . append("%d%s%d=%d √"%(a,'*',b,a*b))
  18.         else:
  19.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'*',b,g,a*b))
  20.     if f ==2:
  21.         if g == a-b:
  22.             d . append("%d%s%d=%d √"%(a,'-',b,a-b))
  23.         else:
  24.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'-',b,g,a-b))
  25.     if f == 3:
  26.         if g == a+b:
  27.             d . append("%d%s%d=%d √"%(a,'+',b,a+b))
  28.         else:
  29.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'+',b,g,a+b))
  30. for x in range(len(d)):
  31.     print('第%2d题 : %s' % (x + 1  , d[x]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-12-23 20:23:32 | 显示全部楼层
可以创个列表存储结果和答案再来匹配,例如:
  1. import random

  2. t_list = []
  3. d_list = []
  4. for i in range(11):
  5.     a = random.randint(1,10)
  6.     b = random.randint(1,10)
  7.     c = ['/','*','-','+']
  8.     f = random.randint(0,3)
  9.     print("%d%s%d="%(a,c[f],b))
  10.     t_list.append(eval("%d%s%d"%(a,c[f],b)))
  11.     g = int(input("请输入答案:"))
  12.     d_list.append(g)
  13.     print("下一题:\n")

  14. hd = len(t_list)
  15. for k in range(0,hd):
  16.     if d_list[k] == t_list[k]:
  17.         print("回答正确。")
  18.     else:
  19.         print("错误,正确答案为:%d"%t_list[k])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-23 20:24:42 | 显示全部楼层    本楼为最佳答案   
  1. import random
  2. d = []
  3. for i in range(11):
  4.     a = random.randint(1,10)
  5.     b = random.randint(1,10)
  6.     c = ['/','*','-','+']
  7.     f = random.randint(0,3)
  8.     print("%d%s%d="%(a,c[f],b))
  9.     g = int(input())
  10.     if f == 0:
  11.         if  g == a // b:
  12.             d . append("%d%s%d=%d √"%(a,'//',b,a//b))
  13.         else:
  14.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'/',b,g,a/b))
  15.     if f ==1:
  16.         if g == a*b:
  17.             d . append("%d%s%d=%d √"%(a,'*',b,a*b))
  18.         else:
  19.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'*',b,g,a*b))
  20.     if f ==2:
  21.         if g == a-b:
  22.             d . append("%d%s%d=%d √"%(a,'-',b,a-b))
  23.         else:
  24.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'-',b,g,a-b))
  25.     if f == 3:
  26.         if g == a+b:
  27.             d . append("%d%s%d=%d √"%(a,'+',b,a+b))
  28.         else:
  29.             d . append("%d%s%d=%d × 正确答案为 %d"%(a,'+',b,g,a+b))
  30. for x in range(len(d)):
  31.     print('第%2d题 : %s' % (x + 1  , d[x]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-23 20:53:01 | 显示全部楼层
本帖最后由 均昊山 于 2020-12-23 20:54 编辑

给你个思路自己改,建个字典:
for循环
    a = random.randint(1,10)
    b = random.randint(1,10)
    c = ['/','*','-','+']
    f = random.randint(0,3)
    print("%d%s%d="%(a,c[f],b))  这里的输出后在赋值给字典 key
key为运算表达式,value1为用户输入的内容

foe 循环
字典key 用 eval() 函数用来执行一个字符串表达式,并返回表达式的值。与字典value1判断
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-12-23 22:01:55 | 显示全部楼层
搭建一个列表储存每个if的结果?用那个往列表添加元素的方法,在每一个if和else下方往列表添加t or f的元素最后提取出来统一?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-29 23:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表