![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=1739623034-McdVFNZCehYEjhRZdjStEwR7BQdZLCkK-0-4305a9197d5479c7e2f0dcf5212c60b6)
图4-1 程序处理流程
Python 3提供input()函数用于接收用户的输入,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_02.jpg?sign=1739623034-BzVxbx5f5tPJqsXfz5MV6mvBTV6jCddb-0-049a8e0e61c54d70f315be89f958eee0)
4.1.2 输出
Python 3中,数据输出的操作通过print()函数实现,操作对象是字符串。
Print()函数的语法结构如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_03.jpg?sign=1739623034-7RiBQedmonE3Ciov6yrUCTIu21daiBoC-0-f7115f7e7a6cea945f9c858d66d13a7b)
说明:输出项之间用逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认一空格分隔),end表示输出时的结束符(默认以回车换行结束)。
【例4-1】 输出换行与不换行举例。
在一个.py文件保存如下两条语句,运行结果换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_01.jpg?sign=1739623034-9CChgESFXIkQ8hjoXVsAQOpJPLwT5vsf-0-8373dbeaf15d3d2d6488e41c2891f914)
在一个.py文件保存如下两条语句,运行结果不换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_02.jpg?sign=1739623034-wTDOu7gXgHzFIscncwoxQ9fT0pxXySIu-0-7ffbe3667e477930399b9522c67be777)
注意:
(1)在Python命令行下,print是可以省略的,默认会输出每一次命令的结果。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_03.jpg?sign=1739623034-tiwMxwNyQftalpVJlBfP8VcZxgANkld1-0-8332cdf59986c7a7d87175c9ce5a8b32)
(2)多个<expression>间用逗号间隔。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_04.jpg?sign=1739623034-v4WbjHTrN1e0LxP4ZKE2gMCfGGqJFhDH-0-c5bb5087ccec8068790fe2bff1f017cb)
(3)格式化控制输出,可以采用格式符(%)和format()函数两种方式,具体如下所示。
方式一:使用格式符%
格式符%如表4-1所示。
表4-1 格式符%
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_05.jpg?sign=1739623034-ckdWS9fienxmrWnsCeO7nfoOnwrqvNxS-0-db34494720d19afdcf8d72fdc2f1130c)
【例4-2】 格式符%输出举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_06.jpg?sign=1739623034-iF1WW6Js7y24v5ZlbRNO2ZT6RytYjoGh-0-8ab29d11bb58e91664dbbd6979ff815c)
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_01.jpg?sign=1739623034-Le1HPNLOfFvUqplM82u9mDsIrwRx9MKJ-0-3b81c30559136516bce3b450fd11b789)
方式二:使用format()函数
str.format()具有格式化输出,如下所示:
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_02.jpg?sign=1739623034-h7JfTtDerZyZ5GdmuSGn7FPGfLhNu3uN-0-c9f19b6f98ff3edac877de3591e1d5db)
{}括号及其里面的字符(称作格式化字段)将会被format()中的参数替换。在括号中的数字用于指向传入对象在format()中的位置,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_03.jpg?sign=1739623034-UoreTFbbjPp1Q4Pi8AJTA4ghVW7mJ8Bd-0-ccbc81e6b67ad16aeae0fe0121bade9f)
在format()中使用了关键字参数, 其值会指向使用该名字的参数。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_04.jpg?sign=1739623034-5phl9QgBOGfTPsNHcYK84oz99QIm14Bk-0-d25f7351bf53be9e1184057f4a9ccb95)
在':'后传入一个整数, 可以保证该域至少有这么多的宽度,常用于美化表格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_05.jpg?sign=1739623034-vydR5Uxdge4Ji6cMwwBrmkoXoVTRm7qH-0-c8b9495e24f2b2a103684ffd6265a514)