Python练习:调试程序

题目1

鼠标右键点击这里,弹出菜单中,选择 链接另存为,下载数据文件 0016_1.txt 到本机上。

这个是一个数据文件,格式如下

薛蟠     4560 42
薛蝌     4460 25
薛宝钗   5776 43

这里面有3列数据,分别 保存了 游戏系统的用户名, 用户积分 , 年龄

现在要求大家写一个程序,打印出该数据文件中积分最多的用户姓名。

大家使用教程里面推荐的 Pycharm 集成开发环境,创建一个项目文件,并写相应的代码。

在开发过程中,发现问题,可以使用我们教程推荐的 调试程序的方法进行调试,发现问题根源,并解决问题。

答案与解析

答案视频讲解


扫码分享给朋友,一起学更有动力哦


















































题目1-答案

# 因为文件是utf8编码
with open ('0016_1.txt',encoding='utf8') as f:
    infoList = f.read().splitlines()

# 该列表保存积分最多人的姓名
maxpeople = []
# 该变量保存积分最多的分值
maxCoin = 0

for info in infoList:
    # 去掉行左右空白内容
    info = info.strip()
    # 如果是空行,跳过此行
    if not info:
        continue

    # 以空格符为分隔符,切割行内容
    parts = info.split(' ')

    # 姓名在第1列
    name = parts[0]
    # 积分在倒数第二列
    coin = int(parts[-2])

    # 如果当前用户积分 大于 记录中的最大积分
    if coin > maxCoin:
        maxpeople = [name]
        maxCoin = coin

    # 如果当前用户积分 等于 记录中的最大积分
    elif coin == maxCoin:
        maxpeople.append(name)

print(maxpeople)