这里是初学者-- 给定一个字符串,我的代码必须检测它是否是pangram。如果是,则返回True;如果不是,则返回False。它应该忽略数字和标点符号
当给出“ABCD45EFGH,IJK,lmnopqr56stuv3xyz”时,它返回无,当给出“这不是一个pangram!不是一个pangram!”时,当答案应该为False时,它返回True
这不是一个庞格拉姆!这不是一个庞格拉姆。我没有看到什么
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-z的相交长度为26,那么它就是一个pangram
您可以继续使用集合及其方法
.difference
,以确定所有字符集合中是否有更多字符或没有差异(在此之前,您需要将字符串从标点符号(和空格)中去掉,并使其小写(通过字符串的.lower
和.translate
和.maketrans
方法完成):如果仍要使用列表执行此操作:
相关问题 更多 >
编程相关推荐