Python编程题,求教!!

如题所述

代码如下

"""
学生成绩表
姓名  语文     数学  英语  总分
王敏  95.5    98
利用字典显示上表内容
"""

header = ['姓名', '语文', '数学', '英语', '总分', '平均分']
score = [
    {
        'name': '王敏',
        'Chinese': 95.5,
        'Math': 98,
        'English': 97,
    },
    {
        'name': '刘志坚',
        'Chinese': 96,
        'Math': 92,
        'English': 82,
    },
    {
        'name': '谢塞科',
        'Chinese': 91,
        'Math': 100,
        'English': 90,
    },
    {
        'name': '肖江秋',
        'Chinese': 88,
        'Math': 93,
        'English': 99,
    }
]

# 输出表格

print('学生成绩表')
blank = '\t\t\t'
little_blank = '\t\t'
Chinese_max = {'name': '', 'sorce': 0}  # 语文
Math_max = {'name': '', 'sorce': 0}  # 数学
English_max = {'name': '', 'sorce': 0}  # 英语

for v in header:
    print(v, end=blank)

for v in score:
    print()

    if Chinese_max['sorce'] == 0:
        Chinese_max['sorce'] = v['Chinese']
    else:
        # 对比分数
        if Chinese_max['sorce'] < v['Chinese']:
            Chinese_max['sorce'] = v['Chinese']
            Chinese_max['name'] = v['name']
    if Chinese_max['name'] == '':
        Chinese_max['name'] = v['name']

    if Math_max['sorce'] == 0:
        Math_max['sorce'] = v['Math']
    else:
        # 对比分数
        if Math_max['sorce'] < v['Math']:
            Math_max['sorce'] = v['Math']
            Math_max['name'] = v['name']
    if Math_max['name'] == '':
        Math_max['name'] = v['name']

    if English_max['sorce'] == 0:
        English_max['sorce'] = v['English']
    else:
        # 对比分数
        if English_max['sorce'] < v['English']:
            English_max['sorce'] = v['English']
            English_max['name'] = v['name']
    if English_max['name'] == '':
        English_max['name'] = v['name']

    print(v['name'], end='')
    if len(v['name']) > 2:
        print(end=little_blank)
    else:
        print(end=blank)

    print(v['Chinese'], end='')
    if '.' in str(v['Chinese']):
        print(end=little_blank)
    else:
        print(end=blank)

    print(v['Math'], end='')
    if '.' in str(v['Math']):
        print(end=little_blank)
    else:
        print(end=blank)

    print(v['English'], end='')
    if '.' in str(v['English']):
        print(end=little_blank)
    else:
        print(end=blank)

    total = v['Chinese'] + v['Math'] + v['English']
    print(total, end='')
    if '.' in str(total):
        print(end=little_blank)
    else:
        print(end=blank)

    print(round(total / 3), end='')  # 平均分

# 每科最高分

print('\n\n最高分')
print('语文\t\t' + Chinese_max['name'] + '\t' + str(Chinese_max['sorce']))
print('数学\t\t' + Math_max['name'] + '\t' + str(Math_max['sorce']))
print('英语\t\t' + English_max['name'] + '\t' + str(English_max['sorce']))

输出如下

学生成绩表
姓名 语文 数学 英语 总分 平均分
王敏 95.5 98 97 290.5 97
刘志坚 96 92 82 270 90
谢塞科 91 100 90 281 94
肖江秋 88 93 99 280 93

最高分
语文 刘志坚 96
数学 谢塞科 100
英语 肖江秋 99

输出截图

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-22
第17回 大观园试才题对额 荣国府归省庆元宵 第18回 皇恩重元妃省父母 天伦乐宝玉呈才藻
相似回答