打印(s %% s)在这里是什么意思?

bozeng
s='s=%r;print(s%%s)';print(s%s)

我理解%的(但实际上谁取代?)也许更耐人寻味的是,为什么用s替换的东西在一个字符串print(s%%s)成为print(s%s)后自动%s被换成了s自己?

布莱克金

"%%"你在代码中看到的是“转换说明”对于上了年纪的字符串格式的printf风格

大多数转换说明符告诉Python如何转换传递给%format运算符的参数(例如,"%d"说将下一个参数转换为十进制整数,然后再将其插入字符串)。

"%%"有所不同,因为它直接转换为单个"%"字符,而无需使用参数。格式字符串规范中需要进行此转换,因为否则,任何转换都"%"将被视为其他代码的第一部分,并且没有简单的方法来产生包含百分号的字符串。

您显示的代码是一个quine(一个程序,它产生自己的代码作为输出)。运行时print(s%s),它将执行字符串格式化操作,其中格式字符串和单个参数都是相同的字符串s

"%r"字符串中in是一个转换说明符,它执行repr其参数a。repr在字符串上产生带引号的字符串。这是输出中带引号的字符串来自的地方。

"%%"生产%操作两者之间出现s在的print电话。如果中仅"%"包含一个s,则会出现有关格式化操作的错误消息,需要第二个参数(因为这%s是另一个转换说明符)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

句子[:]在这里是什么意思?

来自分类Dev

999在这里是什么意思?

来自分类Dev

句子[:]在这里是什么意思?

来自分类Dev

冒号在这里是什么意思?

来自分类Dev

“ / mnt / dir”在这里是什么意思?

来自分类Dev

“ cin.exceptions”和“ exception”在这里是什么意思

来自分类Dev

字符串函数在这里是什么意思

来自分类Dev

可选功能在这里是什么意思?

来自分类Dev

-z标志在这里是什么意思

来自分类Dev

Python:%s 在这里做什么?

来自分类Dev

角色扮演游戏-+ =在这里是什么?

来自分类Dev

s [-1] = 0是什么意思?

来自分类Dev

(* s在OCaml中是什么意思?

来自分类Dev

在printf中“%。#s”是什么意思?

来自分类Dev

Elixir中的“?\ s”是什么意思?

来自分类Dev

“ ss -s”的输出是什么意思?

来自分类Dev

--limit 5 / s是什么意思?

来自分类Dev

为什么在这里使用Python打印花括号?

来自分类Dev

为什么printf在这里不打印?

来自分类Dev

为什么Python在这里打印出多个值?

来自分类Dev

扭曲的追溯中的“ <异常捕获在这里>”行是什么意思?

来自分类Dev

Ruby 中的“x 的先前定义在这里”是什么意思?

来自分类Dev

[%'= {$ percentageDone} s>%-{$ percetageLeft} s]是什么意思?

来自分类Dev

openssl s_client,s / i是什么意思?

来自分类Dev

-S在gksu中是什么意思--S mount…?

来自分类Dev

什么是'/ [AZ] / s | | / | gp'是什么意思?

来自分类Dev

NagiosXI:通知选项“ s”是什么意思?

来自分类Dev

S3策略版本是什么意思?

来自分类Dev

“通过按Ctrl + S暂停输出”是什么意思?