Python 输入和输出
一、 input 输入函数 (等待用户输入)
Python 内置函数 input:获取用户输入,保存成一个字符串。
>>> name = input("Please input your name: ")
Please input your name: jack
>>> name
'jack'
>>> type(name)
<class 'str'>
>>> age = input("Please input your age: ")
Please input your age: 18
>>> age
'18'
>>> type(age)
<class 'str'>
>>> a = input("请输入一个字符:")
请输入一个字符:
>>> a
''
>>> a = input("请输入一个字符:")
请输入一个字符: 前后带有空白
>>> a
' 前后带有空白 '
注:
1、input 函数里可以提供一个字符串,提示用户进行输入。input 函数的返回值赋值给前面的变量。
2、type() 是 Python 的内置函数,用于查看对象的数据类型。
1、对空输入进行处理
name = input("请输入你的姓名:")
if name == "": #if not name:
name = input("姓名不能为空,请重新输入: ")
2、将字符串转换成数字类型
age = input("请输入你的年龄:")
age = int(age) # 将字符串转化为整数 也可以用eval()函数
if age > 18:
print("你已经成年!")
else:
print("还没断奶?")
3、去除开头的空白 lstrip,去除结尾的空白 rstrip 以及去除两端的空白 strip
name = input("请输入你的姓名:")
name = name.strip() # strip 的用法在字符串数据类型有讲述
print(name)
4、判断输入的字符类型
前面我们在将字符串转化为整数用的是int()函数,这种方式有危险的,看下面的例子:
>>> s = "something"
>>> a = int(s)
对于包含字符、特殊字符的字符串就没办法转化了,会弹出异常错误。所以在使用 int 函数之前,要先对输入进行判断。我们修改一下上面的例子:
age = input("请输入你的年龄: ")
# 使用 isdigit 函数判断输入是否全是数字格式
if age.isdigit():
age = int(age) # 将字符串转化为整数
print("你的年龄是: ", age)
else:
print("输入不合法!")
5、input 函数有时可以巧妙地用于阻塞或暂停程序
print("程序前面部分执行完毕......")
input("请按回车继续......") # 在这里程序会暂停,等待你的回车动作
print("继续执行程序的后面部分......")
二、print 输入函数
1、可以打印字符串
>>> print('hello, world')
print() 函数也可以接受多个字符串,用逗号“,”隔开,就可以连成一串输出:
>>> print('The quick brown fox', 'jumps over', 'the lazy dog')
The quick brown fox jumps over the lazy dog
print()会依次打印每个字符串,遇到逗号“,”会输出一个空格。
print 函数的原型:
print(self, *args, sep=' ', end='\n', file=None)
sep参数: 分隔的符号,默认是一个空格;
end参数: 打印后的结束方式,默认为换行符\n。
如果,设置end=’’,则可以不换行,让print在一行内连续打印。
2、print() 也可以打印整数,或者计算结果:
>>> print(100 + 200)
300
因此,我们可以把计算100 + 200的结果打印得更漂亮一点:
>>> print('100 + 200 =', 100 + 200)
100 + 200 = 300
三、print 格式化输出
旧式字符串格式化
% 操作符也可以实现字符串格式化。它将左边的参数作为类似 printf() 式的格式化字符串, 而将右边的代入, 然后返回格式化后的字符串。
因为 str.format() 是比较新的函数,大多数的 Python 代码仍然使用 % 操作符。但是因为这种旧式的格式化最终会从该语言中移除, 应该更多的使用 str.format()。
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
首先构造一个字符串"我叫 %s 今年 %d 岁!",将其中需要用别的变量或值替代的部分,用%百分符加一个数据类型代号,比如%s、%d来代替。然后在字符串的后面用%加一个同样数量变量或值的元组。
也就是前面有多少个%符号,后面就要提供多少个参数值,每个参数值之间用逗号隔开,所有参数用圆括号括起来。每个参数与前面的%一一对应,并且数据类型也要能够合法对应。
python字符串格式化符号:
符 号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址
格式化操作符辅助指令:
符号 功能
* 定义宽度或者小数点精度
- 用做左对齐
+ 在正数前面显示加号( + )
<sp> 在正数前面显示空格
# 在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0 显示的数字前面填充'0'而不是默认的空格
% '%%'输出一个单一的'%'
(var) 映射变量(字典参数)
m.n. m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。