如何解决使用字典进行for循环,但仅在键为单个字符时才有效
我尝试使用字典和for循环制作一个迷你语言翻译器,但只有键是单个字符时,它才有效。如果密钥超过2个字母,它将打印出默认值。有什么问题吗?
words_to_translate = input("Please type the words to translate ")
eng_to_ger = {
"apple": "apfel","black": "schwarz","1": "eins","2": "zwei","3": "drie"," ": " "
}
output = ""
for words in words_to_translate:
output += eng_to_ger.get(words,"!")
print(output)
例如:
如果我输入1 2
,它会根据需要打印出eins zwei
,但是当我输入apple
时,它会打印出!!!!!
解决方法
input()
返回一个字符串。当您遍历字符串时,它遍历单个字符。即
my_str = "abcdef"
for e in my_str:
print(e)
输出:
a
b
c
d
e
f
您真正想要的是遍历单词,这可以通过在空白处分割字符串来完成。因此,您可以通过.split()
进行此操作:
words_to_translate = input("Please type the words to translate ").split() # splits on whitespace by default (i.e. space/tabs)
for word in words_to_translate:
# rest of the code
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。