Python 如何从代码中排除非字母字符?

Python 如何从代码中排除非字母字符?,python,Python,您可以使用isalpha方法检查它是否为字母 #when I run it, it says something about a function discrimination being at 0x0E.... import string import sys code = raw_input("Enter your code: ") translation = {"a": "d", "b": "e", "c": "f", "d": "g", "e": "h", "f": "i", "g

您可以使用
isalpha
方法检查它是否为字母

#when I run it, it says something about a function discrimination being at 0x0E....

import string
import sys

code = raw_input("Enter your code: ")

translation = {"a": "d", "b": "e", "c": "f", "d": "g", "e": "h", "f": "i", "g": "j", "h": "k", "i": "l", "j": "m", "k": "n", "l": "o", "m": "p", "n": "q", "o": "r", "p": "s", "q": "t", "r": "u", "s": "v", "t": "w", "u": "x", "v": "y", "w": "z", "x": "a", "y": "b", "z": "c"}

lettered_code = list(code)

def translate(lettered_code):
    newanswer = ""
    for letters in lettered_code:
        newanswer += translation[letters]
    return newanswer

def checking(translate):
    return all((char in string.letters) for char in translate)

def discrimination(translate):
    if checking == False:
        print "Only letters!"
    else: 
        print translate(lettered_code)
    sys.exit()

print discrimination

您的
print discrimination
正在打印函数对象

您不应该将translate称为歧视变量…例如:

translation = {"a": "d", "b": "e", "c": "f", "d": "g", "e": "h", "f": "i", "g": "j", "h": "k", "i": "l", "j": "m", "k": "n", "l": "o", "m": "p", "n": "q", "o": "r", "p": "s", "q": "t", "r": "u", "s": "v", "t": "w", "u": "x", "v": "y", "w": "z", "x": "a", "y": "b", "z": "c"}

s = 'this is a test 123 that has numbers456 in the wr48ds'
newS = ''
for letter in s:
    if letter.isalpha():
        newS += translation[letter]
    else:
        newS += letter

>>> newS
'wklv lv d whvw 123 wkdw kdv qxpehuv456 lq wkh zu48gv'
但这只会让你走这么远。。。只要您只输入字母,它就可以工作。。。
您应该考虑重做所有这些功能。< /P>请格式化您的代码并发布确切的错误消息。<代码>打印识别(翻译(ASDF))<代码> >在0x01E8D5F0上进行函数识别。非常破碎。我会考虑通过教程第一次工作。你需要一个函数调用后的括号。您只是打印出函数对象。我认为他不想让数字通过,所以可能不需要else语句将它们添加到新字符串中。。。或者:打印“仅限字母!”并退出()
def discrimination():
    if checking == False:
        print "Only letters!"
    else: 
        print translate(lettered_code)
    sys.exit()


discrimination()  # don't need the print statement here either