1.input()函数常涉及的强制类型转换
第一种是在键入时进行转换,例如:a = int(input())
1 a=int (input()) 2 b=int (input()) 3 a=a +b 4 print (a)
第二种则是在使用时进行转换。这样赋值的数据存储的形式仍是input()返回的字符串类型,仅仅在使用时转换
1 a input () 2 b=input() 3 a int (a)+int(b) 4 print (a)
2、带提示的input()函数
1 >>>name,=input('请输入您的名字:') 2 请输入您的名字:A1ex 3 >>>print (name) 4 Alex
5>>>number=iput心请输入'+str(name)+同学的学号:')
6请输入A1ex同学的学号:
3、利用input()一次性输入多个变量值
利用split()函数进行输入,同时,我们不仅可以利用split()函数一次性输入多个数,我们还可以设置分隔符,除了传统的空格形式,也可以用逗号“,”
1 >>>a,b,c=input(以空格隔开:').split(0 2 以空格隔开:123 3 >>>print (a,b,c) 4 123 5 >>>d,e,f=input(以逗号隔开:').sp1it(",“) 6 以逗号隔开:4,5,6 7 >>print (d,e,f) 8 456
split()函数返回的是一个列表,spring当然能被转换成int型,但是列表是没法被这样直接转换的,所以我们需要用另一个函数map()来实现多输入的强制类型转换,
map()函数接受两个接收两个参数,一个是函数,一个是序列
1 >>>d,e,f=map(int,input('以逗号隔开:').split(",“)) 2 以逗号隔开:1,2,3 3 >>>print (type(d)) 4 <class'int'>
4. print()函数用法:
函数语法:
1 print(*objects, sep=' ', end='\n', file=sys.stdout,flush=Flase)
objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔
sep – 用来间隔多个对象,默认值是一个空格
end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串
file – 要写入的文件对象
flush -- 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制刷新
1 import time 2 print('---RUNROBOT EXAMPLE :Loading 效果---') 3 print('Loading',end='') 4 for i in range(13): 5 print('.',end='',flush=True) 6 time.sleep(0.5)
5.格式化输出:
在C语言中,我们可以使用printf("%-.4f",a)之类的形式,实现数据的的格式化输出
在python中,我们同样可以实现数据的格式化输出
1 s = 'Duan Yixuan' 2 x = len(s) 3 print('The length of %s is %d' % (s,x)) 4 # 和C语言的区别在于,Python中格式控制符和转换说明符用%分隔,C语言中用逗号。
设置宽度与精度:
1 PI = 3.141592653 2 print('%10.3f' % PI) #字段宽10,精度3 3 # 输出: 3.142 4 5 #精度为3,所以只显示142,指定宽度为10,所以在左边需要补充5个空格,以达到10位的宽度
转换标志:-表示左对齐;+表示在数值前要加上正负号;" "(空白字符)表示正数之前保留空格();0表示转换值若位数不够则用0填充
1 PI = 3.1415926 2 print('%-10.3f' % PI) #左对齐,还是10个字符,但空格显示在右边。 3 # 3.142 4 5 PI = 3.1415926 6 print('%+f' % PI) #显示正负号 #+3.141593 7 # 类型f的默认精度为6位小数 8 9 PI = 3.1415926 10 print('%010.3f' % PI) #字段宽度为10,精度为3,不足处用0填充空白 11 # 000003.142 0表示转换值若位数不够则用0填充
6.Python常用格式字符:
%s 字符串采用str()的显示
%x 十六进制整数
%r 字符串(repr())的显示
%e 指数(基底写e)
%c 单个字符
%E 指数(基底写E)
%b 二进制整数
%f,%F 浮点数
%d 十进制整数
%g 指数(e)或浮点数(根据显示长度)
%i 十进制整数
%G 指数(E)或浮点数(根据显示长度)
%o 八进制整数
%% 字符%
7. 输出列表元素
1 l = [1,2,3,4] 2 for i in l: 3 print(i) 4 # 一行一个,自动换行 5 6 l = [1,2,3,4] 7 for i in l: 8 print(i,end=' ') 9 # 以空格为分隔符,不换行,但是最后有空格 10 11 l = [1,2,3,4] 12 print(" ".join(str(i) for i in l)) 13 # 以空格为分隔符,最后无空格 14 15 for x in list: 16 print(x, end=' ' if x != list[-1] else '') 17 # 判断该元素是不是列表的最后一个元素,根据判断结果输出分隔符 18 19 a = list() 20 print(*a,sep=' ') 21 # 一行输出列表,用空格隔开
8. join()函数:
将一个包含多个字符串的可迭代对象,转为用分隔符s连接的字符(不能是数字)
1 a = ["he", "l", "l", "o"] 2 print(" ".join(a)) 3 # 输出:he l l o 4 # 注意最后没有空格
9. fomat()函数:
1.通过位置来填充字符串
1 print('hello {0} i am {1}'.format('world','python')) 2 # 输入结果:hello world i am python 3 print('hello {} i am {}'.format('world','python') ) 4 # 输入结果:hello world i am python 5 print('hello {0} i am {1} . a now language-- {1}'.format('world','python') 6 # 输出结果:hello world i am python . a now language-- python
foramt会把参数按位置顺序来填充到字符串中,第一个参数是0,然后1 ……
也可以不输入数字,这样也会按顺序来填充
同一个参数可以填充多次,这个是format比%先进的地方
2.通过key来填充
1 obj = 'world' 2 name = 'python' 3 print('hello, {obj} ,i am {name}'.format(obj = obj,name = name)) 4 # 输入结果:hello, world ,i am python
3.通过列表填充
1 list=['world','python'] 2 print('hello {names[0]} i am {names[1]}'.format(names=list)) 3 # 输出结果:hello world i am python 4 print('hello {0[0]} i am {0[1]}'.format(list)) 5 # 输出结果:hello world i am python
4.通过字典填充
1 dict={‘obj’:’world’,’name’:’python’} 2 print(‘hello {names[obj]} i am {names[name]}’.format(names=dict)) 3 # hello world i am python 4 # 注意访问字典的key,不用引号的
5.通过类的属性填充
1 class Names(): 2 obj='world' 3 name='python' 4 print('hello {names.obj} i am {names.name}'.format(names=Names)) 5 # 输入结果hello world i am python