我收到一个值错误:无法将字符串转换为浮点数:"." .这是怎么回事?



我正试图编写一个函数,该函数接受带有数值的文件,将它们全部加起来,同时排除带有字母的所有数字,并找到平均值。然而,当我尝试转换像"3.9"这样的数字时;对于float形式,我得到ValueError:不能将字符串转换为float: ";我知道如果我直接转换为3.9通过float("3.9")类型转换来浮动表单是可行的。

def averageSpeed():
count = 0
total = 0
stripLst = 'abcdefghijklmnopqrstuvwxyz$'
while count < 2:
try:
filename = input("Enter a file to process: ")
instance = open(filename, "r")
content = instance.readlines()
for line in content:
lineSplit = line.split()
for element in lineSplit:
for letter in element:
for character in stripLst:
if letter == character:
lineSplit.remove(element)
for line in content:
for element in line:
if float(element) > 2:
total += float(element)
print(lineSplit)
average = total / count
print(average)
break
except (FileNotFoundError):
print("That file does not exist.")
count += 1
filename = input("Enter a file name that exists: ")
averageSpeed()

文件内容:35.21.865.667.9 z70.273.2 a3.9 65.6 69.8六4.9美元54.9

哎呀,刚刚用下面的代码修复了我自己的问题:

def averageSpeed():
count = 0
total = 0
stripLst = 'abcdefghijklmnopqrstuvwxyz$'
while count < 2:
try:
filename = input("Enter a file to process: ")
instance = open(filename, "r")
content = instance.readlines()
for line in content:
print(line)
print()
for line in content:
lineSplit = line.split()
for element in lineSplit:
for letter in element:
for character in stripLst:
if letter == character:
lineSplit.remove(element)
for element in lineSplit:
if float(element) > 2:
total += float(element)
count += 1
print(lineSplit)
average = total / count
print("The total of the speeds of {} excluding all speeds with lettres in them is {}.".format(filename, total))
print("The total number of speeds in {} without letters is {}.".format(filename, count))
print("The average of the speeds of {} excluding all speeds with letters in them is {}.".format(filename, average))
break
except (FileNotFoundError):
print("That file does not exist.")
count += 1
filename = input("Enter a file name that exists: ")
averageSpeed()

最新更新