![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=1739375662-fnKwqj1tvUlBsnZZXbSGDfvUZd4bBeKd-0-54552ebde81c58b373a3d53d0ab25ca5)
input()函数首先输出提示字符串,然后等待用户键盘输入,直到用户按回车键结束,函数最后返回用户输入的字符串(不包括最后的回车符),系统继续执行input函数后面的语句。例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_59.jpg?sign=1739375662-6Tbwl8zX608SmDyav8WSVrAm15WzITbr-0-cbc7b7a8757256cb3db35f126e075110)
系统会弹出字符串“请输入您的专业:”,等待用户输入,用户输入相应的内容并按回车键,输入内容将保存到name变量中。
如果需要将输入的字符串转换为其他类型(如整型、浮点型等),调用对应的转换函数即可。
2.输出
输出语句可以将程序的运行结果显示在输出设备上,供用户查看。标准输出设备就是显示器屏幕。一般格式为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_60.jpg?sign=1739375662-jmjh8vcokaKeBfkKRT7r48WVPQSfGHy7-0-98b316a65c697aade4e12b6f20b63f83)
通过print()函数可以将多个输出值转换为字符串并且输出,这些值之间以sep分隔,最后以end结束。sep默认为空格,end默认为换行。
【例2-4】输出语句示例。
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_61.jpg?sign=1739375662-YZMDYLWMbviz6lXY8HiZqnGlt6Z3q7gK-0-c78ee51bed8be3dc56d97ba42931f59f)
运行程序,屏幕输出结果为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_62.jpg?sign=1739375662-M2nLiM4q6jxxEnXUgZwu4i9ED9D76PdD-0-1e5bbd7d50efce3c862da3d0dc43e02e)
上述两行输出是两个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=1739375662-YHAYYCzRGnAYfaBFX251WB3ad84NAnm0-0-6287ff74e37a77e74c23a6b0d9a1b8f7)
本例代码第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=1739375662-12KrYg6OiBmRgXimCDnmKbGLlhxcMUFN-0-66600f0b5928bbe5fe3fce0ad9da5b31)
修改后的程序运行输出结果为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_65.jpg?sign=1739375662-gbLI6PubMJns8d9jleI7qHkufcKuX0kt-0-842c266a79f6d9ef4bc078ebc0b354bb)
Python的print()函数中还可以使用字符串格式化控制输出形式。
字符串格式化的一般形式是:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_66.jpg?sign=1739375662-C1hshr7qBOxcxbrkMjjzlmk2n1iIaMH0-0-acbbf2e6e0bf3226a3243539b8a1cd6f)
其把对象obj按格式要求转换为字符串。
常见格式字符见表2-5。
表2-5 常见格式字符
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_67.jpg?sign=1739375662-KyTNOaX2KGEjSntu24zch6Opv3l74bH5-0-d4ba5da8dbaaddb3e50baec67d05cbe2)
例如,语句:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_68.jpg?sign=1739375662-cojwF8EU4wvE8wmDZXElvjWtBU7iP1I2-0-85dae14b3a071bcfe6ea9797b2905b00)
执行后的输出结果为:“我的名字是张三”,即%s的位置使用“张三”代替。
如果需要在字符串中通过格式化字符输出多个值,则将每个对应值存放在一对圆括号()中,值与值之间使用英文逗号隔开(将在第4章中详述元组类型)。例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_69.jpg?sign=1739375662-PLD14ancbhcWnmquXifpnpSCTZ7Jq0Sa-0-daecc3d7e93f73343f8c84c1013c6ff9)
表2-6中列出了一些格式化辅助指令,可进一步规范输出的格式。
表2-6 格式化辅助指令
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_70.jpg?sign=1739375662-pknk6oIjFSt0TZgFDgBELHaYFhYm5tyn-0-25656af7d11a032f09276c4b174f773a)
【例2-5】格式化输出字符串示例。
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_71.jpg?sign=1739375662-8zubqR7cWTHAxZk68GMjV033NTPjWG5W-0-8352ba82338cf1434aa573a31c841d17)
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=1739375662-HASvi1rWoGC97Xe5KBTehZkx2b4ozFSY-0-6800c6476fb0044641c34a4c624092c8)
Python 3还支持用格式化字符串的函数str.format()进行字符串格式化。该函数在形式上相当于通过{}来代替%,但功能更加强大。例如:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_73.jpg?sign=1739375662-w44bzQGCCbCF9Frob5OUiqo4MYe6RVHf-0-d6f34d675ed1cafd1bd575f17eb663cb)
可将字符串格式化输出为"张三的年龄是20"。
format函数还可以用接收参数的方式对字符串进行格式化,参数位置可以不按显示顺序,参数也可以不用或者用多次。例如,上例亦可表达为:
![](https://epubservercos.yuewen.com/E9F0BA/16523167304945506/epubprivate/OEBPS/Images/txt002_74.jpg?sign=1739375662-gWiSMYIzNQVkHuB6F3aaZU8Q7KtstzMS-0-9783316ccc679a4ae6eeccd7ebc40bed)