这些python函数有什么区别?

这些python函数有什么区别?

这有什么区别:

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

相关内容