![Python 3程序设计基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/971/33892971/b_33892971.jpg)
4.1 输入输出
任何计算机程序都是为了执行一个特定的任务。程序与用户产生交互,有了输入,用户才能告诉计算机程序所需的信息;有了输出,程序运行后才能告诉用户任务的结果。
4.1.1 输入
程序的基本流程包括输入、处理、输出(IPO,In-Process-Out)三个大步骤,如图4-1所示。输入包括变量赋值、输入语句;处理就是改变输入信息;输出包括打印改变的输入,或将结果写入文件和数据库等。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_01.jpg?sign=1739302073-WRZHeDjDVAJNb9Ly31rkTJ0M9sMXH6fj-0-9560fb6e8775bdc43213161c6da3801b)
图4-1 程序处理流程
Python 3提供input()函数用于接收用户的输入,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_02.jpg?sign=1739302073-Ngz1n94NrOoU4IeDzCOGPpzxTvj8xPZQ-0-47e31234f795ee3be555a98f7bbb4473)
4.1.2 输出
Python 3中,数据输出的操作通过print()函数实现,操作对象是字符串。
Print()函数的语法结构如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_03.jpg?sign=1739302073-7VWY7NCp5hLbQw8q1R1XaaPf66FiIWq6-0-6038ddeff1404a0feafd99ccfbf931b3)
说明:输出项之间用逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认一空格分隔),end表示输出时的结束符(默认以回车换行结束)。
【例4-1】 输出换行与不换行举例。
在一个.py文件保存如下两条语句,运行结果换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_01.jpg?sign=1739302073-rHLUj7GF9tp0i9XZFZpwts6x3ifDS2WU-0-7c646189854061125989c8877023f500)
在一个.py文件保存如下两条语句,运行结果不换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_02.jpg?sign=1739302073-0iNdGKcaogfhFvT41hA9sY8Ja6sSK37s-0-9ef442491c56a53e240a6cc2091fb3b0)
注意:
(1)在Python命令行下,print是可以省略的,默认会输出每一次命令的结果。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_03.jpg?sign=1739302073-T23RGOsj0sI2yJDcN2LSbgONT3V71Nxf-0-abbbf4d14441885e89f02099fd941746)
(2)多个<expression>间用逗号间隔。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_04.jpg?sign=1739302073-3EMJNBcubBhC5cLgCGu8mIDBxF1Ys6fg-0-db5446929401cb745d27cb280f15e917)
(3)格式化控制输出,可以采用格式符(%)和format()函数两种方式,具体如下所示。
方式一:使用格式符%
格式符%如表4-1所示。
表4-1 格式符%
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_05.jpg?sign=1739302073-TqymPMPP6VHSJITqkuTRHZwO1jsfbsLx-0-51e046215e6fbd3c5c42bdc155ca1907)
【例4-2】 格式符%输出举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_06.jpg?sign=1739302073-OprQSYWtlYPcN1rwVgBwPL5xpALFarV3-0-acfbc55c0139e20340c36726c7fcdf0f)
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_01.jpg?sign=1739302073-g9W15YDDa3NIXJk7hgwXmjapQozAOV8e-0-5a5a23f9dd66d814c1ee1f305f3975e2)
方式二:使用format()函数
str.format()具有格式化输出,如下所示:
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_02.jpg?sign=1739302073-e5iVrJHuhxiyt2Oj0YXUCGnfr8fpNB6q-0-d92c8354935467210b1de14dd055f0ff)
{}括号及其里面的字符(称作格式化字段)将会被format()中的参数替换。在括号中的数字用于指向传入对象在format()中的位置,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_03.jpg?sign=1739302073-JEgHy7pzmO2RrbuNQIOH6bFKDFtWGHFS-0-ad97e6939772475df79b87daa237d441)
在format()中使用了关键字参数, 其值会指向使用该名字的参数。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_04.jpg?sign=1739302073-UnicYJUi9KWHyGY4pMJc4ippWcxZYNxE-0-732372a3c3ad03f353d6b3a40fabc130)
在':'后传入一个整数, 可以保证该域至少有这么多的宽度,常用于美化表格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_05.jpg?sign=1739302073-hj9Hzg2qikL6ETsMGujgs1rdz5psSwsi-0-050b7cf4edbcc6ff28f08dcc17476fb0)