第15课:为何花括号跟反斜杠一个道理?
原始问题:第15课中,关于打印{},小甲鱼在视频中给出了一个例子,即:
'{{0}}'.format('不打印')
结果为:
'{0}'
我的问题:
我没听懂小甲鱼解释内容。
视频里,小甲鱼说:这里‘不打印’的参数,实际上是没有被打印出来的,因为没有字段可以被输出的,因为这个 0已经被解释掉了。像跟上面的反斜杠,一个道理。
(小甲鱼他到底在说什么?Python中,花括号跟反斜杠是一个道理?)
在字符串的format方法里面,花括号可以去掉在它里面的花括号的特殊功能,所以小甲鱼说它的功能和反斜杠一样。 还要进一步请问:花括号可以去掉在它里面的花括号?就是说,Python认为,输入者输入了一个不具备任何意义的位置参数,因此不调用后面的“不打印”这个值,是么?那么就算是Python不调用后面,为何要打印出一个{0}来呢?在format前面,明明是一个定义位置的含义,怎么成为了被打印的内容? 小甲鱼说的花括号和反斜杠功能一样指的是花括号具有转义功能,从这个意义上说,与反斜杠是一样的,倒不是说花括号所起的作用与反斜杠一样。 jackz007 发表于 2021-1-6 16:12
小甲鱼说的花括号和反斜杠功能一样指的是花括号具有转义功能,从这个意义上说,与反斜杠是一样的, ...
那么请问:'{{0}}'.format('不打印')这里,外面的{}起到了转移功能后,这一行code,到底怎么阅读呢?是表示外面的花括号转义后,直接打印了里面的内容,即:{0}?既然能够打印出{0},为何打印不出“不打印”这三个字呢? Peteryo01223 发表于 2021-1-6 16:18
那么请问:'{{0}}'.format('不打印')这里,外面的{}起到了转移功能后,这一行code,到底怎么阅读呢?是 ...
道理很简单,因为 '{{0}}' 并非合法的转义,使用功能的前提是,必须严格遵守规则。 jackz007 发表于 2021-1-6 16:41
道理很简单,因为 '{{0}}' 并非合法的转义,使用功能的前提是,必须严格遵守规则。
如果 '{{0}}'.format('不打印'),是非法转义,没有严格遵守规则,那么为何没有报错,却打印了前半部分呢? Peteryo01223 发表于 2021-1-6 16:45
如果 '{{0}}'.format('不打印'),是非法转义,没有严格遵守规则,那么为何没有报错,却打印了前半部分呢 ...
一般是因为程序存在严重的逻辑错误,无法继续执行才会结束并报错,比如,打开和读取一个并不存在的文件,被零除等等,格式描述符的问题显然并没有严重到这个程度。 jackz007 发表于 2021-1-6 16:52
一般是因为程序存在严重的逻辑错误,无法继续执行才会结束并报错,比如,打开和读取一个并不存 ...
好的,谢谢啦,我理解了! Peteryo01223 发表于 2021-1-6 17:47
好的,谢谢啦,我理解了!
问题解决了吗LZ 心驰神往 发表于 2021-1-11 10:00
问题解决了吗LZ
解决了,我马上给Jackz一个最佳。 Peteryo01223 发表于 2021-1-11 10:02
解决了,我马上给Jackz一个最佳。
谢谢了
页:
[1]