如何通过词典将我已经放入列表中的句子翻译为莫尔斯代码?代码:
print("Write your sentence:")
running = True
while running == True:
morsecode = {
"A" : ".-",
"B" : "-...",
"C" : "-.-.",
"D" : "-..",
"E" : ".",
"F" : "..-.",
"G" : "--.",
"H" : "....",
"I" : "..",
"J" : ".---",
"K" : "-.-",
"L" : ".-..",
"M" : "--",
"N" : "-.",
"O" : "---",
"P" : ".--.",
"Q" : "--.-",
"R" : ".-.",
"S" : "...",
"T" : "-",
"U" : "..-",
"V" : "...-",
"W" : ".--",
"X" : "-..-",
"Y" : "-.--",
"Z" : "--..",
"a" : ".-",
"b" : "-...",
"c" : "-.-.",
"d" : "-..",
"e" : ".",
"f" : "..-.",
"g" : "--.",
"h" : "....",
"i" : "..",
"j" : ".---",
"k" : "-.-",
"l" : ".-..",
"m" : "--",
"n" : "-.",
"o" : "---",
"p" : ".--.",
"q" : "--.-",
"r" : ".-.",
"s" : "...",
"t" : "-",
"u" : "..-",
"v" : "...-",
"w" : ".--",
"x" : "-..-",
"y" : "-.--",
"z" : "--..",
"0" : "-----",
"1" : ".----",
"2" : "..---",
"3" : "...--",
"4" : "....-",
"5" : ".....",
"6" : "-....",
"7" : "--...",
"8" : "---..",
"9" : "----.",
"." : ".-.-.-",
"," : "--..--",
"" : "No valid input.",
" " : " "
}
eingabe = input()
liste = list(eingabe)
print(liste)
for str in liste:
print(morsecode[liste])
答案 0 :(得分:1)
要做到这一点,你不需要做一个清单。将最后一行更改为:
eingabe = input()
for char in eingabe:
print(morsecode[char])
答案 1 :(得分:1)
这将循环一遍又一遍地将句子转换为莫尔斯代码
while True:
string = input("Input a sentence: ")
for char in string.upper():
if char in morse:
print(morse[char])
else:
print(char)
并且没有必要在morsecode字典中同时包含大写和小写字母。即:
morse = {
"A" : ".-",
"B" : "-...",
"C" : "-.-.",
"D" : "-..",
"E" : ".",
"F" : "..-.",
"G" : "--.",
"H" : "....",
"I" : "..",
"J" : ".---",
"K" : "-.-",
"L" : ".-..",
"M" : "--",
"N" : "-.",
"O" : "---",
"P" : ".--.",
"Q" : "--.-",
"R" : ".-.",
"S" : "...",
"T" : "-",
"U" : "..-",
"V" : "...-",
"W" : ".--",
"X" : "-..-",
"Y" : "-.--",
"Z" : "--..",
"0" : "-----",
"1" : ".----",
"2" : "..---",
"3" : "...--",
"4" : "....-",
"5" : ".....",
"6" : "-....",
"7" : "--...",
"8" : "---..",
"9" : "----.",
"." : ".-.-.-",
"," : "--..--",
}
答案 2 :(得分:0)
您绝对不需要while循环,如果您这样做(多次执行),则无需重新定义每次迭代的映射。
除此之外,当您传递其元素时,您应该将整个列表传递给字典(您应该将i
命名为str
{{1} }})。由于列表不能用作字典键(由于它们不可清除),因此这是一个错误。
简而言之:
print("Write your sentence:")
morsecode = # as defined
liste = list(input())
for i in liste:
print(morsecode[i])
此处不需要列表,因为字符串是您可以迭代的序列,但是,这不是一个太大的问题。
就足够了。如果你需要不断获得输入,那么需要while循环,但你还需要一个循环为break
的条件;不要让它继续执行。