python input()函数,python input函数详解

  python input()函数,python input函数详解

  我们写的大多数程序都需要读取输入并进行处理,而基本的输入操作是从键盘上键入数据。当从键盘输入数据时,Python主要使用其内置的input()函数。下面这篇文章主要介绍Python中input()函数用法的相关信息,有需要的可以参考一下。

  00-1010一:input()函数的输入机制二:input()函数经常涉及的强制类型转换三:带提示的input()函数及其常见问题四:使用input()一次性输入多个变量值附:input()函数强制转换结果汇总

  

目录

 

  我们写的大部分程序都需要读取输入并进行处理,基本的输入操作就是从键盘输入数据。从Python键盘输入数据大多使用其内置的input()函数。但是不像编程初学者经常遇到的C和C,我们不需要在输入的时候指定变量的类型。相反,用a=input()给任意数据类型的变量赋值是非常方便的,不管是int、float还是list等。但是,这并不意味着Python完全省去了程序员判断数据类型的工作。如果这样想,编程过程中就容易出现问题。我们知道Python在给变量赋值的时候会帮助判断存储数据的类型,不需要操作,但是输入就不是这样了。

  首先,我们需要弄清楚我们赋的变量在python内部是以什么形式存在的。下面给大家看一个程序片段。

  那么我们可以看到,通过type()函数,我们可以看到,无论我们输入的值是int、float还是sring,input()函数最后返回的这个数据的类型都是string。了解这一点有助于我们更好地使用input()函数。因为在算术运算中,字符串是不能和int或者float数据直接进行算术运算的,如果直接使用,必然会带来TypeError。

  即使不报错,我们也是用两个直接input()函数打出来的数据来计算,所以很可能是在合并两个字符串,而不是算术运算。

  

一:input()函数的输入机制

 

  所以,当我们使用input()函数输入的数据进行算术运算时,我们大多需要使用强制类型转换来允许我们进行计算。得益于Python便捷的数据类型转换,我们可以轻松转换数据类型。

  第一种是打字时转换,比如:a=int(input())。这种赋值的数据存储形式就是我们一开始转换的数据类型,和C语言,C等等没什么区别。

  二是用的时候转换。这种赋值的数据存储形式仍然是input()返回的字符串类型,在使用的时候才会进行转换,这样会增加工作量,而且可能会因疏忽而导致错误,所以要谨慎使用。

  

二:input()函数常涉及的强制类型转换

 

  第一次看到input()的时候,发现输入格式变量=input(prompt),我惊呆了。感觉Python的input()函数的用户交互真的很友好,再也不用像其他一些编程语言那样单独写一个用户提示了。以下面的片段为例。

  你可以看到,当我们按下Enter键时,屏幕上会显示我们编写的提示语言,等待用户的输入。这给交互式编程带来了便利。

  但是我在使用form variable=input(prompt)时很快就遇到了问题。当我把input(prompt)中的提示理所当然地当成print()函数时,发现input()无法将变量赋值返回给程序。也就是说,如果我们给input()的暗示性语言添加变量,我们很可能会出错,比如:

  出现这个问题的原因是variable=input(prompt)是一种直接以字符串形式输出提示的提示语言,不能像print()函数那样给变量赋值并输出。那么这是否意味着我们不能给它添加变量呢?毕竟在很多周期中,暗示性的语言是需要根据周期数来改变的。

  那么我们其实可以加入进来,解决方法就是上面说的强制类型转换。因为我们已经知道input()是以字符串形式输出的,所以我们需要将变量转换成字符串!然而,应该指出的是

  是,使用的符号是用于字符串连接的+而不是分割字符串和变量的,——这里需要注意。

  

 

  

 

  

四:利用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)

 

  上面这段代码很简单,仅有两个选项,如果上面代码不是两个,而是几十个,几百个,难道我们要一个一个打'1','2','3','4','5',.....'200','201'.....,这时我们要想办法简单一点,那就是把所有的数据的类型都转换成整型,但是上面不是说了input()函数的返回都为string类型吗?其实在某些特殊情况下是可以被强制转换的,

  

choice=int(input(请选择1或2))

 

  只要在input()函数前面加上int(),就可以把input()函数的结果强制转换成整数。

  那么我们什么时候会用到把结果强制转换成整数的时候呢,当我们想要的结果是数字的时候。例如年龄,工资,身高,体重等这些数字时。

  例如:我们要对全班的同学按照身高进行分组,这时我们就需要用到整数。

  

height=int(input(请问你的身高是:))

 

  

 

  

总结

 

  到此这篇关于Python中input()函数用法的文章就介绍到这了,更多相关Pythoninput()函数用法内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: