这有什么区别:
def total(initial=10, *numbers, **keywords):
count = initial
for fake in numbers:
count = count + fake
for key in keywords:
count = count + keywords[key]
return count
print total(10, 5, fruits=10)
和这个:
def total(initial=10, *numbers, **keywords):
count = initial
for fake in numbers:
count = count + fake
for key in keywords:
count = count + key
return count
print total(10, 5, fruits=10)
我不明白的是,在第一个程序中它接受关键字,而在第二个程序中我一直收到有关关键字的错误!!
答案1
两个代码片段之间只有一个变化,第一个使用:
count = count + keywords[key]
而第二个使用:
count = count + key
对于第一种情况,您要获取字典中键的值,然后将该值添加到前一个计数中。
而在第二种情况下,您将键(字符串)本身添加到整数计数中,这会引发预期的错误。
这会让你更清楚:
#!/usr/bin/env python2
def total(initial=10, *numbers, **keywords):
count = initial
for fake in numbers:
count = count + fake
for key in keywords:
print 'key is: ' + key
print 'keyword is: ' + str(keywords)
count = count + keywords[key]
return count
我添加了两行来检查我的输入被解释为的值。
现在当我跑步时:
print total(10, 5, fruits=10)
它给:
key is: fruits
keyword is: {'fruits': 10}
25
我建议你先了解一下基本情况数据类型用于python
。