ValueError:无法将字符串转换为float:'44 \ n'

时间:2014-10-25 22:35:50

标签: python-3.x

嗨,我正在努力完成这一周的任务,我是python 3中的初学者编码器,并且分配是从文件中获取数字作为击球平均值然后找到平均值。问题是每当我到达读取文件的时候,文件的部分是str我理解并希望将它们更改为int但是它不起作用我想知道是否有修复或方法绕过它

def main(filename = 'bats.txt'):
hits = 0
bats = 0
app = 0
bases = 0
for line in open(filename, 'r'):
    contents = int(line.strip()) #does the placement of int here not work? 
    if contents > 4:
        playerNum = contents
        print(playerNum)
    elif contents <= 4 and contents >= 1:
        hits += 1
    elif contents <= 4 and contents >= 0:
        bats += 1
        print(bats)
    elif contents <= 4 and contents >= -1:
        app += 1        
    else:
        bases += 1

作业正在进行中,我完全被这部分困扰,因为它不会让我继续。感谢能帮助我的人。

1 个答案:

答案 0 :(得分:0)

在转换验证之前是否可以将字符串转换为int。您可以使用正则表达式来执行此操作。

始终捕获异常(因为我们不确定来自文件的值)这将确保程序执行并提供良好的用户体验

try:
    int(line)
except ValueError:
    print "Not a float"