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 isstr1
?空格必须在给函数的参数中。@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