
4.1 输入输出
任何计算机程序都是为了执行一个特定的任务。程序与用户产生交互,有了输入,用户才能告诉计算机程序所需的信息;有了输出,程序运行后才能告诉用户任务的结果。
4.1.1 输入
程序的基本流程包括输入、处理、输出(IPO,In-Process-Out)三个大步骤,如图4-1所示。输入包括变量赋值、输入语句;处理就是改变输入信息;输出包括打印改变的输入,或将结果写入文件和数据库等。

图4-1 程序处理流程
Python 3提供input()函数用于接收用户的输入,如下所示。

4.1.2 输出
Python 3中,数据输出的操作通过print()函数实现,操作对象是字符串。
Print()函数的语法结构如下所示。

说明:输出项之间用逗号分隔,没有输出项时输出一个空行。sep表示输出时各输出项之间的分隔符(默认一空格分隔),end表示输出时的结束符(默认以回车换行结束)。
【例4-1】 输出换行与不换行举例。
在一个.py文件保存如下两条语句,运行结果换行。

在一个.py文件保存如下两条语句,运行结果不换行。

注意:
(1)在Python命令行下,print是可以省略的,默认会输出每一次命令的结果。

(2)多个<expression>间用逗号间隔。print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。

(3)格式化控制输出,可以采用格式符(%)和format()函数两种方式,具体如下所示。
方式一:使用格式符%
格式符%如表4-1所示。
表4-1 格式符%

【例4-2】 格式符%输出举例。


方式二:使用format()函数
str.format()具有格式化输出,如下所示:

{}括号及其里面的字符(称作格式化字段)将会被format()中的参数替换。在括号中的数字用于指向传入对象在format()中的位置,如下所示。

在format()中使用了关键字参数, 其值会指向使用该名字的参数。

在':'后传入一个整数, 可以保证该域至少有这么多的宽度,常用于美化表格。
