格式化字符串
format(*args, **kwargs):返回一个格式化的新字符串;使用位置参数(args)和关键字参数(kwargs)进行替换
>>> year = 2010
>>> "鱼C工作室成立于 year 年"
'鱼C工作室成立于 year 年'
>>> "鱼C工作室成立于 {} 年".format(year)
'鱼C工作室成立于 2010 年'
格式化字符串的套路就是使用一对花括号来表示替换字段
>>> "1+2={},2的平方是{},3的立方是{}".format(1+2, 2*2, 3*3*3)
'1+2=3,2的平方是4,3的立方是27'
在花括号里面,我们还可以写上数字,表示参数的位置
>>> "{}看到{}就很激动!".format("小甲鱼", "漂亮的小姐姐")
'小甲鱼看到漂亮的小姐姐就很激动!'
>>> "{1}看到{0}就很激动!".format("小甲鱼", "漂亮的小姐姐")
'漂亮的小姐姐看到小甲鱼就很激动!'
[参数中的字符串将会被当做元组的元素来对待]
同一个索引值是可以被引用多次的
>>> "{0}{0}{1}{1}".format("是", "非")
'是是非非'
我们还可以通过关键字进行索引
>>> "我叫{name},我爱{fav}。".format(name="小甲鱼", fav="Python")
'我叫小甲鱼,我爱Python。'
[用关键字参数时就不用管顺序了]
位置索引和关键字索引也可以组合在一起使用
>>> "我叫{name},我爱{0}。喜爱{0}的人,运气都不会太差。".format("Pyhon", name="小甲鱼")
'我叫小甲鱼,我爱Pyhon。喜爱Pyhon的人,运气都不会太差。'
单纯输出一对纯洁的花括号,有两种方法:
1.在参数里边直接写上花括号
>>> "{}, {}, {}".format(1, "{}", 2)
'1, {}, 2'
2.使用花括号来注释花括号
>>> "{}, {{}}, {}".format(1, 2)
'1, {}, 2'
**格式化语法**
format_spec ::= [align][#][.precision]
【align】指定的是对齐的方式:
'<':强制字符串在可用空间内左对齐(默认)
'>':强制字符串在可用空间内右对齐
'=':强制将填充放置在符号(如果有)之后但在数字之前的位置(这适用于以 “+000000120” 的形式打印字符串)
'^':强制字符串在可用空间内居中
>>> "{:^}".format(250)
'250'
要实现对齐,需要更大的空间,用【width】选项可以来指定更大的宽度
>>> "{:^10}".format(250)
' 250 '
>>> "{1:>10}{0:<10}".format(520, 250)
' 250520 '
>>> "{left:>10}{right:<10}".format(right=520, left=250)
' 250520 '
[使用关键字参数也没有问题]
如果在指定宽度的前面添加一个 '0',则表示为数字类型(其它类型无效)启用感知正负号的 '0' 填充效果。
>>> "{:010}".format(520)
'0000000520'
>>> "{:010}".format(-520)
'-000000520'
>>> "{:010}".format("FishC")
报错
[这一招只对数字有效]
我们还可以在对其选项的前面通过填充选项来指定填充的字符
>>> "{1:%>10}{0:%<10}".format(520, 250)
'%%%%%%%250520%%%%%%%'
>>> "{:0=10}".format(520)
'0000000520'
>>> "{:0=10}".format(-520)
'-000000520'
[前面填充0的例子也可以这么写] 复习
**字符串5**
格式化字符串
format(*args, **kwargs):返回一个格式化的新字符串;使用位置参数(args)和关键字参数(kwargs)进行替换
>>> year = 2010
>>> "鱼C工作室成立于 year 年"
'鱼C工作室成立于 year 年'
>>> "鱼C工作室成立于 {} 年".format(year)
'鱼C工作室成立于 2010 年'
格式化字符串的套路就是使用一对花括号来表示替换字段
>>> "1+2={},2的平方是{},3的立方是{}".format(1+2, 2*2, 3*3*3)
'1+2=3,2的平方是4,3的立方是27'
在花括号里面,我们还可以写上数字,表示参数的位置
>>> "{}看到{}就很激动!".format("小甲鱼", "漂亮的小姐姐")
'小甲鱼看到漂亮的小姐姐就很激动!'
>>> "{1}看到{0}就很激动!".format("小甲鱼", "漂亮的小姐姐")
'漂亮的小姐姐看到小甲鱼就很激动!'
[参数中的字符串将会被当做元组的元素来对待]
同一个索引值是可以被引用多次的
>>> "{0}{0}{1}{1}".format("是", "非")
'是是非非'
我们还可以通过关键字进行索引
>>> "我叫{name},我爱{fav}。".format(name="小甲鱼", fav="Python")
'我叫小甲鱼,我爱Python。'
[用关键字参数时就不用管顺序了]
位置索引和关键字索引也可以组合在一起使用
>>> "我叫{name},我爱{0}。喜爱{0}的人,运气都不会太差。".format("Pyhon", name="小甲鱼")
'我叫小甲鱼,我爱Pyhon。喜爱Pyhon的人,运气都不会太差。'
单纯输出一对纯洁的花括号,有两种方法:
1.在参数里边直接写上花括号
>>> "{}, {}, {}".format(1, "{}", 2)
'1, {}, 2'
2.使用花括号来注释花括号
>>> "{}, {{}}, {}".format(1, 2)
'1, {}, 2'
**格式化语法**
format_spec ::= [align][#][.precision]
【align】指定的是对齐的方式:
'<':强制字符串在可用空间内左对齐(默认)
'>':强制字符串在可用空间内右对齐
'=':强制将填充放置在符号(如果有)之后但在数字之前的位置(这适用于以 “+000000120” 的形式打印字符串)
'^':强制字符串在可用空间内居中
>>> "{:^}".format(250)
'250'
要实现对齐,需要更大的空间,用【width】选项可以来指定更大的宽度
>>> "{:^10}".format(250)
' 250 '
>>> "{1:>10}{0:<10}".format(520, 250)
' 250520 '
>>> "{left:>10}{right:<10}".format(right=520, left=250)
' 250520 '
[使用关键字参数也没有问题]
如果在指定宽度的前面添加一个 '0',则表示为数字类型(其它类型无效)启用感知正负号的 '0' 填充效果。
>>> "{:010}".format(520)
'0000000520'
>>> "{:010}".format(-520)
'-000000520'
>>> "{:010}".format("FishC")
报错
[这一招只对数字有效]
我们还可以在对其选项的前面通过填充选项来指定填充的字符
>>> "{1:%>10}{0:%<10}".format(520, 250)
'%%%%%%%250520%%%%%%%'
>>> "{:0=10}".format(520)
'0000000520'
>>> "{:0=10}".format(-520)
'-000000520'
[前面填充0的例子也可以这么写] "{1:0>10}{0:0<10}".format(520,250)
'00000002505200000000'
>>> "{1:0>10}{0:0<10}".format(520,-250)
'000000-2505200000000'
>>> "{1:0=10}{0:0<10}".format(520,-250)
'-0000002505200000000'
>>> "{1:0=5}{0:0<10}".format(520,-250)
'-02505200000000'
>>> "{1:0=5}{0:0<5}".format(520,-250)
'-025052000' >>> year = 2010
>>> "鱼C工作室成立于 year 年"
'鱼C工作室成立于 year 年'
>>> "鱼C工作室成立于 {} 年".format(year)
'鱼C工作室成立于 2010 年'
>>> "1 + 2 = {},2的平方是{},3的立方是".format(1+2,2*2,3**3)
SyntaxError: invalid character ',' (U+FF0C)
>>> "1 + 2 = {},2的平方是{},3的立方是".format(1+2,2*2,3**3)
'1 + 2 = 3,2的平方是4,3的立方是'
>>> "1 + 2 = {},2的平方是{},3的立方是".format(1+2,2*2,3 ** 3)
'1 + 2 = 3,2的平方是4,3的立方是'
>>> "1 + 2 = {},2的平方是{},3的立方是{}".format(1+2,2*2,3 ** 3)
'1 + 2 = 3,2的平方是4,3的立方是27'
>>> "{}看到{}就很激动".format("小甲鱼","漂亮的小姐姐")
'小甲鱼看到漂亮的小姐姐就很激动'
>>> "{1}看到{0}就很激动".format("小甲鱼","漂亮的小姐姐")
'漂亮的小姐姐看到小甲鱼就很激动'
>>> "{0}{0}{1}{1}".format("是","非")
'是是非非'
>>> "我叫{name},我爱{fav}".format(name = "小甲鱼",fav = "Python")
'我叫小甲鱼,我爱Python'
>>> "我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format(name = "小甲鱼",python)
SyntaxError: positional argument follows keyword argument
>>> "我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format(name = "小甲鱼",python)
SyntaxError: positional argument follows keyword argument
>>> "我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format(python,name = "小甲鱼")
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
"我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format(python,name = "小甲鱼")
NameError: name 'python' is not defined
>>> "我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format("python",name = "小甲鱼")
'我叫小甲鱼,我爱python,喜爱python的人,运气都不会太差'
>>> "我叫{name},我爱{0},喜爱{0}的人,运气都不会太差".format(name = "小甲鱼","python")
SyntaxError: positional argument follows keyword argument
>>> "{},{},{}".format(1,"{}",2)
'1,{},2'
>>> "{},{{}},{}".format(1,2)
'1,{},2'
>>> "{:^}".format(250)
'250'
>>> "{:^10}".format(250)
' 250 '
>>> "{1:>10}{0:<10}".format(520,250)
' 250520 '
>>> "{left:>10}{right:<10}".format(right = 520,left = 250)
' 250520 '
>>> "{:010}".format(520)
'0000000520'
>>> "{:010}".format(-520)
'-000000520'
>>> "{:010}".format("520")
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
"{:010}".format("520")
ValueError: '=' alignment not allowed in string format specifier
>>> "{1:%>10}{0:%<10}"
'{1:%>10}{0:%<10}'
>>> "{1:%>10}{0:%<10}".format(520,250)
'%%%%%%%250520%%%%%%%'
>>> "{:0=10}".format(520)
'0000000520'
>>> "{:0=10}".format(-520)
'-000000520'
>>> 苦等更新 打卡~~{:10_254:}{:10_254:} 默认左对齐还是右对齐 标准格式化规范语法那里晕了 已经快淹死了 {:10_269:}{:10_251:}
year=1999
'ctx出生于year年'
'ctx出生于year年'
'ctx出生于{}年'.format(year)
'ctx出生于1999年'
1
1
'1+4={},2pf{},5lf{}'.format{1+4,2*2,5*5*5}
SyntaxError: invalid syntax
'1+4={},2pf{},5lf{}'.format(1+4,2*2,5*5*5)
'1+4=5,2pf4,5lf125'
{1}看到{0}好开心'
SyntaxError: unexpected indent
'{1}看到{0}好开心'.format('ctx','njz')
'njz看到ctx好开心'
'{}{}{}{}{}'.format('整','齐')
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
'{}{}{}{}{}'.format('整','齐')
IndexError: Replacement index 2 out of range for positional args tuple
'{0}{0}{1}{1}'.format('整','齐')
'整整齐齐'
'我是{c},我喜欢{z}'.format(z='njz',c='ctx')
'我是ctx,我喜欢njz'
'我是{n},我喜欢{0},喜欢{0}是个人的自由'.format('sw',name=ctx)
Traceback (most recent call last):
File "<pyshell#11>", line 1, in <module>
'我是{n},我喜欢{0},喜欢{0}是个人的自由'.format('sw',name=ctx)
NameError: name 'ctx' is not defined
'我是{n},我喜欢{0},喜欢{0}是个人的自由'.format('sw',name='ctx')
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
'我是{n},我喜欢{0},喜欢{0}是个人的自由'.format('sw',name='ctx')
KeyError: 'n'
'我是{n},我喜欢{0},喜欢{0}是个人的自由'.format('sw',n='ctx')
'我是ctx,我喜欢sw,喜欢sw是个人的自由'
'{},{},{}'.format(1,'{}',13213)
'1,{},13213'
'{},{{}},{}'.format(1,5)
'1,{},5'
{:^}.format(250)
SyntaxError: invalid syntax
{:^}.format(250)
SyntaxError: invalid syntax
'{:^}'.format(250)
'250'
'{:^}'.format(25)
'25'
'{:^}'.format(2)
'2'
'{:^}'.format(25000)
'25000'
'{1:>8}{2:<8}'.format(121,212)
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
'{1:>8}{2:<8}'.format(121,212)
IndexError: Replacement index 2 out of range for positional args tuple
'{1:>8}{2:<8}'.format(261,250)
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
'{1:>8}{2:<8}'.format(261,250)
IndexError: Replacement index 2 out of range for positional args tuple
'{1:>8}{2:<8}'.format(520,250)
Traceback (most recent call last):
File "<pyshell#24>", line 1, in <module>
'{1:>8}{2:<8}'.format(520,250)
IndexError: Replacement index 2 out of range for positional args tuple
'{1:>10}{2:<10}'.format(520,250)
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
'{1:>10}{2:<10}'.format(520,250)
IndexError: Replacement index 2 out of range for positional args tuple
'{:^10}'.format(250)
' 250 '
"{1:>10}{0:<10}".format(520, 250)
' 250520 '
'{1:>10}{2:<10}'.format(520,250)
Traceback (most recent call last):
File "<pyshell#28>", line 1, in <module>
'{1:>10}{2:<10}'.format(520,250)
IndexError: Replacement index 2 out of range for positional args tuple
'{1:>10}{0:<10}'.format(520,250)
' 250520 '
'{1:>10}{0:<10}'.format(1,2)
' 21 '
'{1:>10}{0:<10}'.format(a,b)
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
'{1:>10}{0:<10}'.format(a,b)
NameError: name 'a' is not defined
'{1:>10}{0:<10}'.format('a','b')
' ba '
'{l:>10}{r:<10}'.format('a','b')
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
'{l:>10}{r:<10}'.format('a','b')
KeyError: 'l'
'{l:>10}{r:<10}'.format(r='a',l='b')
' ba '
'{l:>10}{r:<10}'.format(l=1,r=2)
' 12 '
'{1:>10}{0:<10}'.format(250,520)
' 250520 '
SyntaxError: multiple statements found while compiling a single statement
'{1:>10}{0:<10}'.format(250,520)
' 520250 '
'{1:>10}{0:<10}'.format(44,33)
' 3344 '
'{:05}'.format(5)
SyntaxError: unexpected indent
'{:010}'.format(5)
'0000000005'
'{:>010}'.format(5)
'0000000005'
'{:<010}'.format(5)
'5000000000'
'{:<08}'.format(5)
'50000000'
'{:<08}'.format(-5)
'-5000000'
'{:08}'.format(-5)
'-0000005'
'{1:!>10}{0:<!10}'.format(250,520)
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
'{1:!>10}{0:<!10}'.format(250,520)
ValueError: Invalid format specifier
'{1:!>10}{0:<!10}'.format(420,240)
Traceback (most recent call last):
File "<pyshell#47>", line 1, in <module>
'{1:!>10}{0:<!10}'.format(420,240)
ValueError: Invalid format specifier
打卡 打卡!!! 最新版本"{:010}".format("FishC")
'FishC00000'
是不报错的 卡打
打卡 >>> "我叫{name},我爱{1}。".format(name="墨墨","中国")
SyntaxError: positional argument follows keyword argument
>>> "我叫{name},我爱{0}。".format(name="墨墨","中国")
SyntaxError: positional argument follows keyword argument
>>> "我叫{name},我爱{0}。".format("中国",name="墨墨")
'我叫墨墨,我爱中国。'
求解答,为什么前面两个都报错咦!
位置索引和关键字结合使用,位置索引必须放在前面吗?
滴滴滴~打卡{:10_266:} 学习 himary 发表于 2022-9-14 20:24
最新版本"{:010}".format("FishC")
'FishC00000'
是不报错的
试过了,确实不报错。但结果不同,字符串是右填充,数字是左填充。
页:
[1]
2