Python新手求助:如何将用户输入的浮点型击球率存入空列表?
解决你的Python列表添加浮点值问题
嘿,我来帮你理清代码里的问题,你遇到的嵌套空列表问题其实是因为列表添加的操作错啦,咱们一步步来改:
先说说你代码里的核心问题:
- 你本来想把转换好的浮点型击球率添加到
averages1里,但你写的是averages1.append(averages),而averages是个空列表,所以每次循环都往averages1里塞一个空列表,最后就得到了嵌套的空列表(你的输出显示[[]],大概率是最后只打印了一次,但本质逻辑是错的) - 代码里的
MAX_AVERAGES - 1和averageString + 1这两行完全没用,它们只是做了计算但没有赋值给任何变量,属于无效代码 - 你声明了
averages空列表但从来没使用,还有number变量也没派上用场,属于冗余变量
修正后的代码:
# 定义数组大小的常量 MAX_AVERAGES = 8 # 用来存储击球率的列表 averages = [] # 循环获取用户输入 for i in range(MAX_AVERAGES): average_input = input("Enter a batting average: ") # 转换为浮点型 batting_average = float(average_input) # 将浮点值添加到列表中 averages.append(batting_average) # 打印结果 print(averages)
代码解释:
- 只需要一个空列表
averages来存储所有击球率就够了,不用多余的averages1 - 每次循环获取用户输入后,转换成浮点型,直接用
averages.append(batting_average)把这个值添加到列表里 - 去掉了所有无效和冗余的代码,逻辑更清晰
运行修正后的代码,输入你给的那些值后,会输出:[0.111, 0.222, 0.333, 0.444, 0.555, 0.666, 0.777, 0.888]
内容的提问来源于stack exchange,提问作者NinaPy
相关产品推荐
相关产品推荐

