【问题标题】:How can I use the ValueError function correctly?如何正确使用 ValueError 函数?
【发布时间】:2021-02-03 22:28:44
【问题描述】:

这是我的代码:

from time import sleep

def Kontostand_Berechnen():
    if float(Kontostand_Nachfragen) >= float(Preis_Nachfragen):
        sleep(1)
        print("")
        print("Du hast genug Geld!")
        print("")
        sleep(1)
    else:
        sleep(1)
        print("")
        print("Du hast nicht genug Geld!")
        print("")
        sleep(1)

sleep(1)
print("")
Kontostand_Nachfragen = input("Wie viel Geld hast du?: ")
sleep(2)
print("")
Preis_Nachfragen = input("Wie viel kostet das Produkt?: ")
if ValueError:
    print("")
    sleep(1)
    print("Bitte nur Zahlen eingeben! Kein Text!")
    print("")
    sleep(1)
else:
    Kontostand_Berechnen()

我编写这段代码只是为了练习和娱乐。印刷文字是德语。但我认为这并不妨碍。我希望如果用户写的是文本而不是数字,则会收到一条错误消息。但这并不像希望的那样工作。使用此代码,即使我写数字,我也总是会收到错误消息。 (我确定代码不是很容易理解。我也是最近才开始使用Python)

【问题讨论】:

    标签: python string input valueerror


    【解决方案1】:

    如果您想利用ValueError,您需要使用try/except。您将处理 except 块中的错误。一个简化的示例可能如下所示:

    while True:
        try:
            Preis_Nachfragen = float(input("Wie viel kostet das Produkt?: "))
            break
        except ValueError:
            print("Bitte nur Zahlen eingeben! Kein Text!")
    
    print(Preis_Nachfragen)
    

    【讨论】:

      【解决方案2】:

      您收到错误是因为if else 子句不是用于检查错误。这就是为什么python有try except clauses。

      按照我在Check if String can be Converted to Float 的回答,您可能需要查看try except clause 并检查用户是否输入了数字作为输入。然后,您将能够处理不是数字的input,例如:

      try:
          your_input = float(input("")) # fill in with input text
      except Exception as e:
          raise ValueError("") # here you fill in the message you want to give to users
      

      但是,您可以检查当您执行float(input("message")) 时,您已经收到带有标准消息的ValueError,因此您可以使用上面的代码编辑该消息(例如,用德语输入) .

      【讨论】:

        猜你喜欢
        • 2017-08-19
        • 2014-04-22
        • 2011-12-22
        • 2016-12-21
        • 2010-11-16
        • 1970-01-01
        • 2021-09-27
        • 1970-01-01
        • 2011-02-12
        相关资源
        最近更新 更多