Python I';I’我正在尝试对字符串进行排序和设置,以查看它是否与字母表匹配。如果是,我想返回True,但它返回False

Python I';I’我正在尝试对字符串进行排序和设置,以查看它是否与字母表匹配。如果是,我想返回True,但它返回False,python,string,function,sorting,return,Python,String,Function,Sorting,Return,'.join(排序(set(str1.lower()))的输出是'abcdefghijklmnopqrstuvwxyz' 最后有一个空格,这就是它不匹配字母字符串并返回false的原因 我怎样才能修好它?我不熟悉这种语言,所以我可能没有解决它的技能,它可能非常简单,因此感谢帮助:)您在str1中有一个空格 你应该试试这个: '.join(已排序(set(“).join(str1.split()).lower())) 首先从str1中删除所有空格。然后做你已经做过的事 您在str1中有一个空格 你

'.join(排序(set(str1.lower()))
的输出是
'abcdefghijklmnopqrstuvwxyz'

最后有一个空格,这就是它不匹配字母字符串并返回false的原因


我怎样才能修好它?我不熟悉这种语言,所以我可能没有解决它的技能,它可能非常简单,因此感谢帮助:)

您在
str1
中有一个空格
你应该试试这个:

'.join(已排序(set(“).join(str1.split()).lower()))


首先从
str1
中删除所有空格。然后做你已经做过的事

您在
str1
中有一个空格
你应该试试这个:

'.join(已排序(set(“).join(str1.split()).lower()))


首先从
str1
中删除所有空格。然后做你已经做过的事

您可以使用函数strip()轻松解决此问题,此函数有助于删除输出中的其他空格,如下所示:

导入字符串
def ispangram(str1,字母表=字符串。ascii_小写):
output=''.join(已排序(set(str1.lower()))).replace(“,”)
返回输出==字母表
您可以阅读中的strip()函数和其他内置函数

编辑: 如前所述,由于空格可能位于其他部分,而不仅仅是结尾的开头,因此我正在编辑以使用replace()函数


如果有帮助,请告诉我!:D

使用函数strip()可以轻松解决此问题,此函数有助于删除输出中的其他空格,如下所示:

导入字符串
def ispangram(str1,字母表=字符串。ascii_小写):
output=''.join(已排序(set(str1.lower()))).replace(“,”)
返回输出==字母表
您可以阅读中的strip()函数和其他内置函数

编辑: 如前所述,由于空格可能位于其他部分,而不仅仅是结尾的开头,因此我正在编辑以使用replace()函数


如果有帮助,请告诉我!:D

您应该首先删除字母表中没有的任何内容

import string

def ispangram(str1, alphabet=string.ascii_lowercase):
    return ''.join(sorted(set(str1.lower()))) == alphabet
ispangram("The quick brown fox jumps over the lazy dog")

你应该先删除字母表中没有的东西

import string

def ispangram(str1, alphabet=string.ascii_lowercase):
    return ''.join(sorted(set(str1.lower()))) == alphabet
ispangram("The quick brown fox jumps over the lazy dog")

你真正想知道的是字母表中的每个元素是否都在字符串中。如果字符串可以包含标点符号和空格,您可能不希望它们干扰您的测试。您可以做的是创建一组测试字符串和字母表,并使用


这还有避免排序的额外好处。

您真正想知道的是字母表中的每个元素是否都在字符串中。如果字符串可以包含标点符号和空格,您可能不希望它们干扰您的测试。您可以做的是创建一组测试字符串和字母表,并使用


这还有避免排序的额外好处。

反转当前测试:测试
字母表中的所有字符是否都出现在
str1
中:

导入字符串
def ispangram(str1,字母表=字符串。ascii_小写):
return(all(str1中的char.lower()表示字母表中的char))
打印(iPangram(‘看《危险!》,亚历克斯·特雷贝克有趣的电视问答游戏’))

如果所有
x
元素的计算结果均为True,则返回
True
<用于字母表中字符的code>char.lower()迭代
字母表
,并测试其每个字符(放入
char
)是否出现在
str1.lower
中。一旦失败,
all
返回
False
,否则返回
True

反转当前测试:测试
字母表中的所有字符是否出现在
str1
中:

导入字符串
def ispangram(str1,字母表=字符串。ascii_小写):
return(all(str1中的char.lower()表示字母表中的char))
打印(iPangram(‘看《危险!》,亚历克斯·特雷贝克有趣的电视问答游戏’))


如果所有
x
元素的计算结果均为True,则返回
True
<用于字母表中字符的code>char.lower()迭代
字母表
,并测试其每个字符(放入
char
)是否出现在
str1.lower
中。一旦失败,
all
将返回
False
,否则返回
True

什么是
str1
?空格必须在您给函数的参数中。@MarkMeyer现在编辑了它,抱歉。这是函数callWhat is
str1
?空格必须在给函数的参数中。@MarkMeyer现在编辑了它,抱歉。这是函数call中的字符串。它假设空格总是在开头或结尾。从这个意义上说,让我来为您更改它!所以我想说清楚。strip只删除结尾或结尾的空格?这假设空格始终位于开头或结尾。从这个意义上说,让我为您更改它!所以我想说清楚。strip只删除结尾或结尾的空格?啊,很抱歉之前的评论垃圾。另外一个
排序的
使Pythons小于3.8时可以使用它。@usr2564301为什么说小于3.8?这将使3.8版也能运行。@HeapOverflow:嗯。。。我假设Barmar是最新的-我不是,在我当前的IDE中-他一定测试过了,对吗?@HeapOverflow你是我的测试者:)啊,很抱歉之前的评论垃圾邮件。另外一个
排序的
使Pythons小于3.8时可以使用它。@usr2564301为什么说小于3.8?这将使3.8版也能运行。@HeapOverflow:嗯。。。我假设巴尔马是最新的-我
import string

def ispangram(str1, alphabet=string.ascii_lowercase):
    return set(str1.lower()) >= set(alphabet)


ispangram("The brown quick fox jumps over the lazy dog") 
# true
ispangram("The brown (quick) fox jumps over the lazy dog?")
#true

ispangram("The quick fox jumps over the lazy dog")
#false