【发布时间】:2021-12-11 07:46:36
【问题描述】:
这里是初学者—— 给定一个字符串,我的代码必须检测它是否是一个 pangram。如果是则返回True,否则返回False。它应该忽略数字和标点符号。
当给出“ABCD45EFGH,IJK,LMNOPQR56STUVW3XYZ”时,它返回无,当给出“这不是一个 pangram!不是一个 pangram”时。当答案应该为 False 时,它返回 True。
这不是一个pangram!不是一个pangram。我没看到什么?
import string
def is_pangram(s):
singlechar = set(s)
list = ['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']
for index, item in enumerate(singlechar):
if item in list:
list.remove(item)
if list:
return True
break
if not list:
return False
【问题讨论】:
-
对于计算机,“A”与“a”不同。不要使用 list 作为变量名,它是保留关键字。您的检查条件必须在您用尽列表或所有单个字符后发生。
-
你的条件倒退了。
if list表示你没有使用每个字母,if not list表示你有。 -
如果你
import string,那么也使用lst = list(string.ascii_lowercase)而不是list = [...](不要使用list作为变量名)
标签: python arrays detection pangram