1.问题描述

 age=input('please enter your age')
if age >=18:
print('your age is',age)
print('adult')
elif age>=6:
print('teenager')
else:
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函数的返回值是字符串,我们不妨将字符串强制性转化成整型,这样就不会出现类型不匹配的情况了。

正确代码如下:

 age=int(input('please enter your age'))
if age >=18:
print('your age is',age)
print('adult')
elif age>=6:
print('teenager')
else:
print('kid')

运行结果:

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

TypeError: unorderable types: str() >= int()的更多相关文章

  1. python str + int

    TypeError: cannot concatenate 'str' and 'int' objects 1. print 'Is your secret number " + str(p ...

  2. 1.TypeError: must be str, not bytes

    1.TypeError: must be str, not bytes错误: 解答: 写文件处 open(filename, 'w').write 应该写为 open(filename, 'wb'). ...

  3. 二进制与十进制的转化,bool str int 之间的转化,str的常用操作,

    1.基础数据类型总览(7种) int: 整型,用于进行+-*/运算 str: 存储少量的数据;可加str,可乘数字,可切片,可进行9种常用操作 bool: True False 判断真假 list: ...

  4. 宝塔面板修改用户名和密码报错:TypeError: cannot concatenate 'str' and 'NoneType' objects

    [root@dapao~]# bt 14 正在执行(14)... ================================================================== ...

  5. python TypeError: must be str, not bytes错误

    TypeError: must be str, not bytes错误: 解答: 写文件处 f=open(filename, 'w')应该写为 open(filename, 'wb') 读文件时 f= ...

  6. TypeError: Can't convert 'int' object to str implicitly Python常见错误

    尝试连接非字符串值与字符串 想要字符串连接非字符串需要先进行强制转化 可以用str()函数 --------------------------------

  7. [C/C++] 输入函数getline(cin,str) 与cin.getline(str,int)区别

    cin.getline()函数是处理数组字符串的,其原型为cin.getline(char * , int),第一个参数为一个char指针,第二个参数为数组字符串长度. getline(cin,str ...

  8. Python学习day3 数据类型Ⅰ(str,int,bool)

    day3  数据类型 @上节内容补充 每周一个思维导图-xmind.exe in / not in #示例:(是否包含敏感字符)while True:    text = input('请输入你要说的 ...

  9. str int list tuple dict 一些实操

    #字符串的 一些实操 a='what' b=' are ' c=' you ' print(a+b+c) #字符串拼接 m =a.split('+') #以什么分割 (代码a='w+ha+t' 输出[ ...

随机推荐

  1. 10分钟了解JSON Web令牌(JWT)

    JSON Web Token(JWT)是目前最流行的跨域身份验证解决方案.虫虫今天给大家介绍JWT的原理和用法. 1.跨域身份验证 Internet服务无法与用户身份验证分开.一般过程如下. 1.用户 ...

  2. datatable 笔记 服务器端查询

    var vTable = ""; $("#vip_data").dataTable({ "scrollY": 400, //竖向高度 滚动 ...

  3. spring为什么推荐使用构造器注入?

    闲谈 ​ Spring框架对Java开发的重要性不言而喻,其核心特性就是IOC(Inversion of Control, 控制反转)和AOP,平时使用最多的就是其中的IOC,我们通过将组件交由Spr ...

  4. Go语言基础(二)

    Go语言基础(二) 跟着上篇,继续看Go基础 一.变量作用域 与C类似,有全局变量.局部变量.形参之分 package main import "fmt" // 全局变量 var ...

  5. H5上传功能

    近期开发一个关于微信公总号二次开发中,上传图片的需求,测试几个开源插件,更新一些心得,有需要可留言!!! plupload plupload多张上传图片的一个参考demo ajaxFileUpload ...

  6. python学习:for循环

    for循环 for i in range(1,4): print("loop:",i) 输出100以内的奇数: for i in range(1,101): if i % 2 == ...

  7. vue动态添加路由addRoutes之不能将动态路由存入缓存

    在我不知道vue的路由还可以通过addRoutes动态添加时,我只知道vue的路由都是写死在路由表中的,每当跳转时再去加载相应的路由.直到在一个新公司接到需要根据用户的权限显示不同的菜单的需求时才知道 ...

  8. IDEA使用Git传放项目

    使用Git下载项目到IDEA工具上开发 1. 下载Git 软件工具 https://git-scm.com/ 2. 下载安装 3.打开IDEA 配置Git 4. 搜索Git 在登入 5.选择自己Git ...

  9. linux虚机配置开发/Server环境全集

    linux虚机配置开发/Server环境全集 9. centos 升级githttp://www.cnblogs.com/grimm/p/5368777.htmla. 下载git2.2.1并将git添 ...

  10. Springboot搭建SSM+JSP的web项目

    Springboot搭建SSM+JSP的web项目 一:创建项目结构: 项目结构分为三个部分: 1 后端项目开发文件: 包: Util         工具包 Mapper      db层 Serv ...