Python中input()函数的⽤法实例⼩结
⽬录
⼀:input()函数的输⼊机制
⼆:input()函数常涉及的强制类型转换
三:带提⽰的input()函数及其常见问题
四:利⽤input()⼀次性输⼊多个变量值
附:input()函数结果的强制转换
总结
⼀:input()函数的输⼊机制
我们编写的⼤部分程序,都需要读取输⼊并对其进⾏处理,⽽基本的输⼊操作是从键盘键⼊数据。Python从键盘键⼊数据,⼤多使⽤其内置的input()函数。但是,不同于程序设计初学者常接触的C和C++,我们不需要在输⼊之时规定变量的类型。相反,我们可以⾮常便捷的使⽤a = input()对任何数据类
型的变量a进⾏赋值,⽆论是int,float还是列表等等。但是这并不代表Python将程序员的判断数据类型⼯作完全省去了,如果这样想,那么在编程过程中很容易出现问题。我们知道,在对变量进⾏赋值时,Python会帮助判断存储数据的类型,不需要我们进⾏操作,但是input不是这样。
⾸先,我们需要弄明⽩我们赋值的变量在python内部到底是以什么形式存在的。下⾯我将展⽰⼀个程序⽚段
那么我们可以看到,通过type()函数,我们看到⽆论我们输⼊的值是int,float还是sring,最后input()函数返回的这个数据的类型均为string型。了解了这⼀点,将有利于我们更好的使⽤input()函数。因为在算术运算中,字符串是没法直接和int 或float数据进⾏算术运算的,如果直接使⽤,那么必然带来TypeError报错。
即使不报错,我们使⽤两个直接input()函数键⼊的数据进⾏计算,那么很可能是在对两个字符串进⾏组合⽽不是算术运算
⼆:input()函数常涉及的强制类型转换onpaste不能用input
所以,当我们使⽤input()函数输⼊的数据进⾏算术运算时,我们⼤多需要使⽤强制类型转换来允许我们计算。得益于Python便捷的数据类型转换,我们可以⼗分⽅便的转换数据类型。
第⼀种是在键⼊时进⾏转换,例如:a = int(input())。这样赋值的数据存储的形式从⼀开始就是我们转换的数据类型,与C 语⾔,C++等⽆异。
第⼆种则是在使⽤时进⾏转换。这样赋值的数据存储的形式仍是input()返回的字符串类型,仅仅在使⽤时转换,会加⼤⼯作量,且有可能因为粗⼼带来报错,所以要谨慎使⽤。
三:带提⽰的input()函数及其常见问题
在初见input()时,我发现了 variable = input(prompt)这个输⼊格式,⼀下⼦惊如天⼈。觉得Python的input()函数的⽤户交互真是友善,从此不再需要再像其他⼀些编程语⾔⼀样单独写⼀个⽤户提⽰语。以下⾯⼀个⽚段为例
可以看到,当我们敲击Enter以后,屏幕上会显⽰我们编写的提⽰性语⾔,并等待⽤户输⼊。这样给交互性程序编写带来了便利。
但是,我很快在使⽤variable = input(prompt)这个形式时遇到了问题,当我理所当然的把input(prompt)中的prompt当作print()函数使⽤时,我发现input()并不能将变量赋值返回给程序。也就是说,如果我们在input()的提⽰性语⾔中加⼊了变量,就很可能出错,例如:
这个问题的原因是variable = input(prompt)是直接以字符串形式输出提⽰性的prompt语⾔,不能像print()函数⼀样将值赋给变量并输出。那么这是不是意味着我们不能将变量加⼊其中呢?毕竟在很多循环中,提⽰性的语⾔是需要根据循环次数改变的。
那么实际上我们是可以加⼊的,解决⽅法就是上⾯讲过的强制类型转换,正因为我们已经知道input()以字符串形式输出,所以需要我们将变量转化成string型!但是,需要注意的是,使⽤的符号是⽤于字符串连接的“+”⽽不是分割字符串和变量
的“,”——这⾥需要注意。
四:利⽤input()⼀次性输⼊多个变量值
我们在编程的时候,常常需要⼀次性给多个变量赋值。在C语⾔和C++中,我们使⽤scanf("%d %d", &a,&b)这样的⽅式进⾏输⼊,其数据以空格为分界。那么在python中我们该如何⼀次性输⼊多个值呢?
(1):利⽤split()函数进⾏输⼊,同时,我们不仅可以利⽤split()函数⼀次性输⼊多个数,我们
还可以设置分隔符,除了传统的空格形式,也可以⽤逗号“,”这种更符合语⾔习惯的⽅式分隔输⼊字符。其原理是因为input()输⼊了⼀个字符串,⽽split()函数能根据设定的分割点分割字符串并返回分割后的字符串列表,所以能实现⼀次性输⼊多个数据值。范例如下:
但是,这样输⼊的值仍是字符串型,我们在上⾯已经说过字符串⽆法直接参与运算,最好输⼊时进⾏类型转换,那么,按照我们第⼆点的⽅法转换多输⼊值可⾏吗?
可以看到,这样是不可以的,那么为什么上⾯单输⼊可以⽽多输⼊报错呢?原因我们其实已经说过了,split()函数返回的是⼀个列表,spring当然能被转换成int型,但是列表是没法被这样直接转换的,所以我们需要⽤另⼀个函数map()来实现多输⼊的强制类型转换。
map()函数接受两个接收两个参数,⼀个是函数,⼀个是序列,map()将传⼊的函数依次作⽤到序列的每个元素,并把结果作为新的list返回。我们将传⼊的函数设置为强制类型转换函数int,则split()函
数返回的列表⾥的每⼀个值都将被强制转换类型,从⽽实现多输⼊的类型转换。范例如下:
附:input()函数结果的强制转换
choice=input('请选择1或2')
if choice=='1':
print('正确')
else:
print('错误')
上⾯这段代码很简单,仅有两个选项,如果上⾯代码不是两个,⽽是⼏⼗个,⼏百个,难道我们要⼀个⼀个
打'1','2','3','4','5',.....'200','201'.....,这时我们要想办法简单⼀点,那就是把所有的数据的类型都转换成
整型,但是上⾯不是说了input()函数的返回都为string类型吗?其实在某些特殊情况下是可以被强制转换的,
choice=int(input('请选择1或2'))
if choice==1:
print('正确')
else:
print('错误')
------------------------------
请选择1或2 1
正确
只要在input()函数前⾯加上int(),就可以把input()函数的结果强制转换成整数。
那么我们什么时候会⽤到把结果强制转换成整数的时候呢,当我们想要的结果是数字的时候。例如年龄,⼯资,⾝⾼,体重等这些数字时。
例如:我们要对全班的同学按照⾝⾼进⾏分组,这时我们就需要⽤到整数。
height=int(input('请问你的⾝⾼是:'))
if 0<height<=150:
print('你被分到了1组')
elif 150<height<=180:
print('你被分到了2组')
else:
print('你被分到了3组)
-----------------------------------
请问你的⾝⾼是:185
你被分到了3组
总结
到此这篇关于Python中input()函数⽤法的⽂章就介绍到这了,更多相关Python input()函数⽤法内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。