鱼C论坛

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

求助大神啊

[复制链接]
发表于 2017-10-20 00:18:59 | 显示全部楼层 |阅读模式

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

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

x
nam={0: {1: 99, 2: 89, 3: 79}, 1: {1: 98, 2: 88, 3: 78}, 2: {1: 97, 2: 87, 3: 77}}
nameno={1: 'fanghao', 2: 'zhou', 3: 'xu'}
for no in nameno.keys():
            print("{:<5}:".format(nameno[no]),end="")
            sum=0
            for subject_no in nam:
                sum+=subject_no[no]
                print("{}:{:>3}".format(subjects[subject_no],subject_no[no]),end="")
            print("总分:{:>3},平均:{:.2f}".format(sum,sum/float(len(subject_no))))

>>>fanghao:Traceback (most recent call last):
  File "<pyshell#3>", line 5, in <module>
    sum+=subject_no[no]
TypeError: 'int' object is not subscriptable

出错了这个程序应该怎么改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-10-20 00:22:27 | 显示全部楼层
nam=ast.literal_eval(f.read())
        for no in nameno.keys():
            print("{:<5}:".format(nameno[no]),end="")
            sum=0
            for subject_no in nam:
                sum+=nam[subject_no][no]
                print("{}:{:>3}".format(subjects[subject_no],nam[subject_no][no]),end="")
            print("总分:{:>3},平均:{:.2f}".format(sum,sum/float(len(nam[subject_no]))))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-20 09:02:53 | 显示全部楼层
本帖最后由 BngThea 于 2017-10-20 10:42 编辑

没必要将代码写的这么复杂,借助中间变量,可以更好的理清思路

  1. nam={0: {1: 99, 2: 89, 3: 79}, 1: {1: 98, 2: 88, 3: 78}, 2: {1: 97, 2: 87, 3: 77}}
  2. nameno={1: 'fanghao', 2: 'zhou', 3: 'xu'}
  3. for no in nameno.keys():
  4.     print("{:<5}:".format(nameno[no]),end="")
  5.     sum = 0
  6.     temp = nam.get(no-1)
  7.     for i in range(1,4):        
  8.         sum += temp[i]
  9.         print("{}:{:>3}".format(i, temp[i]),end="  ")
  10.     print("\t总分:{:>3},\t平均:{:.2f}".format(sum,sum/float(len(nam[0]))))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-15 07:29:19 | 显示全部楼层
看来还有很多东西要学习啊!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-5 01:01:27 | 显示全部楼层
本帖最后由 傻眼貓咪 于 2021-9-5 01:03 编辑
  1. result = {'Fanghao': [99, 89, 79], 'Zhou': [98, 88, 78], 'Xu': [97, 87, 77]}
  2. for name in result.keys():
  3.     arr = [("%d:%3d,")%(n+1, i) for n, i in enumerate(result[name])]
  4.     print("%10s:"%name, *arr, f"總分:{sum(result[name])},", f"平均:{sum(result[name])/len(result[name])}")
复制代码

  1.    Fanghao: 1: 99, 2: 89, 3: 79, 總分:267, 平均:89.0
  2.       Zhou: 1: 98, 2: 88, 3: 78, 總分:264, 平均:88.0
  3.         Xu: 1: 97, 2: 87, 3: 77, 總分:261, 平均:87.0
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-24 12:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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