我正在尝试检查输入的金额是否足够。 (products
)
但它一直给我这个错误信息。 (TypeError: '>=' not supported between instances of '_Printer' and 'int'
)
products = {
"A": [100, "cola"],
"B": [100, "drink0"]
}
def coinCounter():
print("Bitte Münzen einwerfen! / Betrag eingeben!")
credits = int(input("Betrag: "))
def product():
print("Bitte Produkt wählen!")
choosedProduct = input("Produkt: ").capitalize()
if choosedProduct in products and credits >= products[choosedProduct][0]:
output = True
elif choosedProduct not in products:
print("Das Produkt existiernt nicht.")
elif products[choosedProduct][0] >= credits:
print("Du hast nicht genug Geld eingeworfen")
def moneyBack(moneyBack):
moneyBack = credits - products[choosedProduct][0]
print("Zurück: ", moneyBack)
def output(output, choosedProduct):
if output == True:
print("Das Produkt", choosedProduct[1], "wird ausgegeben...")
output = False
output()
moneyBack()
def main():
coinCounter()
product()
main()
答案 0 :(得分:2)
问题是范围之一。
在credits
中设置coinCounter
时,此分配是该功能的本地分配,对外界不可见。为什么您的脚本不会因NameError
而崩溃?因为有一个名为credits
的全局内置对象,您可以调用(或打印)以查看简短的版权声明:
>>> credits
Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information.
您尝试将此对象与失败的整数进行比较。
相反,让coinCounter
返回点数,并在coinCounter
中调用product
,或在main
中调用它,并将值作为参数提供给{{ 1}}:
product
答案 1 :(得分:0)
input()
返回一个字符串:https://docs.python.org/3.0/library/functions.html#input
" TypeError
异常。关联值是一个字符串,提供有关类型不匹配的详细信息":https://docs.python.org/3/library/exceptions.html#TypeError
您无法将string
与int
进行比较,因此您必须将输入值转换为int
:int(input("Betrag: "))
。
`