def donuts(count):
strout = 'Number of donuts %s'
if count >= 10:
%s('many')
else:
%s(str(count))
return strout
我得到了SyntaxError: invalid syntax.
当然可以做到
def donuts(count):
if count < 10:
return 'Number of donuts: ' + str(count)
else:
return 'Number of donuts: many'
但只是想要了,这怎么会有效? 谢谢!
答案 0 :(得分:4)
对于python 2.6+或3.0+使用http://docs.python.org/library/stdtypes.html#str.format:
mystr = "Number of donuts: {}"
...
mystr = mystr.format(count)
答案 1 :(得分:2)
def donuts(count):
format_str = 'Number of donuts %s'
if count >= 10:
return format_str % 'many'
else:
return format_str % count
P.S。不要命名变量str
- 已经有一个名为str
的内置Python函数;通过命名一个可能导致疯狂的变量来遮蔽它。
答案 2 :(得分:2)
howbout:
def donuts(count):
somedonuts = 'Number of donuts %s'
if count >= 10:
somedonuts %= 'many'
else:
somedonuts %= str(count)
return somedonuts
str
用于变量,这已经是一个内置名称(您在自己的代码中进行了整理!)在python提示符下检查dir(__builtins__)
以获取完整列表。%=
格式化字符串并用格式化结果替换变量。 答案 3 :(得分:2)
def donuts(count):
if count >= 10:
resp = 'many'
else:
resp = count
strout = 'Number of donuts %s' %resp
return strout
答案 4 :(得分:1)
字符串插值是字符串和元组的模数(尽管如果它不是元组,则可以使用单个值)。
mystr % ('many',)
mystr % (count,)
答案 5 :(得分:0)
%是二元运算符。左操作数应该是一个字符串,右操作数应该是一个元组,其元素数量与字符串中的格式说明符相同(如果只有一个格式说明符,标量值将起作用)。在您的情况下,您可以像这样使用它:
def donuts(count):
return 'Number of donuts %s' % ('many' if count >= 10 else count)
查看documentation以获取更多信息。