-1

我正在尝试使用 .pop 检查 pangram 并具有以下代码,但得到错误“'str' object has no attribute 'pop'”。我是编程新手。请帮忙。

import string

def ispangram(str1, alphabet=string.ascii_lowercase):
    for x in str1:
        if x in alphabet:
            alphabet.pop[0]
        else:
            pass
    return len(alphabet)==0
4

2 回答 2

0

列表和字典对象只有pop方法。您正在尝试删除字符串第 0 个索引中的字符。因此你可以试试这个:

def ispangram(str1, alphabet=string.ascii_lowercase):
    for x in str1:
        if x in alphabet:
            alphabet = alphabet[1:]
        else:
            pass
    return len(alphabet)==0

输出

print (ispangram("The quick brown fox jump over the lazy dog", "s"))

False
于 2020-05-03T17:13:43.940 回答
0

一种方法是使用集合

import string 

def check(s):
    """ 
    Return True if string s is Panagram
    """
    alphabet=string.ascii_lowercase
    return set(alphabet) - set(s.lower()) == set([])

PS:如果您想查看对象的属性/方法,只需使用dir(<object>)

于 2020-05-03T17:15:09.063 回答