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

Python if-else菜单实现、print格式化及功能测试问题咨询

Python控制台售货机程序常见问题解答
  • 1. 是否可通过if else语句实现与参考代码一致的菜单显示效果

    完全可以。现有参考代码用的是嵌套三元表达式,拆分为标准if-else分支后逻辑完全等价,可读性更高。注意判断顺序要和原有逻辑对齐:优先判断库存状态,库存充足时再校验投币金额,避免逻辑错乱。
    对应实现代码:

    status = ""
    # 优先判断库存
    if stock_a <= 0:
        status = "Sold out"
    else:
        # 库存充足再判断金额
        if amount < item_a:
            status = "Insufficient coins"
        else:
            status = "Available"
    print("A. Snack 1 - - - - - - - - - - - - - $1.80: {}".format(status))
    

    上述代码和提供的参考三元表达式运行效果完全一致,没有任何逻辑差异。

  • 2. 不使用{}实现当前金额打印的方法

    最简便的方式是直接使用Python兼容的C风格%格式化语法,不需要用到大括号占位符:

    # 直接用%.2f占位保留两位小数
    print("Current amount: $%.2f" % (amount / 100))
    

    也可以直接做字符串拼接实现,完全不依赖格式化占位符:

    print("Current amount: $" + "%.2f" % (amount / 100))
    
  • 3. 不使用{}实现无效选中提示打印的方法

    同样可以通过%格式化或者字符串拼接实现:

    # %s接收字符串参数
    print("Selection %s not on menu." % insert.upper())
    
    # 字符串拼接写法
    print("Selection " + insert.upper() + " not on menu.")
    
  • 4. 测试程序卡滞触发逻辑的输入内容

    这类控制台程序的卡滞基本都来自输入校验缺失,对应测试用输入分三类:

    • 非法选项输入:输入菜单选项范围外的内容,比如菜单仅支持A/B/C/D选品时,输入数字、特殊符号、长度大于1的随机字符串(例如123、xyz、!@#),测试程序是否会因无法匹配选项进入死循环
    • 空值输入:连续多次直接按回车提交空内容、输入全空格内容,测试程序是否会因未做空值校验卡在等待输入状态
    • 极端值输入:输入长度极大的字符串、混合不可见字符的内容,测试输入处理逻辑是否会异常阻塞

内容的提问来源于stack exchange,提问作者yam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:18:21