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

自动售货机编程遇类型错误:TypeError: '>='不支持_Printer与int比较

自动售货机程序错误分析与修复方案

首先咱们来拆解你遇到的 TypeError: '>=' not supported between instances of '_Printer' and 'int' 错误,以及代码里的其他问题:

错误根源分析

  1. 严重的缩进错误:你的代码里所有函数的内部代码都没有正确缩进,比如coinCounter函数定义后,print和credits的定义直接跟在一行,这导致Python无法识别哪些代码属于函数体,变量和函数的作用域完全混乱。
  2. 变量作用域问题:即便修复缩进,credits是coinCounter的局部变量,product函数无法直接访问它,会导致金额比较时的变量未定义问题。
  3. 命名冲突:你在product里同时用output作为布尔变量名和函数名,调用output()时实际是在调用布尔值,这直接引发了类型错误。
  4. 函数调用参数错误:定义的output函数需要2个参数,但调用时没有传参;moneyBack函数定义了参数但内部根本用不到,调用也没传参。
  5. 逻辑细节错误:获取商品名称时用了choosedProduct[1],但choosedProduct是商品键(如"A"),应该用products[choosedProduct][1];金额判断的分支逻辑也有冗余。

修复后的完整代码

products = {"A": [100, "cola"], "B": [100, "drink0"]}

def coinCounter():
    print("Bitte Münzen einwerfen! / Betrag eingeben!")
    credits = int(input("Betrag: "))
    return credits  # 返回投入金额,供后续函数使用

def product(credits):  # 接收从coinCounter传递的金额
    print("Bitte Produkt wählen!")
    choosedProduct = input("Produkt: ").capitalize()
    
    # 先判断商品是否存在
    if choosedProduct not in products:
        print("Das Produkt existiert nicht.")
        return
    
    product_price = products[choosedProduct][0]
    product_name = products[choosedProduct][1]
    
    # 判断金额是否足够
    if credits >= product_price:
        print(f"Das Produkt {product_name} wird ausgegeben...")
        money_back = credits - product_price
        if money_back > 0:
            print(f"Zurück: {money_back}")
    else:
        print("Du hast nicht genug Geld eingeworfen")

def main():
    user_credits = coinCounter()
    product(user_credits)

main()

关键修复点说明

  • 修正缩进:所有函数内部代码都正确缩进,确保Python能识别函数体边界。
  • 变量传递优化:coinCounter返回投入的金额,main函数接收后传递给product,彻底解决作用域问题。
  • 消除命名冲突:移除了嵌套的output和moneyBack函数,直接在product里处理逻辑,避免名称混淆。
  • 逻辑简化:优先判断商品不存在的情况,减少代码嵌套;修正商品名称的获取方式;优化找零逻辑,仅当有找零时才提示。
  • 代码可读性提升:拆分重复的字典索引操作,用变量存储价格和名称,让逻辑更清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:03:57