zoukankan      html  css  js  c++  java
  • TypeError: unorderable types: str() >= int()

    1.问题描述

    1 age=input('please enter your age')
    2 if age >=18:
    3     print('your age is',age)
    4     print('adult')
    5 elif age>=6:
    6     print('teenager')
    7 else:
    8     print('kid')

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

    F:python>python3 elif.py
    please enter your age5
    Traceback (most recent call last):
      File "elif.py", line 2, in <module>
        if age >=18:
    TypeError: unorderable types: str() >= int()

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

    unorderable types: str() > int()指类型不匹配,即age变量与18的类型不匹配。可是,我输入的age是整数,为什么会出现这种情况呢?

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

    所以出现了字符串与数字比较的情况。

    2.解决方法

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

    正确代码如下:

    1 age=int(input('please enter your age'))
    2 if age >=18:
    3     print('your age is',age)
    4     print('adult')
    5 elif age>=6:
    6     print('teenager')
    7 else:
    8     print('kid')

    运行结果:

    F:python>python3 elif.py
    please enter your age25
    your age is 25
    adult

  • 相关阅读:
    Opengl编程指南第三章:视图
    OpenGL编程指南第四章:颜色
    OpenGL编程指南第七章:显示列表
    推荐:字体、排版简明入门
    OpenGL编程指南第八章:绘制像素、位图、字体和图像
    推荐:字体、排版简明入门
    OpenGL编程指南第五章:光照
    转载一篇密码学基本介绍
    ARM_异常和中断学习笔记
    ARM指令学习笔记
  • 原文地址:https://www.cnblogs.com/X-knight/p/7160523.html
Copyright © 2011-2022 走看看