鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[知识点备忘] 第031讲:字符串(V)

[复制链接]
发表于 2022-9-23 17:58:13 | 显示全部楼层
卡打
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-9-29 18:29:29 | 显示全部楼层
打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-4 14:59:18 | 显示全部楼层
>>> "我叫{name},我爱{1}。".format(name="墨墨","中国")
SyntaxError: positional argument follows keyword argument
>>> "我叫{name},我爱{0}。".format(name="墨墨","中国")
SyntaxError: positional argument follows keyword argument
>>> "我叫{name},我爱{0}。".format("中国",name="墨墨")
'我叫墨墨,我爱中国。'

求解答,为什么前面两个都报错咦!
位置索引和关键字结合使用,位置索引必须放在前面吗?

滴滴滴~打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-10-28 18:12:23 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-3 12:34:16 | 显示全部楼层
himary 发表于 2022-9-14 20:24
最新版本"{:010}".format("FishC")
'FishC00000'
是不报错的

试过了,确实不报错。但结果不同,字符串是右填充,数字是左填充。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-3 12:36:08 | 显示全部楼层
墨墨在努力吖 发表于 2022-10-4 14:59
>>> "我叫{name},我爱{1}。".format(name="墨墨","中国")
SyntaxError: positional argument follows key ...

应该是的。试过,跟你的测试一样。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-20 16:54:10 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-20 17:12:53 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-22 23:15:48 | 显示全部楼层
"{0}看见{1}就激动!".format("小甲鱼","猛男")
"{}看见{}就激动!就很往上凑".format("小甲鱼","猛男")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-22 23:18:09 | 显示全部楼层
墨墨在努力吖 发表于 2022-10-4 14:59
>>> "我叫{name},我爱{1}。".format(name="墨墨","中国")
SyntaxError: positional argument follows key ...

要注意的是,如果将位置参数和关键字参数综合在一起使用,那
么位置参数必须在关键字参数之前,否则就会出错

书上原文
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-22 23:19:20 | 显示全部楼层
ctx111 发表于 2022-8-6 11:46
year=1999
'ctx出生于year年'
'ctx出生于year年'

你这个我看得头晕
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-23 13:50:15 | 显示全部楼层
jgz1818 发表于 2022-11-22 23:18
要注意的是,如果将位置参数和关键字参数综合在一起使用,那
么位置参数必须在关键字参数之前,否则就会 ...

好的谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-3 11:48:04 | 显示全部楼层
打卡学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 21:01:12 | 显示全部楼层
year = 2010
"鱼C工作室成立于 year 年"
'鱼C工作室成立于 year 年'
"鱼C工作室成立于 {} 年".format(year)
'鱼C工作室成立于 2010 年'
'
'
SyntaxError: unterminated string literal (detected at line 1)
"1+2={},2的立方是{},3的立方是{}".format(1+2,2*2,3*3*3)
'1+2=3,2的立方是4,3的立方是27'
"小甲鱼{}就{}".format(看到小姐姐,激动)
SyntaxError: invalid character ',' (U+FF0C)
"小甲鱼{}就{}".format("看到小姐姐","激动")
'小甲鱼看到小姐姐就激动'
"小甲鱼{1}就{0}".format("看到小姐姐","激动")
'小甲鱼激动就看到小姐姐'
{0}{0}{1}{1}.format("是","非")
SyntaxError: invalid syntax
"{0}{0}{1}{1}".format("是","非")
'是是非非'
"我叫{name},我爱{fav}".format(name = "小甲鱼",fav = "python")
'我叫小甲鱼,我爱python'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-5 12:35:06 | 显示全部楼层
print ("{:010}". format("FishC")) 
为啥没有报错,输出的反而是'FishC00000'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-11 15:59:16 | 显示全部楼层
打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-15 21:16:11 | 显示全部楼层
芜湖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-28 22:10:58 | 显示全部楼层
打卡
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-2-16 22:46:08 | 显示全部楼层

**字符串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     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]

【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的例子也可以这么写]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-8 15:59:21 | 显示全部楼层
打卡~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-23 15:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表