我遇到以下代码的问题。当用户选择N时,我不断收到错误消息:
budget = input("please enter the budget amount for given month\n ")
sum_ = 0
expense = 0
i = 0
print("Please enter the expenses for the given month:")
while (1):
expense1 = input("Please enter expense number " + str(i + 1) + " \n")
sum_ = sum_ + int(expense)
c = input("If you want to enter more expense press y else n \n")
if c == 'y':
i += 1
continue
else:
break
if sum_ > budget:
print("You went over budget")
else:
print("You are under budget")
答案 0 :(得分:0)
错误1.当我使用Python 3运行时,我得到了
If you want to enter more expense press y else n
n
Traceback (most recent call last):
File "C:\Programs\python34\tem.py", line 16, in <module>
if sum_ > budget:
TypeError: unorderable types: int() > str()
您应该查看错误消息。它说sum_
是一个int,budget
是一个字符串。显而易见的解决方法是使budget
成为int(budget)
的int。如果你真的无法理解这一点,你应该更多地看一下教程。无论如何,你应该像凯文建议的那样发布它。
错误2.您将费用初始化为0.这掩盖了调用输入费用expense1
的错误。因此,您只需将int(0)
添加到最初的0 sum_
。解决方法是删除初始化并更正拼写错误。您还应该在最后打印总和,以便检查它是否正确。
Buglet 3.不得不说y / n输入另一项费用真的很烦人。只要用户没有输入任何内容就停止。
答案 1 :(得分:-2)
你的两段代码给你一个提示:
budget = input("please enter the budget amount for given month\n ")
expense1 = input("Please enter expense number " + str(i + 1) + " \n")
sum_ = sum_ + int(expense)
注意一些差异?
另外,不要使用str(i + 1)。 "Please blah blah {0} blah\n".format(i + 1)
。