请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 10963|回复: 6

python自动计算学生平均值求助

[复制链接]

1

主题

0

好友

23

积分

新手上路

Rank: 1

发表于 2020-7-3 06:21:34 |显示全部楼层
请问怎么样才能自动识别list里面一行有一个元素呢?
谢谢老师!现在是用的手动input
t = open('scores.txt', encoding='utf-8')
lines = t.readlines()
print(lines)
t.close()

results = []
e = int(input())

for line in lines:
    print (line)
    data = line.split()

    sum = 0
    score_list = data[1:]
    for score in score_list:
        sum += int(score)
    result = '%s \t: %d\n' % (data[0], sum/e)

    results.append(result)
output = open('result.txt', 'w', encoding='gbk')
output.writelines(results)
output.close()

回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2020-7-3 15:14:33 |显示全部楼层
对于一个列表 x,它的个数可以通过
len(x)
得到
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

23

积分

新手上路

Rank: 1

发表于 2020-7-4 01:46:43 |显示全部楼层
crossin先生 发表于 2020-7-3 15:14
对于一个列表 x,它的个数可以通过
len(x)
得到

但是获取出来的是这个文档内有几行而不是几列呀
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2020-7-4 15:41:33 |显示全部楼层
Wouivu 发表于 2020-7-4 01:46
但是获取出来的是这个文档内有几行而不是几列呀

len(data)

你这里每一行的数据是 data
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

23

积分

新手上路

Rank: 1

发表于 2020-7-5 09:28:41 |显示全部楼层
crossin先生 发表于 2020-7-4 15:41
len(data)

你这里每一行的数据是 data

老师你好,我尝试了改成len(data)
t = open('scores.txt', encoding='utf-8')
lines = t.readlines()
print(lines)
t.close()

results = []
e = len(data)

for line in lines:
    print (line)
    data = line.split()

    sum = 0
    score_list = data[1:]
    for score in score_list:
        sum += int(score)
    result = '%s \t: %d\n' % (data[0], sum/e)

    results.append(result)
output = open('result.txt', 'w', encoding='gbk')
output.writelines(results)
output.close()
但是报错了
Traceback (most recent call last):
  File "C:/Users/13611/Desktop/学习/score.py", line 7, in <module>
    e = len(data)
NameError: name 'data' is not defined
请问能帮我看看是哪里有问题吗
回复

使用道具 举报

174

主题

45

好友

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

发表于 2020-7-5 20:23:24 |显示全部楼层
Wouivu 发表于 2020-7-5 09:28
老师你好,我尝试了改成len(data)
t = open('scores.txt', encoding='utf-8')
lines = t.readlines()

把你加的那行去了,或者放在后面
e = len(data)
result = '%s \t: %d\n' % (data[0], sum/e)

data在循环里才被定义
#==== Crossin的编程教室 ====#
微信ID:crossincode
网站:http://crossincode.com
回复

使用道具 举报

1

主题

0

好友

23

积分

新手上路

Rank: 1

发表于 2020-7-6 04:40:46 |显示全部楼层
crossin先生 发表于 2020-7-5 20:23
把你加的那行去了,或者放在后面
e = len(data)
result = '%s \t: %d\n' % (data[0], sum/e)

成功了,感谢老师!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-3-29 07:39 , Processed in 0.016483 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部