如何让Python将逗号识别为用户输入中的小数点?
这里是超级初学者 我正在阅读《用Python自动化枯燥的东西》一书,我决定编写一个小脚本来帮助我完成一些基本的百分比检查。我不想每次都打开Excel 因此,脚本获得两个输入,一个旧价格和一个新价格,然后计算价格的百分比变化。我想我是对的 一旦我尝试输入一个正确的浮动,问题就会出现,是吗?我在欧洲用逗号 我发现了一个主题,其中回答了一个类似的问题,但似乎有一个问题是是否调用setlocale,据我所知,它不涉及如何转换输入 我的代码如下:如何让Python将逗号识别为用户输入中的小数点?,python,floating-point,decimal,Python,Floating Point,Decimal,这里是超级初学者 我正在阅读《用Python自动化枯燥的东西》一书,我决定编写一个小脚本来帮助我完成一些基本的百分比检查。我不想每次都打开Excel 因此,脚本获得两个输入,一个旧价格和一个新价格,然后计算价格的百分比变化。我想我是对的 一旦我尝试输入一个正确的浮动,问题就会出现,是吗?我在欧洲用逗号 我发现了一个主题,其中回答了一个类似的问题,但似乎有一个问题是是否调用setlocale,据我所知,它不涉及如何转换输入 我的代码如下: def izracun_odstotkov():
def izracun_odstotkov(): #function to calculate the difference in % between original price and new price
while True:
try:
prvotna_cena = float(input('Prosim vnesi prvotno ceno:')) #original price
except ValueError:
print('Oprosti, to ni veljavni podatek. Vnesi stevilko.')
continue
if prvotna_cena == 0:
print('Prvotna cena ne more biti 0.')
else:
break
while True:
try:
nova_cena = float(input('Prosim vnesi novo ceno:')) #new price
except ValueError:
print('Oprosti, to ni veljavni podatek. Vnesi stevilko.')
continue
else:
break
print(round((float (nova_cena)- float (prvotna_cena))/ float (prvotna_cena)*100, 2), '%')
while True:
izracun_odstotkov() #This makes the script run over and over so the user can just keep checking the % changes.
您可以使用替换方法:
prvotna_cena = float(input('Prosim vnesi prvotno ceno:').replace(',','.'))
也许您可以使用类似于floatinputsome_提示符的东西直接用点替换逗号。?我相信有更优雅的方法可以做到这一点,但这个黑客也应该做到。哦,这是真的。不过,你的提示是什么意思?对不起,我还是习惯了一切。哦,我只是用它作为“Prosim vnesi prvotno ceno”之类的占位符。你的例子中有这样的内容。再次你好。这个replace方法对输入非常有效。现在,我试图找出如何使脚本以相同的替换输出百分比结果,并不断得到类似AttributeError的错误:“float”对象没有属性“replace”“function”对象没有属性“replace”我想在那里替换它的唯一原因是,我可以使用pyperclip将结果保存在剪贴板,然后将其粘贴到另一个程序中需要的任何字段中。你对如何解决这个问题有什么建议吗?抱歉:@JakeTae抱歉,我忘了在上面的评论中标记你。谢谢。这确实得到了很多建议。我想对于这样的脚本来说,这是最简单的方法了!: