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
我的代码在每种情况下都无法返回True。
我在exercism.io上使用了指导模式,但是python跟踪被超额订阅,并且仅提供有关主要练习的反馈。
我希望这里的python向导可以指出我的错误。非常感谢。...
答案 0 :(得分:0)
任务是检查句子是否包含字母的所有个字母。因此,当您发现句子中没有的第一个字母时,可以确定情况不是(strong>不是)(即return false
),则无法说明相反的情况(即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的,鲜为人知且很少使用的for/else
语言功能see docs:for
循环可能有一个else
子句,当循环“正常退出”时会调用该子句”(即不会因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