【python】关于input语句和数值大小判断的问题

关于Sublime

Sublime里面尽量不要运行带有input()语句的程序!

Sublime里面尽量不要运行带有input()语句的程序!

Sublime里面尽量不要运行带有input()语句的程序!

重要的事情说三遍。

input()语句

age = input('请输入年龄:')
print(type(age))

无论输入的是什么,即便是直接按住enter键运行,最后输出的还是<class ‘str’>,而str数据类型是不能进行比较(= 、<、>等)或者算数运算(+ 、- 、 * 、 /等)等的操作。

问题一:直接进行比较运算

报错TypeError: ‘<’ not supported between instances of ‘str’ and
在这里插入图片描述

问题二:直接进行算数运算

报错TypeError: can only concatenate str (not “int”) to str
在这里插入图片描述
查看两个报错类型可知,这两种错误都是属于TypeError(类型错误),解决的方法就是将字符串类型转变成为数值类型。方案有两种。一种是int()方法,一种是eval()方法

方案一:int()方法,将其他数值字符串转化为整型数值

age = int(input('请输入年龄:'))
print(type(age))

只要输入的是数值,最后输出的都是整型:<class ‘int’>,就可以进行比较运算和算数运算了,如果输入的不是数值,就会报错。

方案二:eval()方法,去掉数据两端的引号

age = eval(input('请输入年龄:'))
print(type(age))

当输入的是数值时,运行程序会把两端的引号去掉,赋值的变量的类型就变成整型(假如是整数),和上面的方案一的区别在于,如果输入的不是数值,报错的类型是不同的。方案一显示的是赋值错误:ValueError;方案二显示的是命名错误:NameError。

示例

判断输入的信息,并根据输入的内容输出,代码如下:

age = int(input('请输入您的年龄:'))
gender = input("请输入您的性别(F/M):")
print('***您今年的运势***')

if gender == 'F' and age < 20:
	print('你会考上清华并找到一个男朋友')
elif gender == 'M' and age < 20:
	print('你会考上清华并找到一个女朋友')
else:
	print('你会发财')

Sublime不运行input语句,可以选择使用cmd(powershell)和idle运行。

扫描二维码关注公众号,回复: 8856091 查看本文章

cmd下运行代码

使用快捷键(win+r),调出cmd窗口,然后将路径指引到放文件夹的地方,然后输入python 文件名.py
在这里插入图片描述

Powershell下运行代码

在文件放置的空白地方,同时点击shift 和鼠标右键,弹出窗口后,选择选项"在此处进入powershell窗口",然后直接输入python 文件名.py(假如是在桌面,鼠标不要触碰桌面任何文件,同时点击shift 和鼠标右键,弹出窗口后,选择选项进入powershell窗口)
在这里插入图片描述

IDLE下运行代码

将代码用idle编辑器打开,保存后直接按F5即可运行代码
在这里插入图片描述
至此,整个程序就顺利的运行了。powershell是啥?和cmd有什么区别?可以参考这个解答:powershell和cmd的区别。搬运第一段的内容:在windows上cmd和powershell都是命令行执行窗口,Powershell 从 Windows7 时代开始内置于 Windows 系统当中,可以看作是微软对 cmd 的大升级,目前两者并存于 Windows 系统中。

我个人倾向使用powershell,因为可以直接在文件的路径打开命令窗口,方便程序的执行。

发布了20 篇原创文章 · 获赞 4 · 访问量 1984

猜你喜欢

转载自blog.csdn.net/lys_828/article/details/104033542