我使用的是Python 2.7.3,并试图理解为什么这个脚本不按顺序执行print语句。即,在第二个for循环之后打印"-“。
我的脚本:
def cheeseshop(kind, *arguments, **keywords):
print "-- Do you have any", kind, "?"
print "-- I'm sorry, we're all out of", kind
for arg in arguments:
print arg
print "-" * 40
keys = sorted(keywords.keys())
for kw in keys:
print kw, ":", keywords[kw]
cheeseshop("Limburger", "It's very runny, sir.",
"It's really very, VERY runny, sir.",
{'shopkeeper':'Michael Palin',
'client':"John Cleese",
'sketch':"Cheese Shop Sketch"})输出:
-- Do you have any Limburger ?
-- I'm sorry, we're all out of Limburger
It's very runny, sir.
It's really very, VERY runny, sir.
{'shopkeeper': 'Michael Palin', 'sketch': 'Cheese Shop Sketch', 'client': 'John Cleese'}
----------------------------------------为什么要像预期的那样在字典之前打印"-"*40?
发布于 2013-01-27 02:45:10
您没有将字典作为关键字传入。使用**语法执行此操作:
cheeseshop("Limburger", "It's very runny, sir.",
"It's really very, VERY runny, sir.",
**{'shopkeeper':'Michael Palin',
'client':"John Cleese",
'sketch':"Cheese Shop Sketch"})或者根本不用字典:
cheeseshop("Limburger", "It's very runny, sir.",
"It's really very, VERY runny, sir.",
shopkeeper='Michael Palin',
client="John Cleese",
sketch="Cheese Shop Sketch")https://stackoverflow.com/questions/14540256
复制相似问题