2.3.4 输入、输出
1.输入
输入语句可以在程序运行时从输入设备获得数据。标准输入设备就是键盘。通过input()函数可以获取键盘输入数据。一般格式为:
input()函数首先输出提示字符串,然后等待用户键盘输入,直到用户按回车键结束,函数最后返回用户输入的字符串(不包括最后的回车符),系统继续执行input函数后面的语句。例如:
系统会弹出字符串“请输入您的专业:”,等待用户输入,用户输入相应的内容并按回车键,输入内容将保存到name变量中。
如果需要将输入的字符串转换为其他类型(如整型、浮点型等),调用对应的转换函数即可。
2.输出
输出语句可以将程序的运行结果显示在输出设备上,供用户查看。标准输出设备就是显示器屏幕。一般格式为:
通过print()函数可以将多个输出值转换为字符串并且输出,这些值之间以sep分隔,最后以end结束。sep默认为空格,end默认为换行。
【例2-4】输出语句示例。
运行程序,屏幕输出结果为:
上述两行输出是两个print()函数执行的结果。本例代码第3条语句中的x并没有任何输出。这说明,只有在命令提示符>>>后面检查某个变量或表达式的值,才能看到输出显示。而如果是在.py程序运行的模式下,必须使用print()函数才会有输出显示。
第1行屏幕输出结果'abc 123',是由本例代码第1条语句print('abc',123)输出的。我们可以看出,两个输出项之间自动添加了空格,这是因为print()函数的参数sep默认值为空格。如果希望输出项之间是逗号,则可以把本例代码第1条语句改为:
本例代码第4条语句print(x)的屏幕输出结果是另起一行输出1.5。这是因为print()函数的参数end默认值为换行符('\n'),所以在第1行输出之后自动添加了一个换行符。如果不需要换行,可以将下一个print()函数的输出字符串直接连在其后,也可使用end=''。如果希望不换行而是加一个逗号,则可以把第1条语句改为:
修改后的程序运行输出结果为:
Python的print()函数中还可以使用字符串格式化控制输出形式。
字符串格式化的一般形式是:
其把对象obj按格式要求转换为字符串。
常见格式字符见表2-5。
表2-5 常见格式字符
例如,语句:
执行后的输出结果为:“我的名字是张三”,即%s的位置使用“张三”代替。
如果需要在字符串中通过格式化字符输出多个值,则将每个对应值存放在一对圆括号()中,值与值之间使用英文逗号隔开(将在第4章中详述元组类型)。例如:
表2-6中列出了一些格式化辅助指令,可进一步规范输出的格式。
表2-6 格式化辅助指令
【例2-5】格式化输出字符串示例。
m.n格式常用于浮点数格式、科学计数法格式以及字符串格式的输出。对于前两种格式而言,%m.nf、%m.nx或%m.nX指输出的总宽度为m(可以省略),小数点后面保留n位(四舍五入)。如果变量值的总宽度超出m,则按实际输出。%m.ns指输出字符串的总宽度为m,输出前n个字符,前面补m-n个空格。
例如:
Python 3还支持用格式化字符串的函数str.format()进行字符串格式化。该函数在形式上相当于通过{}来代替%,但功能更加强大。例如:
可将字符串格式化输出为"张三的年龄是20"。
format函数还可以用接收参数的方式对字符串进行格式化,参数位置可以不按显示顺序,参数也可以不用或者用多次。例如,上例亦可表达为: