山地人

Python 输入&输出

山地人
山地人
2021-07-02

输入和输出 I/O

对于编写的程序,我们需要允许程序在运行的时候进行数据的读取和结果的输出。对于控制台程序,我们可以使用inputprint函数来分别处理数据的输入和输出。

输出

print函数的完整参数格式如下

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
  • *objects 表示可以传入多个objects参数。
  • sep=' ' 是多个传入的objects参数之间的分隔符,默认使用空格分割。
  • end='\n' 是最终的结束符,默认是\n换行符。
  • file=sys.stdout 是指定输出的文件,默认输出到标准输出(屏幕)。
  • flush=False 是否强制刷新缓冲区,默认不强制刷新。

格式化输出

format格式化

对于字符串,我们可以使用字符串的format格式化函数来对字符串进行格式化。

str.format()

上面的{}是占位符,format函数会用对应位置的参数去格式化{}。如果占位符内指定了参数索引(0表示第一个参数),那么format函数会用指定位置的参数来格式化。

"{1}对于{0}来说很有趣,{0}会努力学好{1}的。".format(name, course)
  • {0} 代表 第一个参数:name
  • {1} 代表 第二个参数:course

另外,我们还可以使用关键词参数来进行格式话。

"{course}对于{name}来说很有趣,{name}会努力学好{course}的。".format(name=name, course=course)

printf格式化

如果你熟悉C语言,你应该会知道C语言里的printf函数。Python也支持类似printf的格式化方式。

print("%s 得分 %f" % ("Python", 95.5))

格式化符号:

符号说明
%c格式化单个字符
%s格式化字符串
%d格式化整数
%u格式化无符号整数
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数
%e使用科学计数法格式化(小写e)
%E使用科学计数法格式化(大写E)
%g使用科学计数法格式化(小写e)
%G使用科学计数法格式化(大写E)
%p以十六进制格式化变量地址

格式化数字

对于占位符{},也支持很多更精确的控制。

符号说明例子
0数字前方填充0而非默认的空格"{0:05d}".format(123)
>填充左边"{:0>5d}".format(123)
<填充右边"{:0<5d}".format(123)
,以逗号分隔"{:,d}".format(123)
%显示百分号"{:.2%}".format(12.3)
+显示正负号"{:+.2f}".format(12.3)
b以二进制显示 101"{:b}".format(256)
d以十进制显示 129"{:d}".format(256)
o以八进制显示 17"{:o}".format(256)
x以十六进制显示(小写) ff"{:x}".format(256)
#x以十六进制显示(小写) 0xff"{:#x}".format(256)
#X以十六进制显示(大写) 0XFF"{:#X}".format(256)

以不同进制显示

输入

通过input函数,可以接收用户在键盘上输入的数据。

input([prompt])
  • [prompt]这里的prompt是一个输入提示标题,[]的意思是这个参数是可以省略的。
  • 用户输入的结果会以返回值的形式返回

通过input函数获取到的数据是字符串类型,可以通过类型转换函数转换成需要的类型。

当然上面的数据强制转换为整形的代码比较简单,当用户输入一些非法字符就会导致程序出错。可以对程序做进一步的容错保护,当然这不是目前关注的重点。

至此,本篇教程也到了该和你说再见的时候了,我们下期再见。

学完本篇互动教程,如果你觉得体验不错,可以把网页链接发送给你的小伙伴,让他/她也来感受一下。当然,你也可以继续看看网站上其他的的互动教程,希望`idev365`能够给你带来收获。

学习教程的过程中碰到了问题,或者对idev365有什么改进意见和想法,欢迎加入idev365微信内测群,和山地人交流你的想法。