Мне нужно преобразовать введенную пользователем строку в азбуку Морзе. Наш профессор хочет, чтобы мы это делали, читая из файла morseCode.txt, разделяя буквы из morseCode в два списка, а затем преобразовывая каждую букву в код Морзе (вставляя новую строку, если есть пробел).
У меня есть начало. Он читает файл morseCode.txt и разделяет буквы в список [A, B, ... Z], а коды - в список ['- -. , - - \ n ','. -. -. -. \ П»...]
Мы еще не изучили "наборы", поэтому я не могу это использовать. Как мне тогда взять строку, которую они ввели, пройти по буквам и преобразовать ее в азбуку Морзе? Я немного нагнал Вот что у меня сейчас (совсем немного ...)
РЕДАКТИРОВАТЬ: завершил программу!
# open morseCode.txt file to read
morseCodeFile = open('morseCode.txt', 'r') # format is <letter>:<morse code translation><\n>
# create an empty list for letters
letterList = []
# create an empty list for morse codes
codeList = []
# read the first line of the morseCode.txt
line = morseCodeFile.readline()
# while the line is not empty
while line != '':
# strip the \n from the end of each line
line = line.rstrip()
# append the first character of the line to the letterList
letterList.append(line[0])
# append the 3rd to last character of the line to the codeList
codeList.append(line[2:])
# read the next line
line = morseCodeFile.readline()
# close the file
morseCodeFile.close()
try:
# get user input
print("Enter a string to convert to morse code or press <enter> to quit")
userInput = input("")
# while the user inputs something, continue
while userInput:
# strip the spaces from their input
userInput = userInput.replace(' ', '')
# convert to uppercase
userInput = userInput.upper()
# set string accumulator
accumulateLetters = ''
# go through each letter of the word
for x in userInput:
# get the index of the letterList using x
index = letterList.index(x)
# get the morse code value from the codeList using the index found above
value = codeList[index]
# accumulate the letter found above
accumulateLetters += value
# print the letters
print(accumulateLetters)
# input to try again or <enter> to quit
print("Try again or press <enter> to quit")
userInput = input("")
except ValueError:
print("Error in input. Only alphanumeric characters, a comma, and period allowed")
main()