我正在麻省理工学院开放课程,并且在第一次测验中有这段代码。
def f(s):
d = {}
for c in s:
if c in d.keys():
d[c] += 1
else: d[c] = 1
print d
x = None
for k in d.keys():
if x == None:
x = d[k]
y = k
elif d[k] > x:
x = d[k]
y = k
return y
有问题的是:
是f total,即是否为str的所有s值定义?
我认为f是完全的,因为字符串中的任何内容(包括数字和特殊字符)都可以通过代码。我甚至关闭了吗?
答案 0 :(得分:7)
唯一无法工作的情况是空字符串,如果他们认为是有效的字符串(我会作为边缘情况)。对于s = ''
,永远不会定义y
,您将获得
UnboundLocalError: local variable 'y' referenced before assignment
对于所有非空字符串,是的,函数是" total"。根据{{3}} a"总函数"定义为
为所有可能的输入值定义的函数。