【问题标题】:How can I check if an input is a number and then turn it into an integer?如何检查输入是否为数字,然后将其转换为整数?
【发布时间】:2022-01-16 18:06:13
【问题描述】:
user_input = input("Press [A] or type 1").lower()
if user_input ???:
            user_input = int(user_input)
elif user_input == "a":
    ...

我想检查用户输入是否为数字,然后将该数字转换为整数。我在尝试寻找解决方案时只能在互联网上找到 .isdigit() 方法,但在这种情况下它对我不起作用。

完整代码:

print("TODO-LISTE")
print("Wilkommen in der TODO liste was möchtest du machen ?")
todo = []
machen = ""
while machen != "b":
    xp = 0
    laenge = len(todo)
    machen = input(
        "Möchtest du die Liste [A]nzeigen, etwas zur Liste [H]inzufügen, ein Element der Liste [L]öschen oder [B]eenden? ").lower()
    if machen == "h":
        dazu_machen = input("Was möchtest du hinzufügen? ")
        todo.append(dazu_machen)
        print(f"Du hast {dazu_machen} hinzugefügt!")
    elif machen == "a":
        laenge = len(todo)
        print(f"du hast {laenge} elemente in deiner Liste:")
        for x in todo:
            print(f"-{x}")
    elif machen == "l":
        while laenge != xp:
            elemente = todo[xp]
            print(f"[{xp}] -{elemente}")
            xp = xp + 1
        weg_machen = input(
            "Welches element möchtest du Löschen oder möchtest du [A]brechen? ").lower
        if weg_machen.isdigit():
            weg_machen = int(weg_machen)
            todo.pop(weg_machen)
            print(f"es wurde erfolgreich gelöscht!")
        elif weg_machen == "a":
            print("Erfolgreich abgerbrochen")
        else:
            print("Unbekannte eingabe")
    else:
        print("Unbekannte eingabe")
print("bye")

【问题讨论】:

  • 为什么它对你不起作用?您面临的确切问题是什么? '1'.isdigit() 将返回 True,而任何非数字数字将返回 False
  • 我收到此错误 AttributeError: 'builtin_function_or_method' object has no attribute 'isdigit'
  • 似乎.isdigit()替换`???`会做你想要的(它对我有用)。您应该发布重现该错误的完整代码。这可能是其他地方的错误。
  • 那你用错了,请贴出实际的报错代码。 注意: .isdigit 是一个 string 方法。
  • @S3DEV 非常感谢

标签: python string input integer


【解决方案1】:

你可以这样做:

a = '1'
b = 'a'

try:
    a = int(a)
    print("a is int")
    b = int(b)
    print("b is int")
except(ValueError):
    print("b is str")

输出:

a is int
b is str

【讨论】:

  • 再次,请阅读 cmets。与您的上一个答案一样,此答案不会解决 OP 的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 2013-11-14
  • 2012-09-23
相关资源
最近更新 更多