python格式化输出(python格式化字符串能是变量吗)
1.字符串连接
>>> a = 'My name is ' + 'Suen'
>>> a
'My name is Suen'
>>> a = 'My name is %s'%'Suen'
>>> a
'My name is Suen'
>>> a = 'My name is %s, Age:%d'%('Suen', 18)
>>> a
'My name is Suen, Age:18'
>>> t = "i am %(name)s , age %(age)d" % {"name": "suen", "age": 18} # %(name)s 获取字典的name %(age)d 获取字典的age
>>> t
>>> 'i am suen , age 18'
>>> tp = "i am %(pp).2f " %{"pp": 23.45789}
>>> tp
'i am 23.46'
2.打印浮点数
>>> str1 = '浮点数:%.2f' % 199.1568 # %.2f 就是保留小数点右边两位(四舍五入)
>>> str1
'浮点数:199.16'
>>> str1 = '浮点数:%.3f' % 199.1568 # %.3f 就是保留小数点右边三位(四舍五入)
>>> str1
'浮点数:199.157'
3.字符串截取打印
>>> a = "从左往右打印3个字符:%.3s"%"abcdefg" # %.3s
>>> a
'从左往右打印3个字符:abc'
>>> a = "从左往右打印5个字符:%.5s"%"abcdefg" # %.5s
>>> a
'从左往右打印5个字符:abcde'
4.打印百分号
>>> str1 = '浮点数:%.3f%%' % 199.1568 # %%打印出来就是一个%
>>> str1
'浮点数:199.157%'
python字符串格式化符号:
符 号描述
%c
格式化字符及其ASCII码
%s
格式化字符串
%d
格式化整数
%u
格式化无符号整型
%o
格式化无符号八进制数
%x
格式化无符号十六进制数
%X
格式化无符号十六进制数(大写)
%f
格式化浮点数字,可指定小数点后的精度
%e
用科学计数法格式化浮点数
%E
作用同%e,用科学计数法格式化浮点数
%g
%f和%e的简写
%G
%f 和 %E 的简写
%p
用十六进制数格式化变量的地址
格式化操作符辅助指令:
符号功能
*
定义宽度或者小数点精度
-
用做左对齐
+
在正数前面显示加号( + )
在正数前面显示空格
#
在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0
显示的数字前面填充'0'而不是默认的空格
%
'%%'输出一个单一的'%'
(var)
映射变量(字典参数)
m.n.
m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)
Python字符串运算符
下表实例变量a值为字符串 "Hello",b变量值为 "Python":
操作符描述实例
+
字符串连接
a + b 输出结果: HelloPython
*
重复输出字符串
a*2 输出结果:HelloHello
[]
通过索引获取字符串中字符
a[1] 输出结果 e
[ : ]
截取字符串中的一部分
a[1:4] 输出结果 ell
in
成员运算符 - 如果字符串中包含给定的字符返回 True
'H' in a 输出结果 1
not in
成员运算符 - 如果字符串中不包含给定的字符返回 True
'M' not in a 输出结果 1
r/R
原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print(r'\n')print(R'\n')
%
格式字符串