从销售清单中去除“$”符号

Stripping '$'-sign from sales list

为什么我无法在第一种代码方法中删除“$”,但我可以在第二种方法中删除?

方法一

sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98', '.41', '.59']

for element in sales:
 element.strip('$')

 print(element)

方法二

sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98', '.41', '.59']

for element in sales:

 print(element.strip('$'))

如果要更改原始列表,则需要在for循环中分配变量并使用索引:

sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98', '.41', '.59']

for x in range(len(sales)):
    sales[x] = sales[x].strip('$')
    print(sales[x])

您似乎想将销售额视为数值变量

sales = ['.21', '.29', '.52', '.13', '.39', '.82', '.85', '.98', '.41', '.59']


sales = [float(element.strip('$')) for element in sales]

然后你可以打印它或求和它

print("total sales: {t:.2f}".format(t=sum(sales)))

str.strip 方法不修改给定的字符串,而是 returns 官方文档中指定的结果。

Return a copy of the string with the leading and trailing characters removed.

因为 element.strip('$') returns 结果而不是修改 element 此代码不执行任何操作。

要将其转换为美分(永远不要使用浮点数进行货币计算,因为浮点数不精确,您可以这样做:

sales_in_cents =  [int(element.strip('$').replace('.','')) for element in sales]

显示总计 $...

print(f'Total sales : {sum(sales_in_cents)/100:0.2f}'

用美分进行所有计算(包括总和)并转换为 $(仅在需要时除以 100。