Python预算代码问题

时间:2015-03-13 13:42:23

标签: python python-3.x

我遇到以下代码的问题。当用户选择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")

2 个答案:

答案 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)