
2.2.6 数据输入与输出
在Python程序中,是通过内置的input()和print()函数实现数据的输入和输出的。下面将学习Python程序中的数据输入与输出。
1.input()函数
input()函数可以让程序暂停运行,等待用户输入数据信息。程序在获取用户输入的信息后,将其存储在一个变量中,以方便后面程序的使用。
在范例2-2的第1行就用到了input()函数。

input()函数接收一个参数,即要向用户显示提示或说明,让用户知道下一步该做什么。在这个范例中,当运行到第1行代码时,用户将看到提示“输入一个数字:”。程序将等待用户输入数字,当用户完成数字的输入并按“Enter”键后,程序才继续运行。用户所输入的数字被存储在变量num中。
input()函数的语法如下:

在Python 3.x中,input()函数获得的用户输入均以字符串形式保存在变量中,参见如下范例代码:

从上述代码中可以看出,无论用户输入的是数字还是字符,input()函数统一按照字符串形式输出显示。
2.print()函数
print()函数用于向用户或者屏幕上输出指定的字符信息。在print()函数的括号中加上字符串,就可以向屏幕上输出指定的文字。例如,输出“hello,world”,用代码实现如下:

print()函数也可以接收多个字符串,字符串之间用逗号“,”隔开,就可以连成一串输出。示例代码如下:

print()函数会依次打印输出每个字符串,遇到逗号“,”就会输出一个空格。
print()函数的语法如下:

· 参数sep是实现分隔符。比如,当有多个参数输出时,想要输出中间的分隔字符。
· 参数end是输出结束时的字符,默认是换行符(\n)。
· 参数file用于定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件。
· 参数flush用于判断是否立即把内容输出到流文件,不进行缓存。
print()函数中的sep、end、file、flush参数是4个可选参数,其中sep、end、file参数的具体使用方法如下。
1)sep参数
在输出字符串之间插入指定字符串,默认是空格。范例如下:

2)end参数
在输出语句的结尾加上指定字符串,默认是换行符(\n)。范例如下:

注意
print()函数默认在输出语句后自动切换到下一行。对于Python 3.x版本来说,如果要实现输出不换行的功能,则可以设置end=''(Python 2可以在print语句之后加“,”实现不换行的功能)。
3)file参数
指定文本将要发送到的文件、标准流或者其他类似文件的对象,默认是sys.stdout。范例如下:

在本例中,file=open('print.txt','a')设置了输出文件路径,'a'设置了打开文件的方式是添加模式,所以字符串会加在文件末尾,而不会重写文件。其中,sep='-'参数设置了字符写入时的分隔符(-);end=';\n'参数设置了字符写完后的结尾符号(;)及换行(\n)。另外,执行该函数会在Python根目录中新建一个print.txt文本文件,用于写入本例指定的文本,如图2-2所示。

图2-2 print.txt文本文件