我正在编写一个代码,用于从随机字符串中排除字母表,这是它的草稿:
def SortLetter(nonsense):
for words in nonsense:
if words.isalpha():
return words
print (SortLetter("T/h,e1?Lyin]gC[a067k186e"))
结果:
T
预期结果:
The Lying Cake
似乎只返回第一个字母。我怎么能解决这个问题? (我不想直接从代码中打印出来)
谢谢!
答案 0 :(得分:0)
你的亲密关系。问题是你在迭代字母而不是单词。你需要将你的信件收集成文字,然后将其归还。 IE:
def SortLetter(nonsense):
words=""
for letter in nonsense:
if letter.isalpha():
words += letter
return words
print (SortLetter("T/h,e1?Lyin]gC[a067k186e"))
返回:
TheLyingCake
答案 1 :(得分:0)
此外,您可以通过更多"通用方式回答您的问题"像这个例子:
def sort_letters(nonsense = ""):
for word in nonsense:
if word.isalpha():
yield word
print("".join(sort_letters("T/h,e1?Lyin]gC[a067k186e")))
输出:
TheLyingCake
否则,如果你想获得你给出的确切输出,你可以使用上面相同的sort_letters()
方法尝试这样的事情:
data = "".join(sort_letters("T/h,e1?Lyin]gC[a067k186e"))
pretty_output = data[0] + "".join([" " + k if k.istitle() else k for k in data[1:]])
# Or, like this way
# data = list(sort_letters("T/h,e1?Lyin]gC[a067k186e"))
# pretty_output = data[0] + "".join([" " + k if k.istitle() else k for k in data[1:]])
print(pretty_output)
输出:
The Lying Cake