头哥python实验的编译器和win10系统的python编译器

头哥python实验的编译器和win10系统的python编译器:

今天在做实验的时候遇到这种情况:

这个代码的作用就是输出10个数据,并将其添加到空列表中去,如果输入数据为空(即回车),就将其删除。
ls = []
for i in range(10):
    n = input()
    ls.append(n)

while '' in ls:    //然后再这里用‘’表示回车键
    ls.remove('')
print(ls)

然后就是使用‘’表示回车键时,在头哥的python编译器和win10系统下载的python编译器表示方法是不同的。

在win10系统下载的python编译器里:

while ' ' in ls:    //然后再这里用‘ ’表示回车键,需要用空格键来表示
    ls.remove(' ')

在头哥的python编译器里:

while '' in ls:    //然后在这里用‘’表示回车键,不需要用空格键来表示
    ls.remove('')

如果在win10系统里没有用'   ',空格表示回车键,就会报错:

Traceback (most recent call last):
  File "D:/桌面/python test/mark_socre.py", line 11, in
    ls = list(map(float, ls))
ValueError: could not convert string to float: ' '

如果在头哥的python编译器里,用了空格表示回车键,同样报错:

Traceback (most recent call last): File "/data/workspace/myshixun/ls/src/step6/test.py", line 9, in

ls = list(map(eval, ls)) File "", line 0

SyntaxError: invalid syntax

虽然它的报错表示的是在使用 eval() 函数转换列表中的元素时出现了语法错误。这可能是由于列表中的某个元素不是有效的 Python 表达式所导致的。

eval() 函数用于计算字符串中的有效 Python 表达式,并返回计算结果。如果字符串中的表达式不是有效的 Python 语法,那么将会抛出 SyntaxError 异常。

实际它的错误在于‘  ’,它的表达式不应该有空格来表示回车键。

实验的完整代码:

编程要求

根据提示,在右侧编辑器补充代码,使程序能依次接收用户输入的10个成绩,将成绩以字符串类型置于列表中输出;去除弃权成绩,再去除一个最高分和一个最低分,然后计算平均成绩(最多保留小数点后2位)并附加到列表末尾。 输出末尾附加了平均成绩、元素为字符串的成绩列表。


ls=[]
for i in range(10):
    n=input()
    ls.append(n)
print(ls)
while ' ' in ls:          //在这里,可以在系统的编译器通过,但不能在头哥的编译器通过。不能有空格
    ls.remove(' ')

ls = list(map(eval, ls))
ls_new=ls.copy()
##print(ls_new)
ls.remove(max(ls))
ls.remove(min(ls))

average=sum(map(float,ls))/len(ls)
ls_new.append(round(average,2))

ls_new=list(map(str,ls_new))
print(ls_new)

这只是我的一点实验结论。可能也是因为实验的编译器不同,我win10用的编译器是python 3.11版本的,可能换其它版本的编译器可以解决这个问题。

你可能感兴趣的:(python)