
3.3 基本输入输出
在第1章的一个简单的Python程序中,就已经接触过Python的输出功能。本节将正式介绍Python的基本输入输出。程序需要两个最基本的要素:数据和逻辑。在程序中,控制语句实现程序的逻辑,即数据的导向和对数据的操作。然而,这并不意味着程序中的数据的行为只能通过控制语句来实现。在交互式的环境中,Python提供了输入输出语句,简单来说就是从标准输入中获取数据和将数据打印到标准输出。
3.3.1 获取用户输入
前面提到,编写程序时无需知道变量的值就可以使用它们。当然,解析器最终必须知道变量的值。但是,解析器不只知道我们已告知它的内容。
当编写的程序会被其他人使用时,我们无法预测用户会向程序提供什么样的值。但Python作为动态类型的语言,可以很方便地赋值给一个新变量。在此介绍一个很有用的函数input,其基本使用语法如下。

提示字符串作用是要求用户做出相对应的响应,示例如下。

这里在交互式解释器中执行了第一行input(...)语句,它打印字符串“what are you learning:”,提示用户输入相应的信息,再输入pythonprogramming并按〈Enter〉键。这个字符串被input赋值给name这个变量。
input函数支持表达式、数字类型、字符串类型,接受为表达式时,只返回其执行结果。
需要注意,inptut以文本或字符串的方式返回。

用户在提示下输入整数25,而inputStr变量类型为字符串。
可以使用eval函数来求值并转换为一个数值。例如:“eval("12.3")”返回的是12.3,“eval("12+3")”返回的是15。

上面的语句提示用户输入一个值(以字符串的形式)然后转化为一个数字,这个过程等价于:

在用户输入一个数字并按下〈Enter〉键后,这个数字就被读取并赋给radius。
3.3.2 基本输出
Python的基本输出语句使用的是print()函数,其基本输出语法如下。

基本输出中的数据对象可以是数值、字符串,也可以是列表、元组、字典或者是集合。输出时会将逗号间的内容用空格分隔开。

print函数会触发一个换行操作,下一个print函数的输出将从新的一行开始。
1.print的可选参数sep
print函数默认使用一个空格分隔各个输出对象,也即默认分隔符为空格字符。我们可以通过sep参数将分隔符改变为我们需要的任意字符串,语法如下。

举例如下。

2.print的可选参数end
同样还可以自定义结束字符串,以替代默认的换行符。例如,可以将结束字符串制定为空字符串,以后就可以继续打印到当前行。我们通过end参数将结束操作进行改变,语法如下。

下面给出一些使用end参数的代码。
