Python选项选择功能循环实现求助(TI-84 Plus CE适用)
给TI-84 Plus CE的Python单位查询工具添加循环功能
修改后的完整代码
def Kilo(): print("1 000 | 10^3 | k") def Mega(): print("1 000 000 | 10^6 | M") def Giga(): print("1 000 000 000 | 10^9 | G") def Tera(): print("1 000 000 000 000 | 10^12 | T") def Peta(): print("1 000 000 000 000 000 | 10^15 | P") def Exo(): print("1 000 000 000 000 000 000 | 10^18 | E") def milli(): print(".001 | 10^-3 | m") def micro(): print(".000 001 | 10^-6 | u") def nano(): print(".000 000 001 | 10^-9 | n") def pico(): print(".000 000 000 001 | 10^-12 | p") def femto(): print(".000 000 000 000 001 | 10^-15 | f") def atto(): print(".000 000 000 000 000 000 001 | 10^-18 | a") def invalid_opt(): print("Invalid choice") options = {"1":["K Kilo",Kilo], "2":["M Mega",Mega], "3":["G Giga",Giga], "4":["T Tera",Tera], "5":["P Peta",Peta], "6":["E Exo",Exo], "7":["m Milli",milli], "8":["u micro",micro], "9":["n nano",nano], "10":["p pico",pico], "11":["f femto",femto], "12":["a atto",atto], "99":["Exit", None]} # 只打印一次菜单,适配TI计算器有限屏幕 for option in options: print(f"{option}) {options[option][0]}") while True: choice = input("\nPlease select: ") # 单独处理退出逻辑,比直接调用exit更可控 if choice == "99": print("Exiting...") break val = options.get(choice) if val is not None and val[1] is not None: action = val[1] else: action = invalid_opt action()
关键改动说明
- 添加无限循环:用
while True包裹输入和操作执行逻辑,程序会持续等待用户输入,直到选择99触发break退出循环。 - 优化菜单显示:把菜单打印放在循环外,避免每次操作重复打印,节省TI计算器的屏幕空间;如果需要每次操作后重新显示菜单,把菜单的
for循环移到while循环内部即可。 - 调整退出逻辑:把原
options中的exit()换成None,在循环内单独判断选择99时退出,避免直接调用exit()导致的强制退出,逻辑更可控。 - 界面优化:输入提示前加换行符
\n,让操作界面更清晰。
针对TI计算器的额外优化建议
考虑到TI计算器的Python环境资源有限,可以简化代码结构,减少函数数量,进一步节省资源:
# 用字典直接存储单位信息,无需单独定义函数 units = { "1": ("K Kilo", "1 000 | 10^3 | k"), "2": ("M Mega", "1 000 000 | 10^6 | M"), "3": ("G Giga", "1 000 000 000 | 10^9 | G"), "4": ("T Tera", "1 000 000 000 000 | 10^12 | T"), "5": ("P Peta", "1 000 000 000 000 000 | 10^15 | P"), "6": ("E Exo", "1 000 000 000 000 000 000 | 10^18 | E"), "7": ("m Milli", ".001 | 10^-3 | m"), "8": ("u micro", ".000 001 | 10^-6 | u"), "9": ("n nano", ".000 000 001 | 10^-9 | n"), "10": ("p pico", ".000 000 000 001 | 10^-12 | p"), "11": ("f femto", ".000 000 000 000 001 | 10^-15 | f"), "12": ("a atto", ".000 000 000 000 000 000 001 | 10^-18 | a"), "99": ("Exit", "") } # 打印菜单 for key, (name, _) in units.items(): print(f"{key}) {name}") while True: choice = input("\nPlease select: ") if choice == "99": print("Exiting...") break entry = units.get(choice) if entry: print(entry[1]) else: print("Invalid choice")
内容的提问来源于stack exchange,提问作者darrenf
相关产品推荐
相关产品推荐

