![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=1739032433-jlv6Q6asEYOGYbjIywRG9EbvPIOjPbcl-0-2a2695e2489ae388b0d02ae441fe7053)
图4-1 程序处理流程
Python 3提供input()函数用于接收用户的输入,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_02.jpg?sign=1739032433-lMIIiziYb2FLK148aldGJjmQ613tp600-0-bdd74e100ddbcb23a8ad5a6e00e23a8d)
4.1.2 输出
Python 3中,数据输出的操作通过print()函数实现,操作对象是字符串。
Print()函数的语法结构如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/52_03.jpg?sign=1739032433-OEOGbTZfrhBEphL8aqHBQXg4NSjN40mh-0-3e8798216f598b4084c3e9aa87842a02)
说明:输出项之间用逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认一空格分隔),end表示输出时的结束符(默认以回车换行结束)。
【例4-1】 输出换行与不换行举例。
在一个.py文件保存如下两条语句,运行结果换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_01.jpg?sign=1739032433-3UJdCMoAU2BhdzJLepgjcdSGTGhS765V-0-1e13fee5a7d05b93f30528fad2a7661e)
在一个.py文件保存如下两条语句,运行结果不换行。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_02.jpg?sign=1739032433-GTbX2eolDCtzhuC18bEcrRfIjwz0eckU-0-d7f0c9417daec15ed7611b25a33e5d4c)
注意:
(1)在Python命令行下,print是可以省略的,默认会输出每一次命令的结果。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_03.jpg?sign=1739032433-NHEkBX7GqwMxMJ0TrPNzKxOzEubrfXbE-0-097b9640efb949c556813956ddcee96d)
(2)多个<expression>间用逗号间隔。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_04.jpg?sign=1739032433-LRyV8PJl8dMMVmFEHJcvhIEQJpxIV8Vs-0-3ee759dce1e9becd07beec68c5063009)
(3)格式化控制输出,可以采用格式符(%)和format()函数两种方式,具体如下所示。
方式一:使用格式符%
格式符%如表4-1所示。
表4-1 格式符%
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_05.jpg?sign=1739032433-i8zYqDDwmZtenUqetWwq2VSazDPbravr-0-df298f63a68316594ea20ced16629d64)
【例4-2】 格式符%输出举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/53_06.jpg?sign=1739032433-SdEW71GnyYZlLC5xBKBfDCefAQTcb0xb-0-d1aa5d08103b6b984264dc7f99cf46b9)
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_01.jpg?sign=1739032433-kCywwEfNsuyb7Gr5srbQqvGutbTEMJJK-0-10f3e375e297385b51d72c52945be0f2)
方式二:使用format()函数
str.format()具有格式化输出,如下所示:
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_02.jpg?sign=1739032433-gGUzdPx0OAafeWXxVyguyf72b8puuk4U-0-ae41df3e3aebeb0b195e82029e06430b)
{}括号及其里面的字符(称作格式化字段)将会被format()中的参数替换。在括号中的数字用于指向传入对象在format()中的位置,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_03.jpg?sign=1739032433-IOfYhxPiEjdUtTMaLe26atBiNr6hZcsj-0-5ab7151160d1bfff881892fe9948174a)
在format()中使用了关键字参数, 其值会指向使用该名字的参数。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_04.jpg?sign=1739032433-fY5k5k2HWhE3VpvWT4pLqxsRIwtE9Fq6-0-e2118cc1f74b304700c6b947559faa9a)
在':'后传入一个整数, 可以保证该域至少有这么多的宽度,常用于美化表格。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/54_05.jpg?sign=1739032433-hZAI0JRqRUsg7rQDEfo334c9G6yQd2au-0-7d7344bdad683ec2c98c85493d62c192)