急求python题
求大神看看代码该怎么写 或者我写的错在了哪里?#统计分析成绩I
n=input()
print("平均成绩:{:.2f}".format(sum(eval(n))/20))
a=0
b=0
c=0
d=0
e=0
for i in n:
if i>90:
a=a+1
a1=(a/20)*100
elif 80<=i<=89:
b=b+1
b1=(b/20)*100
elif 70<=i<=79:
c=c+1
c1=(c/20)*100
elif 60<=i<=69:
d=d+1
d1=(d/20)*100
else:
e=e+1
e1=(e/20)*100
print("60分以下{}人,占总人数的{}%\n69~60分{}人,占总人数的{}%\n79~70分{}人,占总人数的{}%\n89~80分{}人,占总人数的{}%\n90分以上{}人,占总人数的{}%".format(e,e1,d,d1,c,c1,b,b1,a,a1)) 楼主你好。你的代码第一行,n=input()得到的n是一个字符串,应该先把n转换成整数类型的list,再来求平均值、各分段占比以及排序。
可以将第一行换成n=,就可以把n换成int类型的list的了。 n是字符串,i=90的时候好像也没有考虑到 i获取到的数据类型是字符,同数字没有办法比较大小,可以转换一下吧:n = eval(n) 输入不是数字咋办?继续优化代码 ForXuān 发表于 2020-5-7 15:28
n=input()
print("平均成绩:{:.2f}".format(sum(eval(n))/20))
a=b=c=d=e=0
问一下,eval函数是能把用“,”隔开的字符串转换为一个元组吗? 本帖最后由 corch 于 2020-5-7 21:25 编辑
随遇而安8 发表于 2020-5-7 17:35
问一下,eval函数是能把用“,”隔开的字符串转换为一个元组吗?
eval() 函数的作用是用来执行一个字符串表达式,并返回表达式的值;并且如果这个字符串中的数字以','隔开,eval()会理解为是多个表达式,然后返回多个表达式的结果的元组;如果表达式是数字,结果就是数字本身。
所以,eval('1,2,3,4,5,6,7,8,9,10')得到的结果是(1,2,3,4,5,6,7,8,9,10)
另外
m=n.split(',')这一句可以把用“,”隔开的字符串转换为列表。
页:
[1]
2