文章目录
输出函数print()和输入函数input()
这篇文章主要讲解python输出函数print()、输入函数input()的语法以及各参数的使用示例
1.输出函数print()
作用: 用于打印输出
语法:print (*objects, sep=’ ', end=‘n’, file=sys.stdout, flush=False)
1.1参数说明:
1.objects:表示输出一个或者多个对象。输出多个对象需要用sep分隔。
2.sep:输出多个对象时使用sep分隔,默认值是一个空格。
3.end:输出结束以end结尾,默认值是换行符\n,可以换成其他字符串。
4.file:要写入的文件对象,默认为终端输出。
5.flush:输出是否被缓存通常决定于file,但如果flush关键字参数为True,流会被强制刷新。
1.2第一个参数objects–对象
输出多个对象时,用逗号隔开
我们通过举例来观察,使用print()函数输出三个一样的语句print(‘hello’,‘world’,123)
print('hello','world',123)
print('hello','world',123)
print('hello','world',123)
可知结果为:
根据输出结果可知,我们输出了三个对象。
1.3第二个参数esp–间隔多个输出对象
sep不定义的时候默认是空格
print('hello','world',123,sep='+')
print('hello','world',123,sep='-')
print('hello','world',123)
此处输出的结果为:
根据结果可知,定义sep值后,第一行的多个输出对象由+分隔,第二行由-分隔,第三行没有设定,由默认的空格分隔。
1.4第三个参数end–以什么结尾
不定义end值时,默认是换行结尾
我们再修改一下代码观察一下。
print('hello','world',123,sep='+',end='???')
print('hello','world',123,sep='-')
print('hello','world',123,end="banana")
print("111")
这个时候我们的输出结果为:
我们第一个print中将end设置成了???,所以由???结尾,第二个print没有设置,所以默认换行结尾,第三个print的end设置成了banana,所以是banana结尾。我在第三个print后面补充了一个print(“111”),就是为了体现它不是换行结尾的特性。
补充:使用print对多个字符串输出时,如果没有使用逗号隔开,会直接拼接。
2.输入函数input()
作用:输入信息、内容
语法:input([prompt])
特点:输入的内容均是字符串类型
2.1参数说明:
1.prompt: 提示信息
当你调用这个input()函数时,Python解释器会等待用户输入。当用户使用键盘输入值后,将输入的值保存在变量中。
我们举个例子来观察一下
a=input()
b=input()
print(a,type(a))
print(b,type(b))
根据代码,我们得到的输出结果:
输入的两个变量都被转换成str,也就是字符串类型。
默认情况下,input()函数返回一个字符串。如果你想从用户那里读取一个数字,你可以分别使用 int()、float() 和 complex()函数将字符串类型转换为int、float或complex类型。
例如输入以下代码:
a=float(input())
b=int(input())
print(a,type(a))
print(b,type(b))
根据代码得到的输出结果为:
2.2参数prompt–提示用户信息
prompt是一个字符串,在input()函数开始读取用户输入的值之前输出。提示信息有助于让用户知道应用程序期望什么样的输入,可省略。
让我们使用它的参数试一下:
a=int(input('输入一个分数:'))
if a>=60:
print("成绩合格")
else:
print('成绩不合格')
我们进行一下测试:
在实际运用中,我们可以根据输入的提示输入合适、恰当的内容,是对用户输入的一种提示。
拓展用法:
2.3split()
正常来说,一个input()函数只能接收一个数据,如果想要通过一个input函数接收多个数据,可以使用分割放进不同的变量存储。
split() 通过指定分隔符对字符串进行切片。
使用了split方法后,默认的是以空格切割,可以根据自己喜好设置分割符号。
具体例子如下:
a,b=input().split()
print(a,type(a))
print(b,type(a))
在这个代码中,我们的split方法中是没有定义分割符号的,默认是空格,我们看输入和输出结果在没有定义split括号里面的内容的时候,默认是空格间隔,使用其他程序会报错,可自行尝试。
我们定义split(“,”)试一下
a,b=input().split(",")
print(a,type(a))
print(b,type(a))
根据代码,可以看到的输出结果是:
正常来说,我们需要输入几个变量,在使用split分割后,就需要几个变量接收,如果接收的变量数和输入的变量数不符合,会产生报错。如果只使用一个变量去接收被分割符分割的多个数据,得到的是一个列表,我们可以实践测试一下:
a=input().split(",")
print(a,type(a))
我们模拟输入两个数据,看输出结果和输出类型。
所以,在输入多组数据的时候,是不可以在input函数前使用int、float等数据类型直接强制转换的,因为得到的对象是一个列表。
但是可以通过映射函数map()强制转换自己的类型,这个转换指的是input输入多个数据的中任意一个数据的数据类型。
map(需要转换的数据类型,)
x=map(float,input("请输入:").split(","))
print(x)
print(type(x))
for y in x:
print(y)
print(type(y))
由此可以看出,使用map函数强制转换后得到的是这个map这个键控集合存储值的地址,我们通过遍历得到里面存储的变量值,并输出它的数据类型。根据输出结果可以看出,输入的变量确实由str转到float。
2.4strip()
strip()方法移除输入数据头尾指定的字符(默认为空格)。strip方法是左右两边同时向中间排除设定的字符,如果开始没有遇到设定的字符就会停止排查。左边没有遇到不会遇到右边的排查。例子如下:
a=input('输入一组乱码数据:').strip('##')
b=input("输入一组乱码数据:").strip('##')
print(a)
print(b)
运行的输出结果为:
除了strp(),还有只从左边向中间检测并删除指定字符的函数lstrip(),l取自left和只从右边向中间检测的的rstrip(),r取自right。
我们看一个例子能够迅速理解:
a=input('输入一组乱码数据:').lstrip('##')
b=input("输入一组乱码数据:").rstrip('##')
print(a)
print(b)
我们可以看到输出结果为:
由此可以验证我们之前的结论。
感谢你的阅读,关注我,精彩继续!