如何让Python将逗号识别为用户输入中的小数点?

如何让Python将逗号识别为用户输入中的小数点?,python,floating-point,decimal,Python,Floating Point,Decimal,这里是超级初学者 我正在阅读《用Python自动化枯燥的东西》一书,我决定编写一个小脚本来帮助我完成一些基本的百分比检查。我不想每次都打开Excel 因此,脚本获得两个输入,一个旧价格和一个新价格,然后计算价格的百分比变化。我想我是对的 一旦我尝试输入一个正确的浮动,问题就会出现,是吗?我在欧洲用逗号 我发现了一个主题,其中回答了一个类似的问题,但似乎有一个问题是是否调用setlocale,据我所知,它不涉及如何转换输入 我的代码如下: def izracun_odstotkov():

这里是超级初学者

我正在阅读《用Python自动化枯燥的东西》一书,我决定编写一个小脚本来帮助我完成一些基本的百分比检查。我不想每次都打开Excel

因此,脚本获得两个输入,一个旧价格和一个新价格,然后计算价格的百分比变化。我想我是对的

一旦我尝试输入一个正确的浮动,问题就会出现,是吗?我在欧洲用逗号

我发现了一个主题,其中回答了一个类似的问题,但似乎有一个问题是是否调用setlocale,据我所知,它不涉及如何转换输入

我的代码如下:

    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抱歉,我忘了在上面的评论中标记你。谢谢。这确实得到了很多建议。我想对于这样的脚本来说,这是最简单的方法了!: