Python:TypeError: unorderable types: str() >= int()

1.问题描述

age =input('please enter your age:' )
if age >= 18:
    print('adult')
else:
    print('teenager')

在运行该代码的时候,python解释器报错,错误信息如下:

Traceback (most recent call last):
  File "C:/Users/77062/PycharmProjects/ReadMong/Hello.py", line 16, in <module>
    if age >= 18:

TypeError: unorderable types: str() >= int()

首先来解释一下错误信息: 
1.Traceback指追踪,即python的解释器使用Traceback追踪异常,出现Traceback说明你的程序出错了; 
2.接下来的一行表明文件名,位置; 
3.再接下来显示出错语句; 

4.最后一行显示错误的原因。

最后一句中,unorderable types: str() > int()指类型不匹配,即a变量与10的类型不匹配。可是,我输入的a是整数,怎么会出现这种情况呢?

原来,在python3中,input函数返回的是字符串,即你输入字符串,他就输出字符串,你输入数字,他还是输出字符串,那么在执行接下来的操作时就可能出现类型不匹配的情况。所以出现了字符串与数字比较的情况。

2.解决方案

既然input函数的返回值是字符串,我们不妨将字符串强制性转化成整型,这样就不会出现类型不匹配的情况了。

正确代码如下:

age =int(input('please input your age:' ))
if age >= 18:
    print('adult')
else:
    print('teenager')

猜你喜欢

转载自blog.csdn.net/weixin_37404604/article/details/80537341
今日推荐