![Python程序设计基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/423/30058423/b_30058423.jpg)
2.3.4 输入、输出
1.输入
输入语句可以在程序运行时从输入设备获得数据。标准输入设备就是键盘。通过input()函数可以获取键盘输入数据。一般格式为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_58.jpg?sign=1738886861-Ha0GzXYWRPigdSGMY28XZgWL4wbNSWfJ-0-4daecc3b4bc4cde85309b71004f48114)
input()函数首先输出提示字符串,然后等待用户键盘输入,直到用户按回车键结束,函数最后返回用户输入的字符串(不包括最后的回车符),系统继续执行input函数后面的语句。例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_59.jpg?sign=1738886861-F3EcLRYFLUW656FQrDG4vhkbHlCVMpYa-0-4d634d811b98460b85c5b066885bc000)
系统会弹出字符串“请输入您的专业:”,等待用户输入,用户输入相应的内容并按回车键,输入内容将保存到name变量中。
如果需要将输入的字符串转换为其他类型(如整型、浮点型等),调用对应的转换函数即可。
2.输出
输出语句可以将程序的运行结果显示在输出设备上,供用户查看。标准输出设备就是显示器屏幕。一般格式为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_60.jpg?sign=1738886861-nT1Se884znqxLFH4ct65n7p2sOVCT01H-0-098ac695b4a2ad104abdab1d49302d21)
通过print()函数可以将多个输出值转换为字符串并且输出,这些值之间以sep分隔,最后以end结束。sep默认为空格,end默认为换行。
【例2-4】输出语句示例。
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_61.jpg?sign=1738886861-WRErdnvewU6tqGA7jXJUCtUFrnfGfnTn-0-e8cea634ca9df789a286d3102fe5c66c)
运行程序,屏幕输出结果为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_62.jpg?sign=1738886861-VFONqS9CxJAvwChgDsBocqRU5TtY5iAv-0-b9cb00196f36050f3c950999754b1a50)
上述两行输出是两个print()函数执行的结果。本例代码第3条语句中的x并没有任何输出。这说明,只有在命令提示符>>>后面检查某个变量或表达式的值,才能看到输出显示。而如果是在.py程序运行的模式下,必须使用print()函数才会有输出显示。
第1行屏幕输出结果'abc 123',是由本例代码第1条语句print('abc',123)输出的。我们可以看出,两个输出项之间自动添加了空格,这是因为print()函数的参数sep默认值为空格。如果希望输出项之间是逗号,则可以把本例代码第1条语句改为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_63.jpg?sign=1738886861-ep1fYaLIeq3VRd8s2OqSG4VXLPu7Mo2Q-0-3f7a95d6fd32fd286a2fc6a22ff7e34d)
本例代码第4条语句print(x)的屏幕输出结果是另起一行输出1.5。这是因为print()函数的参数end默认值为换行符('\n'),所以在第1行输出之后自动添加了一个换行符。如果不需要换行,可以将下一个print()函数的输出字符串直接连在其后,也可使用end=''。如果希望不换行而是加一个逗号,则可以把第1条语句改为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_64.jpg?sign=1738886861-tTYLAPPieiUm8x1yMDbran1RHhc5nUYx-0-ba28d1e39ca8c8fd05a9defe5fe10c68)
修改后的程序运行输出结果为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_65.jpg?sign=1738886861-gGFe23tI14vDqHhaBuiD3mqHrTgSrYkn-0-6bc3bc0fa4e6cced7adbc386d37c5376)
Python的print()函数中还可以使用字符串格式化控制输出形式。
字符串格式化的一般形式是:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_66.jpg?sign=1738886861-SOqirAKpuj0Vi4uQZESNfRJAGGpI8G4y-0-78c5642313cb3b05e8c7a93fb404d74c)
其把对象obj按格式要求转换为字符串。
常见格式字符见表2-5。
表2-5 常见格式字符
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_67.jpg?sign=1738886861-pNZYV3wy6r15A8GcBhbfaSHyISGqx3Kz-0-b5b0e9f7465434b056169c74a87299a0)
例如,语句:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_68.jpg?sign=1738886861-5TIo3O3OL7nRU71j8zMdYTyjjS4yF4wR-0-3712ac5327688c356d08f6bd22a16700)
执行后的输出结果为:“我的名字是张三”,即%s的位置使用“张三”代替。
如果需要在字符串中通过格式化字符输出多个值,则将每个对应值存放在一对圆括号()中,值与值之间使用英文逗号隔开(将在第4章中详述元组类型)。例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_69.jpg?sign=1738886861-SovtuYNeP9wGRJZ42Hpx53ppOacqhqh6-0-a7569a5111bd307d5501115abb76c3e2)
表2-6中列出了一些格式化辅助指令,可进一步规范输出的格式。
表2-6 格式化辅助指令
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_70.jpg?sign=1738886861-N9xY1Vf4UUSUA5seHA5SejhAW92TNFfa-0-56478360f7647c8dec480cac5bec53f6)
【例2-5】格式化输出字符串示例。
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_71.jpg?sign=1738886861-ei7BD58V3q38nknmmAO4SxeizZ6dRh3P-0-1b3955b9be951a6c6f124e8965a76969)
m.n格式常用于浮点数格式、科学计数法格式以及字符串格式的输出。对于前两种格式而言,%m.nf、%m.nx或%m.nX指输出的总宽度为m(可以省略),小数点后面保留n位(四舍五入)。如果变量值的总宽度超出m,则按实际输出。%m.ns指输出字符串的总宽度为m,输出前n个字符,前面补m-n个空格。
例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_72.jpg?sign=1738886861-qJs8xAEO2hxPX0NcnTmY1j2cY8SDHalP-0-d276e699b2d30cedd135ab5a020eefb7)
Python 3还支持用格式化字符串的函数str.format()进行字符串格式化。该函数在形式上相当于通过{}来代替%,但功能更加强大。例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_73.jpg?sign=1738886861-nvJwK6YL91fr0oOtDyFdnil6IWuJ919G-0-1ef6e65df8883294e7ce308bb2be9a53)
可将字符串格式化输出为"张三的年龄是20"。
format函数还可以用接收参数的方式对字符串进行格式化,参数位置可以不按显示顺序,参数也可以不用或者用多次。例如,上例亦可表达为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_74.jpg?sign=1738886861-Ds7DrjQtROaXehpx02NY591zpk6iWQLh-0-71d68eb87a099164938a1e5e15cbe703)