来自 exorcism.io、python track 的 pangram 问题,为什么我的解决方案不起作用?
pangram problem from exorcism.io, python track, why doesn't my solution work?
def is_pangram(sentence):
alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
sentence = sentence.lower()
for x in alf:
if x not in sentence:
return False
else:
return True
我的代码未能return在每种情况下都应该是正确的。
我在 exercism.io 上使用指导模式,但是 python 轨道被超额订阅并且只提供对主要练习的反馈。
我希望这里的 python 向导可以指出我的错误。非常感谢....
任务是检查句子是否包含所有个字母。因此,当您发现 第一个 字母不在句子中时,您可以确定 不是 情况(即 return false
) , 在检查完 all 个字母之前,你不能说相反的(即 return true
)。
def is_pangram(sentence):
alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
sentence = sentence.lower()
for x in alf:
if x not in sentence:
return False
return True
附录:
还有 python-only,鲜为人知且很少使用的 for/else
语言特性 see docs:for
循环可能有一个 else
子句,当循环退出 "normally"(即没有由于 break
、return
或异常而提前停止)。这使得以下代码成为可行的替代方案。与 OP 代码相比,请注意 else
子句的不同缩进。
def is_pangram(sentence):
alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
sentence = sentence.lower()
for x in alf:
if x not in sentence:
return False
else:
return True
def is_pangram(sentence):
alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
sentence = sentence.lower()
for x in alf:
if x not in sentence:
return False
else:
return True
我的代码未能return在每种情况下都应该是正确的。
我在 exercism.io 上使用指导模式,但是 python 轨道被超额订阅并且只提供对主要练习的反馈。
我希望这里的 python 向导可以指出我的错误。非常感谢....
任务是检查句子是否包含所有个字母。因此,当您发现 第一个 字母不在句子中时,您可以确定 不是 情况(即 return false
) , 在检查完 all 个字母之前,你不能说相反的(即 return true
)。
def is_pangram(sentence):
alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
sentence = sentence.lower()
for x in alf:
if x not in sentence:
return False
return True
附录:
还有 python-only,鲜为人知且很少使用的 for/else
语言特性 see docs:for
循环可能有一个 else
子句,当循环退出 "normally"(即没有由于 break
、return
或异常而提前停止)。这使得以下代码成为可行的替代方案。与 OP 代码相比,请注意 else
子句的不同缩进。
def is_pangram(sentence):
alf = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
sentence = sentence.lower()
for x in alf:
if x not in sentence:
return False
else:
return True