首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中接收用户输入时类型不匹配

在python中接收用户输入时类型不匹配
EN

Stack Overflow用户
提问于 2020-09-17 02:20:49
回答 2查看 93关注 0票数 0

我运行以下程序作为教学练习:

代码语言:javascript
复制
height = input("State your height : ")
age = input("State your age : ")

if type(height) == float and type(age) == int:
    print(f"You're {height} m tall and {age} years old")
else:
    print("\n You've made a mistake ! Enter your data again .")
    height = input("State your height : ")
    age = input("State your age : ")
    print(f"You're {height} m tall and {age} years old")

具有以下输入和输出:

代码语言:javascript
复制
State your height : 2.2
State your age : 10

 You've made a mistake ! Enter your data again .
State your height : 2.2
State your age : 10
You're 2.2 m tall and 10 years old

我给出了正确的值类型(高度为浮点型,年龄为整型),因此应该执行'if‘块,但Python将表达式取值为false并转到'else’块。我在这个程序中做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-09-17 02:25:03

在Python3中,无论数据是什么样子,input总是返回一个字符串。您需要手动将heightage解析为floats和ints。

代码语言:javascript
复制
height = float(input("State your height : "))
age = int(input("State your age : "))

这将导致在输入无效数据时引发ValueError,这意味着您将使用try/catch而不是if检查

代码语言:javascript
复制
try:
    height = float(input("State your height : "))
    age = int(input("State your age : "))
except ValueError:
    print("\n You've made a mistake ! Enter your data again .")

现在,您只需要在其中添加一个循环来多次询问。

票数 5
EN

Stack Overflow用户

发布于 2020-09-17 02:24:15

您可以使用isinstance(height, int)验证类型。

然而,问题是输入是字符串,所以您必须使用int()float()对其进行转换。

如下所示:

代码语言:javascript
复制
def get_input():
    height = int(input("State your height : "))
    age = float(input("State your age : "))
    return height, age


is_input_valid = False

while not is_input_valid:
    try:
        height, age = get_input()
        print(f"You're {height} m tall and {age} years old")
        is_input_valid = True
    except ValueError:
        print("\n You've made a mistake ! Enter your data again .")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63925853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档