我的任务是建立一个回文检测器,代码中只剩下一件我无法理解的事情。我已经试图解决它好几天了,现在我在失去理智之前需要一些帮助......
唯一剩下的就是程序从用户输入中删除不需要的字符,并将其替换为空("")。因此,例如,该程序应该能够解释" Anna"和#34; A!N!N!A"作为回文。我必需使用 for-loop 删除字符。
> #the characters that need to be removed
not_valid = "?!\"\'#€%&/-()=? :,"
#user input
user_entry = tkinter.Entry(mid_frame, width = 67)
#variable with the user input, and transforms into lower case characters
text = user_entry.get()
text = text.lower()
所以我需要的是一个for循环,它可以帮助我从not_valid
中获取text
个字符。到目前为止,我一直在尝试的所有代码都没用。我真的很感激能得到的所有帮助!
答案 0 :(得分:2)
您可以使用正则表达式模块和sub
函数
import re
s = re.sub(r'[?!\"\'#€%&\-()=\s:,]', '', s)
s = re.sub(r'\W', '', s) # this will remove all non-alphanumerical chars
with for循环
for c in bad_chars:
s = s.replace(c, '')
答案 1 :(得分:0)
更多"简单"回答(虽然我个人认为第一个答案很简单)你可以循环遍历每个字母,然后使用in
关键字检查该字母是否是not_valid
个字母之一。
以下是一个例子:
text = user_entry.get()
text = text.lower()
not_valid = "?!\"\'#€%&/-()=? :,"
valid = "" #Create a new_variables were only the valid characters are stored
for char in text: #For every character in the text...
if char in not_valid: #If the character is in your not_valid list do not add it
continue
else: #Other wise add it
valid += char
print(valid)