如何让python忽略字母而只关注用户输入的数字

问题描述 投票:0回答:2

我完成了一个学校项目,我做了一个计算器,在你告诉它你有多高后,它会计算出椅子和桌子应该多高才能适合你,所以它只需要数字,但如果有人输入“165cm”而不仅仅是“165” ”,它崩溃了。有没有办法让 python 忽略该输入中的字母?或者至少说“抱歉,只允许输入数字”,然后让用户再次输入他们的身高。我更喜欢先编写整个最终代码,然后解释它是如何工作的,但其中一个也可能有效。 它是瑞典语的,但我认为这不是问题。如果你必须使用 längd 并且你不知道如何写 ä 你可以直接输入 a,我稍后可以修复它。代码如下

längd = int(input())
bord = längd*0.3883063508
stol = längd*0.2582726288
print("Bordet ska vara ", end=""),
print(round(bord), end=""),
print(" cm hög och stolen ska vara ", end=""),
print(round(stol), end=""),
print(" cm hög.", end=""),```
python input
2个回答
0
投票

捕获异常,并要求正确的输入。

while True:
    x = input(()
    try:
        langd = float(x)
        break
    except ValueError:
        print(f"Invalid input f{x}, try again")

0
投票

这段代码应该可以正常工作:

import re
langd = int(re.findall("\d+", input())[0])
bord = langd * 0.3883063508
stol = langd * 0.2582726288
print("Bordet ska vara ", end="")
print(round(bord), end="")
print(" cm hög och stolen ska vara ", end="")
print(round(stol), end="")
print(" cm hög.", end="")

命令

re.findall("\d+", input())
返回输入中字符串中分隔数字的列表。由于我们只对这些数字中的第一个感兴趣,因此我们在该命令末尾使用 [0] 来仅获取列表的第一个元素。

© www.soinside.com 2019 - 2024. All rights reserved.