2.4 输入输出
程序需要和外界交换数据,最基本的就是从用户获取输入——input()和显示给用户——print()。
2.4.1 输出 - print()函数
基本使用
print()函数输出传给它的参数的值。不只是直接输出一个变量的值或字面值,它还可以输出多个参数或是进行格式化输出。
如果是多个参数,参数之间要用逗号作为分隔符,输出的结果以一个空格分隔。默认情况下以换一行作为输出结束,也就是每一条print函数输出结果占一行。
格式化输出
格式化输出使用%和一个代表类型的字符构成占位符。每个占位符将由字符串后面%引出的变量提供值来实际输出,如果超过一个占位符,相应的%后面要用括号括起相同数目的值或者变量。
格式化输出的另一种写法是使用{}与format()函数,{}作为占位符,大括号里面可以直接使用变量名或者由后面的format函数提供变量,也可以使用变量的数字索引,如果直接使用变量名,需要在字符串前加f。
常用的类型字符如下:
| 类型 | 对应内容 |
|---|---|
| d | 十进制整数 |
| b | 二进制整数 |
| o | 八进制整数 |
| x | 十六进制整数 |
| f | 浮点数定点表示法 |
| e | 科学计数法 |
| g | 常规格式 |
| s | 字符串 |
格式化输出的另一种写法是使用{}与format()函数,{}作为占位符,大括号里面可以直接使用变量名或者由后面的format函数提供变量,也可以使用变量的数字索引,如果直接使用变量名,需要在字符串前加f。{}占位符中也可以使用%占位符中的类型字符。
输出格式
%占位符或大括号占位符都可以设置输出格式,大括号占位符中要使用冒号,之后可以加入以下格式:
| 格式符号 | 描述 |
|---|---|
| < | 靠左对齐(%占位符:-) |
| > | 靠右对齐(%占位符默认靠右对齐) |
| n | 所占总宽度 |
| .m | 小数点以及小数部分宽度 |
转义字符
代码中的\n输出一个换行,这是转义字符,即将本来的字符n加上\,构成了一个新的字符\n,有着新的作用。
这样的转义字符常用的有:
| 转义字符 | 描述 |
|---|---|
| \' | 单引号 |
| \" | 双引号 |
| \n | 换行 |
| \t | 横向跳到下一个制表位 |
| \\ | 反斜线本身 |
常用的使用方法为:2.2-print.py
# 基本做法1:输出字面值
print('abcde')
print(24)
# 基本做法2:输出变量的值
my_name = 'liu'
my_age = 25
print(my_name)
print(my_age)
# 基本做法3:输出多个值
print(my_name, my_age, 'happy')
# 格式化输出:%
print('% 格式化输出')
print('我的名字:%s' % my_name)
print('我的年龄:%d' % my_age)
print('我的名字和年龄:%s, %d' % (my_name, my_age))
# 格式化输出:{},format
print('{}格式化输出')
print('我的名字:{}'.format(my_name))
print(f'我的年龄:{my_age}')
print('我的名字和年龄:{1}, {0}'.format(my_age, my_name))
# 换行输出 \n
print('这是第一行\n这是第二行\n这是第三行')
结果为:
abcde
24
liu
25
liu 25 happy
% 格式化输出
我的名字:liu
我的年龄:25
我的名字和年龄:liu, 25
format()函数格式化输出
我的名字:liu
我的年龄:25
我的名字和年龄:liu, 25
这是第一行
这是第二行
这是第三行
制表符举例:2.3-tab.py
# 制表符tab,一般为4或8个字符宽度
print('12345678901234567890')
print('ab\tcd')
print('e\tfgh')
结果为:(在不同的环境中,输出的tab宽度可能不同,有的是4个字符,有的是8个字符)
12345678901234567890
ab cd
e fgh
这样可以让多行内容在纵向上对齐。
2.4.2 输入 - input()函数
输入使用input()函数,input()函数等待用户输入内容,输入回车后,输入的内容作为input()函数的返回值在程序中使用。注意input()函数接收到的内容都是作为字符串处理的。
例如:2.4-input.py
# input基本用法,获取的内容作为字符串存储
my_str = input()
print("输入的内容:%s" % my_str)
print(type(my_str))
# 加入提示性文字
name = input('请输入姓名:')
print('输入的姓名:', name)
# 提示内容字符串使用方法等同于print
number = 1
addr = input('请输入第{}个人的地址:'.format(number))
print('地址为:', addr)
结果为:
abcd
输入的内容:abcd
<class 'str'>
请输入姓名:Liu
输入的姓名: Liu
请输入第1个人的地址:NJ
地址为: NJ
或者:
1234
输入的内容:1234
<class 'str'>
请输入姓名:刘
输入的姓名: 刘
请输入第1个人的地址:南京
地址为: 南京