我对python很新,所以如果这是一个愚蠢的问题,请原谅我。我知道如何以这种方式在字符串中使用模数
Me = "I'm %s and I like to %s" % ('Mike', 'code')
然而,通过我的搜索,我还没有找到答案,是否可以将模数硬编码为字符串,然后再利用它。
示例:
REPO_MENU = {'Issues':Api.github/repo/%s/branch/%s/issues,
'Pull Requests':'Api.github/repo/%s/branch/%s/pull_requests',
'Commits':'Api.github/repo/%s/branch/%s/commits'
'<FILTER>: Branch':'Api.github/repo/%s/branch/%s'
}
for key, value in REPO_MENU.items():
Print value % ('Beta', 'master')
这种格式有用吗?使用这种方法是一种好习惯吗?我觉得它在很多情况下都会有所帮助。
答案 0 :(得分:1)
这确实有效。您也可以使用格式功能,效果很好。例如:
menu1 = {'start':'hello_{0}_{1}',
'end':'goodbye_{0}_{1}'}
menu2 = {'start':'hello_%s_%s',
'end':'goodbye_%s_%s'}
for key, value in menu1.items():
print value.format('john','smith')
for key, value in menu2.items():
print value %('john','smith')
答案 1 :(得分:1)
%
是一个像其他任何人一样的运营商;当它的左侧操作数是一个字符串时,它会尝试用右侧操作数中的值替换各种占位符。如果左侧操作数是字符串文字或更复杂的表达式,只要它计算为字符串就无关紧要。
答案 2 :(得分:1)
正如其他答案所指出的那样,你绝对可以在同一个字符串上多次执行字符串模运算。但是,如果你使用的是Python 3.6(如果可以,你肯定应该!),我建议你use fstrings而不是字符串模数或.format
。它们是faster,更易于阅读,而且非常方便:
格式化的字符串文字或字符串字符串是以&#39; f&#39;为前缀的字符串文字。或者&#39; F&#39;。这些字符串可能包含替换字段,这些字段是由大括号{}分隔的表达式。虽然其他字符串文字总是具有常量值,但格式化字符串实际上是在运行时计算的表达式。
因此f-string也是可移植的,就像其他格式化选项一样。
E.g:
>>> value = f'A {flower.lower()} by any name would smell as sweet.'
>>> flower = 'ROSE'
>>> print(value)
A rose by any name would smell as sweet.
>>> flower = 'Petunia'
>>> print(value)
A petunia by any name would smell as sweet.
>>> flower = 'Ferrari'
>>> print(value)
A ferrari by any name would smell as sweet.
您可以使用f-string将其添加到任何模块的顶部,作为其他用户(或未来您)的有用提醒:
try:
eval(f'')
except SyntaxError:
print('Python 3.6+ required.')`.
raise