在Python中创建Pangram函数,但字母T有问题
首次发布,编程新手。我遇到的问题是,当我运行Pangram函数,并将输入字符串转换为一个集合列表时,该列表仍然有多个“t”,但没有其他字母。当我输入“快速棕色狐狸跳过懒狗”时,当我的代码将其转换为一个有组织的列表以匹配字母表时,有两个t。正如你所看到的,我正在使用打印来查看一切都在做什么 ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','t','u','v','w','x','y','z'] 上面是我的输入字符串转换成的,有两个t,但所有其他多个字母都消失了。我还尝试手动将上T设置为下T,并将其他随机字母设置为上,而其他字母没有问题在Python中创建Pangram函数,但字母T有问题,python,Python,首次发布,编程新手。我遇到的问题是,当我运行Pangram函数,并将输入字符串转换为一个集合列表时,该列表仍然有多个“t”,但没有其他字母。当我输入“快速棕色狐狸跳过懒狗”时,当我的代码将其转换为一个有组织的列表以匹配字母表时,有两个t。正如你所看到的,我正在使用打印来查看一切都在做什么 ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','t','u','v','w','x','y',
def ispangram(str1, alphabet=string.ascii_lowercase):
str1 = str1.replace(' ','')
str1 = list(set(str1))
str1 = [letter.lower() for letter in str1]
str1.sort()
print(str1)
alphabet = list(set(alphabet))
alphabet.sort()
print(alphabet)
if str1 == alphabet:
return 'Is Pangram!'
else:
return 'Is not Pangram!'
在收集集合后将字符串转换为小写,应在集合之前将其设置为小写
str1 = list(set(str1.lower()))
您在构建
集之后将字符小写,因此T
和T
被认为是不同的
相反,在构建集之前使用小写:
def ispangram(str1, alphabet=string.ascii_lowercase):
str1 = str1.replace(' ','')
str1 = [letter.lower() for letter in str1]
str1 = list(set(str1))
str1.sort()
print(str1)
或者用更简短的方式:
def ispangram(str1, alphabet=string.ascii_lowercase):
str1 = sorted(set(str1.replace(' ','').lower()))
在将字母组合成一组之前,请先将其小写…谢谢!我从来没有意识到这一点很重要,假设我可以在任何时候使用小写,正如我们所看到的。谢谢!较短的方式看起来更干净,以前从未见过“sorted()”函数。正如你所看到的,我现在正在做一些基本的事情。