![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=1739311189-cPxvONm2FxnWzYbFqfFvBvGyphJ7Tgvz-0-4b1d9ae82cf0eb0237a76d74ac5b0aad)
图4-1 程序处理流程
Python 3提供input()函数用于接收用户的输入,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_02.jpg?sign=1739311189-G0yOxbt9iUTzYkgpTjhYLz4T3fRg4ye8-0-705925ffd904289a96aec16f203fd522)
4.1.2 输出
Python 3中,数据输出的操作通过print()函数实现,操作对象是字符串。
Print()函数的语法结构如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_03.jpg?sign=1739311189-axge1A0X5OVQqIp6cBmBsyimOk4LIxIn-0-94dbf52b92b9e88f1f9269128772774c)
说明:输出项之间用逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认一空格分隔),end表示输出时的结束符(默认以回车换行结束)。
【例4-1】 输出换行与不换行举例。
在一个.py文件保存如下两条语句,运行结果换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_01.jpg?sign=1739311189-MEaAEX9dMV0VbFvl1ZEldnWcmbqkXMkz-0-0a329b0670b4e91ceda4a30bf7f5f2c6)
在一个.py文件保存如下两条语句,运行结果不换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_02.jpg?sign=1739311189-gKlu8gie2VWfqYZ1rs3cyhPY6PqGMSxj-0-40cfac03e3b37d7e8d41eb4b201a9afc)
注意:
(1)在Python命令行下,print是可以省略的,默认会输出每一次命令的结果。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_03.jpg?sign=1739311189-DH5LHt8nEkLu2QMVU6rkOJ5wK5neKToN-0-4c819f317a3893e2d15bc4fdd183b78e)
(2)多个<expression>间用逗号间隔。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_04.jpg?sign=1739311189-6nWcwcwPucGzA4I9TBkhOg1TbGi3GHX1-0-740f88103e96a91eeb68e5e8916a4d58)
(3)格式化控制输出,可以采用格式符(%)和format()函数两种方式,具体如下所示。
方式一:使用格式符%
格式符%如表4-1所示。
表4-1 格式符%
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_05.jpg?sign=1739311189-oqOy9LEsenFURWj3Qt4AhavZG6i83BBA-0-ccbdd42201b179cdd258c4228703749e)
【例4-2】 格式符%输出举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_06.jpg?sign=1739311189-c9arq8uGJ2qHbCHr2LlEg4GUDFJSmM3E-0-8e0d3145a8e44f9e24a99ea25f5d32a3)
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_01.jpg?sign=1739311189-YSz3TuKcgmdzpd3f6EaKXbwtTqy3xCll-0-55e2f67ab274d986c6f6338e50a2f1ae)
方式二:使用format()函数
str.format()具有格式化输出,如下所示:
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_02.jpg?sign=1739311189-dR6sFatyhxxfoKlTDY7HVemcVndkCLj5-0-08f738a8f7ee63b33f6ae4cbd38b8a88)
{}括号及其里面的字符(称作格式化字段)将会被format()中的参数替换。在括号中的数字用于指向传入对象在format()中的位置,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_03.jpg?sign=1739311189-KLBPXRnAHzUKmj1z00osI4MVzCF9HWzR-0-8ab74b1a6f7913750406d4e034585ba9)
在format()中使用了关键字参数, 其值会指向使用该名字的参数。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_04.jpg?sign=1739311189-Zf0wORsazPP908Ef9bghCVcnniwNvkmU-0-fa1ed89ed536cb77959544415063587a)
在':'后传入一个整数, 可以保证该域至少有这么多的宽度,常用于美化表格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_05.jpg?sign=1739311189-FdfqSLvVAP5y5T9It4QhKeIf7fgqfcP5-0-9400f7de0f218637ff52438ca235aead)