文本文件中每个值的Python?

2024-10-01 04:54:32 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我正在编写的代码,我使用逗号将一个文本文件拆分,现在对于其中的每个值,我希望使其成为一个整数。我尝试过将文本文件拆分,然后将其转换为整数,但这不起作用。对于文件中的所有值,有没有任何方法可以说,做某件事?另外,价值的多少并不具体,它取决于程序的用户(它是一个‘购物清单’程序)。 我的当前代码:

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


Tags: 文件代码程序yourlen整数inttotal
2条回答
  1. 您的代码示例中没有定义NewPrices
  2. split()返回一个列表

要想完成你想做的事情,最直接的方法是:

total = sum([int(x) for x in TotalCOSTS.read().split(',') if x.isdigit() == True])

但这使得一些超级简化的假设并不总是准确的。例如,如果某个值2.99美元,int()将把它转换为3。总的来说,你要考虑以美分为单位的价格(你使用的是哪种货币的idk,但以美元为单位,100美分=1美元),因此2.99美元=299美分。你知道吗

所以你真的想要这样的东西:

total = sum([float(x)*100 for x in TotalCOSTS.read().split(',') if x.isnumeric() == True])/100
results = [int(i) for i in results]

python 3您可以执行以下操作:

results = list(map(int, results))

相关问题 更多 >