如何修复无法将字符串转换为浮点数:?



我创建了一个程序,它一直弹出一个错误消息,上面写着

Traceback (most recent call last):
File "/Users/salvas/Downloads/Salvas6/program6_2.py", line 23, in <module>
main()
File "/Users/salvas/Downloads/Salvas6/program6_2.py", line 12, in main
reg_price = float(prices_file.readline())
ValueError: could not convert string to float: ''

程序应该使用文件中的信息并将其显示在表中。我能够让它正确地打印信息,然而,现在它出现了这个错误。数据包括目的地,到该目的地旅行的常规价格,以及在该计划中计算成折扣价的折扣百分比。以下是我从使用不同程序创建的.txt文件中导入的数据:

San Francisco
550
10
New Orleans
330
10
Atlanta
295
20
def main():
prices_file = open('prices.txt', 'r')
destination = prices_file.readline()
column1 = 'DESTINATION'
column2 = 'REG.PRICE'
column3 = 'REDUCED'
column4 = 'SALE PRICE'
print(f'{column1:<}t{column2:}t{column3:}tt{column4:}')
while destination != '':
reg_price = float(prices_file.readline())
reduc_percent = float(prices_file.readline())
percentage = reduc_percent / 100
reduced = percentage * reg_price
sale_price = reg_price - reduced
destination = destination.rstrip('n')
print(f'{destination:<}t${reg_price:.2f}tt${reduced:.2f}tt${sale_price:.2f}')
destination = prices_file.readline()
prices_file.close()

if __name__ == '__main__':
main()

这是我创建的程序,它不断出现一个错误消息。

我怀疑问题是在文件末尾有额外的空行,所以最后的destination只是'n'。您可以通过提前剥离它来解决这个问题,例如:

while destination := prices_file.readline().rstrip('n'):

最新更新