-4
def pangram(s):
    check=""
    small=s.lower()
    combine=small.replace(" ","")
    for i in combine:
        if i in check:
            return False
        else:
            check+=i
    return True
print(pangram("The quick brown fox jumps over the lazy dog"))

注意:Pangrams 是包含字母表中的每个字母至少一次的单词或句子。

例如:“敏捷的棕狐跳过懒惰的狗”

我无法找出我的代码有什么问题,请帮助!

4

9 回答 9

3

您可以使用此代码段

import string

def ispangram(sentence, alphabet=string.ascii_lowercase): 
    return set(alphabet) <= set(sentence.lower()) 

print(ispangram(input('Sentence: ')))

set(alphabet)创建一组给定字母表的所有字符。

set(sentence.lower())创建一组小写输入句子的所有字符。

比较set(alphabet) <= set(sentence.lower()检查句子的字符是否至少是字母表的字符。

于 2019-12-07T10:17:55.173 回答
0
    import string
    alphabet = set(string.ascii_lowercase) 
    def ispangram(str):
         return not set(alphabet) - set(str)
    string = 'the quick brown fox jumps over the lazy dog'
    if(ispangram(string) == True): 
        print("Yes") 
    else: 
        print("No") 
于 2019-12-07T11:22:11.047 回答
0
def is_panagram(sentence):
alp='abcdefghijklmnopqrstuvwxyz' # define a alp with all alphabets(alp)
for letter in alp:             # checking every letter is present in alp.
    if letter in sentence.lower(): # string.lower to avoid case difference
        return True           # return only if all alp is present in sentence
return False                  # return false if it fails

Panagram-字母表中的每个单词都出现在给定的句子中。

创建一个字母字符串 (alp) 使用函数 (sentence) 获取运行时输入 检查 alp 中的每个字母在使用 string.lower() 转换为较低后是否存在于给定句子中返回 True,False - 相应地

我是新手,参考 geeksforgeeks.org 的代码 .. 很高兴学习

于 2020-01-17T06:49:47.547 回答
0

这是我的贡献。

print("Yes" if len(set(filter(lambda x: x.isalpha(), input().lower()))) == 26 else "No")
于 2021-01-24T12:03:45.350 回答
0

你可以使用它来设置

集合对象是不同的可散列对象的无序集合。

import string


def is_pangram(s, alphabet=string.ascii_lowercase):
    return set(alphabet) == set(s.replace(" ", "").lower())


text = "The quick brown fox jumps over the lazy dog"
assert is_pangram(text) is True

text = "Some text for testing"
assert is_pangram(text) is False
于 2019-12-07T10:20:05.560 回答
0

你的策略会失败。对于字符串中的每个字符,“combine”,您正在检查您之前是否见过该字符。pangram 可以有重复的字符。您要做的是检查输入字符串“s”是否包含字母表中的每个字符。下面的代码简单快速,演示了两个非常有用的工具:string 和 set。

import string

def is_pangram(s):
    s = s.lower().replace(" ","")
    return set(s.lower()) >= set(string.ascii_lowercase)
于 2019-12-07T10:26:52.307 回答
-1
# Using Set 
print("Pangram" if len(set([ord(s[i])-ord('a') for i in range(len(s)) if s[i]!=' ']))==26 else "Not Pangram")```
于 2021-01-12T14:17:40.830 回答
-1
import string
import re
def pangram(s):
    s = s.lower() # convert the string to lowercase
    s = re.compile('[^a-z]').sub('',s) # string after removing non English alphabets
    return len(set(s)) == len(string.ascii_lowercase)

我希望这能解决你的问题。

在这里,我们将字符串转换为小写,然后消除所有不需要的字符。然后找出唯一值并检查长度是否与英文字母中的字符数相同。

于 2019-12-07T11:00:41.743 回答
-2
import re
def pangram(s):
    s = s.lower()
    s = re.compile('[^a-z]').sub('',s) # string after removing non English alphabets
    return len(set(s)) == 26

试试这个代码。在这里,我们将字符串转换为小写,然后消除所有不需要的字符。然后找出唯一值并检查长度是否与英文字母中的字符数相同。

于 2019-12-07T10:06:02.597 回答