微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用字典进行for循环,但仅在键为单个字符时才有效

如何解决使用字典进行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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?