Python摩尔斯电码转换程序:输入文本后如何按*返回主菜单?
摩尔斯电码转换程序修改方案
原程序选择功能1完成文本转摩尔斯码后会自动返回主菜单,现修改为转换完成后,用户按下*键才返回主菜单,以下是修改后的完整代码:
# 定义摩尔斯码字典(包含土耳其语支持的字母与数字) morse_alfabesi = { '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': '----.' } kontrol = "" metin = "" isInProcess = True while isInProcess: userChoose = input("çıkmak için 'x' e basın, metni morse alfabesine çevirmek için 1' e ,morse alfabesini metine çevirmek için 2' ye basın.") if userChoose == "x": isInProcess = False elif userChoose == "1": print("metni morse alfabesine dönüştürüyorsunuz.") # 添加内部循环,控制是否停留在文本转换功能中 is_converting = True while is_converting: metin = input("Lütfen morse alfabesine çevirilmek istediğiniz metni giriniz (ana menüye dönmek için '*' yazın).").lower() # 判断是否触发返回主菜单的条件 if metin == "*": is_converting = False continue morseMetni = "" kontrol = "" for karakter in metin: if karakter in morse_alfabesi: morseMetni += morse_alfabesi.get(karakter) + " " # 字符间添加空格,优化可读性 elif karakter == " ": morseMetni += " " else: kontrol += " " + karakter print('sonuc:', morseMetni) if kontrol != "": print(f"Hatalı Karakter girdiniz!: ({kontrol}) Lütfen sadece alfabe ve rakam karakterlerini kullanınız.") elif userChoose == "2": print("morse alfabesini metine dönüştürüyorsunuz.") # 可在此补充功能2的实现逻辑
关键修改说明
- 补充了缺失的
morse_alfabesi字典,确保程序能正常运行 - 在功能1分支内新增
is_converting内部循环,支持用户连续转换文本 - 修改输入提示,明确告知用户输入
*可返回主菜单 - 优化摩尔斯码输出格式,每个字符后添加空格,提升可读性
内容的提问来源于stack exchange,提问作者salih gürbüz
相关产品推荐
相关产品推荐

