You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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()

关键改动说明

  1. 添加无限循环:用while True包裹输入和操作执行逻辑,程序会持续等待用户输入,直到选择99触发break退出循环。
  2. 优化菜单显示:把菜单打印放在循环外,避免每次操作重复打印,节省TI计算器的屏幕空间;如果需要每次操作后重新显示菜单,把菜单的for循环移到while循环内部即可。
  3. 调整退出逻辑:把原options中的exit()换成None,在循环内单独判断选择99时退出,避免直接调用exit()导致的强制退出,逻辑更可控。
  4. 界面优化:输入提示前加换行符\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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 12:01:44