1

我有这个代码:

ALPHABET = string.ascii_uppercase + string.digits + ' _'

def is_correct(mystr):
    # check if the characters in mystr belong to the ALPHABET
    # return True or False

我会做的是:

  1. 获取 mystr 的字母:alphabet1
  2. 检查是否所有字符alphabet1都在 ALPHABET

但我不知道该怎么做 1) 如何获取给定字符串的字母表?以及如何知道是否alphabet1ALPHABET

4

2 回答 2

2
ALPHABET = string.ascii_uppercase + string.digits + ' _'

def is_correct(mystr):
    return set(mystr).issubset(set(ALPHABET))

或者

def is_correct(mystr):
    return all(c in ALPHABET for c in mystr)

或者

def is_correct(mystr):
    for char in mystr:
        if char not in ALPHABET:
            return False
    return True

或者

def is_correct(mystr):
    mystr = set(mystr)
    for char in ALPHABET:
        mystr.discard(char)
    return not mystr
于 2014-04-28T19:27:25.267 回答
0

您还可以使用函数 isalpha - 它会检查字符(或字符串)是否为字母。你不必声明你的字母表

def has_letters(str1):
    str2= list(str1)
    for i in str2:
        if i.isalpha:
            return True
    return False
于 2014-04-28T19:36:54.800 回答