字符串格式化代码:
格式 | 描述 |
---|---|
%% | 百分号标记 |
%c | 字符及其ASCII码 |
%s | 字符串 |
%d | 有符号整数(十进制) |
%u | 无符号整数(十进制) |
%o | 无符号整数(八进制) |
%x | 无符号整数(十六进制)a-f |
%X | 无符号整数(十六进制大写字符)A-F |
%e | 浮点数字(科学计数法) |
%E | 浮点数字(科学计数法,用E代替e) |
%f | 浮点数字(用小数点符号)默认精度为6位 |
%g | 浮点数字(根据值的大小采用%e或%f) |
%G | 浮点数字(类似于%g) |
%p | 指针(用十六进制打印值的内存地址) |
%n | 存储输出字符的数量放进参数 |
整数不包含精度问题
1.打印字符串 %s
print("My name is %s" %("Alfred.Xue")) #输出效果:
My name is Alfred.Xue
2.打印整数 %d
print("I am %d years old." %(25)) #输出效果:
I am 25 years old.
3.打印浮点数 %f
print ("His height is %f m"%(1.70))
#输出效果:
His height is 1.700000 m
4.打印浮点数(指定保留两位小数) %.2f
print ("His height is %.2f m"%(1.70))
#输出效果: His height is 1.70 m
5.指定占位符宽度 %8d %8.2f 多个占位符用括号
print ("Name:%10s Age:%8d Height:%8.2f"%("Alfred",25,1.70))
#输出效果: Name: Alfred Age: 25 Height: 1.70
6.指定占位符宽度(左对齐)默认右边对齐,负号代码左边对齐 %-10s %-8d %-8.2f
print ("Name:%-10s Age:%-8d Height:%-8.2f"%("Alfred",25,1.70))
#输出效果:
Name:Alfred Age:25 Height:1.70
7.指定占位符(只能用0当占位符?) %08d %08.2f
print ("Name:%-10s Age:%08d Height:%08.2f"%("Alfred",25,1.70))
#输出效果: Name:Alfred Age:00000025 Height:00001.70
8.科学计数法
format(0.0026,'.2e')
#输出效果: '2.60e-03'
练习字符串
1 #!usr/bin/python3 2 3 inputstr = input("请输入字符串") 4 ##!!!!str作为字符串名不建议使用,容易混淆str()函数 5 6 print("字符中存在%s个a" % inputstr.count('a')) 7 print("字符中存在%s个空格" % inputstr.count(' ')) 8 print("字符中第一个字符编码%s\n\n" % ord(inputstr[0])) 9 10 11 inputNum = input("请输入整数") 12 while not (inputNum.isdigit() and (int(inputNum)>=0 and int(inputNum)<=256)): 13 if not inputNum.isdigit(): 14 inputNum = input("输入的不是数字,请重新输入") 15 continue 16 if not (int(inputNum)>=0 and int(inputNum)<=256): 17 inputNum = input("输入的数字值太大,请重新输入") 18 19 print("%s对应的ascii的字符为%s" % (inputNum, chr(int(inputNum)))) 20 21 """ 22 if len(inputstr)==0: 23 print("没有输入数据!!!!") 24 quit() 25 26 if inputstr[::] == inputstr[::-1]: 27 print("是回文") 28 else: 29 print("不是回文") 30 """ 31 32 33 34 """ 35 print("第一个字符:" + inputstr[0]) 36 37 #print(inputstr[int(len(inputstr)/2)]) 38 #print(len(inputstr)%2) 39 40 if len(inputstr)%2 != 0: 41 print("中间第"+str(len(inputstr)//2+1)+"个字符为:"+inputstr[len(inputstr)//2]) 42 ##!!!!注意len()/2得到的值为float型 43 else: 44 print("没有中间字符") 45 46 print("最后一个字符:"+inputstr[-1]) 47 """