Python-对于文本文件中的每个值?
对于我正在编写的代码,我使用逗号将一个文本文件拆分,现在对于其中的每个值,我希望将其设置为整数。我尝试过拆分文本文件,然后将其转换为整数,但这不起作用。对于文件中的所有值,是否有任何方式可以表示“执行某项操作”?此外,价值的多少并不具体,它取决于程序的用户(这是一个“购物清单”程序)。 我当前的代码:Python-对于文本文件中的每个值?,python,file,text,Python,File,Text,对于我正在编写的代码,我使用逗号将一个文本文件拆分,现在对于其中的每个值,我希望将其设置为整数。我尝试过拆分文本文件,然后将其转换为整数,但这不起作用。对于文件中的所有值,是否有任何方式可以表示“执行某项操作”?此外,价值的多少并不具体,它取决于程序的用户(这是一个“购物清单”程序)。 我当前的代码: TotalCOSTS=open("TotalCOSTS.txt","r") Prices=TotalCOSTS.read() print(Prices) Prices.strip().split
TotalCOSTS=open("TotalCOSTS.txt","r")
Prices=TotalCOSTS.read()
print(Prices)
Prices.strip().split(",")
IntPrices=int(NewPrices)
print(len(IntPrices))
if len(IntPrices)==1:
print("Your total cost is: "+IntPrices +" Pounds")
elif len(IntPrices)>1:
FinalTotal = sum([int(num) for num in IntPrices.split(",")])
print("Your total cost is: "+ FinalTotal +" Pounds")
Prices是包含值的文件,所以我去掉了空白,然后将其拆分。这就是我需要继续的地方。
谢谢xx
results = [int(i) for i in results]
python 3您可以执行以下操作:
results = list(map(int, results))
total = sum([int(x) for x in TotalCOSTS.read().split(',') if x.isdigit() == True])
<> P>但是这使得一些非常简单的假设不会一直是准确的。例如,如果某个东西花费了2.99美元,In()将这个值转换成3。总的来说,你想考虑美分的价格(IDK你使用的是哪种货币,但是美元,100美分=1美元),所以2.99美元=299美分。
所以,你真的想要这样的东西:
total = sum([float(x)*100 for x in TotalCOSTS.read().split(',') if x.isnumeric() == True])/100
为什么不建议在python 3中使用列表理解?有什么具体原因吗?列表comp应该同时使用这两种方法。我不确定,但我认为在python 3中,map方法更快。我主要是2.7版的开发人员,所以不要把它当作福音。在py 2中,它应该是
results=map(int,results)