print:%格式化输出
print是一个常用函数,其功能就是输出括号中得字符串。
在下面例子中("His name is %s"%("Aviad"))有两个%,第一个%s表示先在"His name is %s"中占个位置,而后面的"Aviad"才是真正%s位置上要显示的内容,也就是说 %("Aviad") 这个表达式是要告诉前面的%s,它要显示的内容在 %() 这里面。(参考c++中的输入输出)
注意相应的%_与后面要输出内容类型的匹配。
%d对数字(123),%f对浮点数(5.203),等等……不然输入输出的类型有时会自动转换。
>>> print ("His %s is %s"%('name',"Anna")) #这里%s是要替字符串占位置
His name is Anna
>>> print ("He is %d years old"%(25)) #这里%d是替整数占位置
He is 25 years old
>>> print ("His height is %f m"%(1.83)) #这里%f表示替浮点数占位置
His height is 1.830000 m
>>> print ("His height is %.2f m"%(1.83)) #这里%.2f表示浮点数占位置,表示只显示小数点后两位数字,也就是指定了保留小数点位数
His height is 1.83 m
- 具体细节
指定占位符宽度:总共要留下多长的位置输出(包含空格、小数点和输出内容)。
如果是正整数就是右对齐(左边是空格),是负整数就是左对齐(右边是空格)。
>>> print ("Name:%10s Age:%8d Height:%8.2f"%("Aviad",25,1.83)) #右对齐
Name: Aviad Age: 25 Height: 1.83
>>> print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Aviad",25,1.83)) #左对齐
Name:Aviad Age:25 Height:1.83
指定占位符(只能用0当占位符,不然对被认为是宽度而失效):在宽度面前加0。
>>> print ("Name:%-10s Age:%08d Height:%08.2f"%("Aviad",25,1.83))
Name:Aviad Age:00000025 Height:00001.83
- print后跟多个输出
用‘+’号时,中间是无间隔的,要手动加上。
用‘,’时就不需要空格,逗号会自动转化为空格,注意前后输出格式要相同。
若要将多个结果打印在一行,可以在print最后添加end=',',注意一定是要在语句的最后。
>>> name='abc'
>>> a=10
>>> print(name+' is '+str(a-7)+' word')
abc is 3 word
>>> print(name,'is',str(a+7),'word')
abc is 17 word
>>> print(name,end=' ')
>>> print('is',end=' ')
>>> print(a+10,end=' ')
>>> print('word',end=' ')
abc is 20 word
input
变量= input("想要输入的内容: ")
input函数将用户输入的内容作为字符串形式返回,就算你输入的是数字,但这个返回的“数字”的类型是字符型。
但如果要想获取其他类型,那么可以使用转换函数将字符转化为其他类型(注意输入与想要的输出类型得保持一致)。
format格式化输出
字符变量名.format() 或 '{1},{2}.{3}…'.format(内容1,内容2,…)
生成对象为字符型。它与之前的%型格式化字符串相比,它通过{}和.来代替%,format()函数中的‘,’可以使用其他的分隔符号。
- 一般使用
{}中的数字表示的是输出时的位置索引。若为空就默认按照0、1、2、3的顺序进行输出;若为有多个位置索引,有重复的就重复,没重复的就出错。
() 中的内容表示相应位置(不是位置索引,而是{}中的前后顺序)的输出内容。
>>> '{1},{0}'.format('Anna',19)
'19,Anna'
>>> '{},{}'.format('Anna',19)
'Anna,19'
>>> '{1},{0},{1}'.format('Anna',19)
'19,Anna,19'
- 使用关键字参数:
前面的给出关键字,后面的()给出相应关键字的参数。
>>> '{name},{age}'.format(age=19,name='Anna')
'Anna,19'
- 使用索引下标
分别将format()函数中的变量看成是整体1、整体2……使用序列索引相似的引用法则。
>>> p=['Anna',19]
>>> q=['Bob',20]
>>> '{0[0]},{0[1]}{1[1]},{1[0]}'.format(p,q) #注意这里的第二三项之间没有逗号
'Anna,1920,Bob
- 格式限定符:
{}中必须要带‘:’,比如:填充与对齐,填充常跟对齐一起使用:
‘^’、‘<’、‘>’ 分别是居中、左对齐、右对齐,后面带宽度。
‘:’ 后面带填充的字符,填充的字符只能填一个,默认使用空格填充。
>>> '{:>8}'.format('189') #默认是空格来占位,要显示的内容靠右对齐
' 189'
>>> '{:0>8}'.format('189') #用0来占位
'00000189'
>>> '{:a<8}'.format('189') #用字母a来占位,要显示的内容靠左对齐
'189aaaaa'
>>> '{:*^7}'.format('189') #用*来占位,共显示7位,要显示内容居中
'**189**'
其中的精度与类型调整
f前的数字表示精度为小数点后几位。与C++不同的是它会遵循四舍五入。
>>> '{:.2f}'.format(321.33345) #保留两位有效数字
'321.33'