Python程序挂起,可以';我不明白为什么
所以我试着运行一个相当简单的程序,告诉你根据一个人的年薪,他们工资的百分比,以及房子的总成本,需要多少个月才能支付一所房子的首期付款,下面是代码:Python程序挂起,可以';我不明白为什么,python,python-3.x,Python,Python 3.x,所以我试着运行一个相当简单的程序,告诉你根据一个人的年薪,他们工资的百分比,以及房子的总成本,需要多少个月才能支付一所房子的首期付款,下面是代码: annual_salary = float(input("Enter your annual salary: ")) portion_saved = float(input("Enter the percent of your salary to save, as a decimal: ")) total_co
annual_salary = float(input("Enter your annual salary: "))
portion_saved = float(input("Enter the percent of your salary to save, as a decimal: "))
total_cost = float(input("Enter the cost of your dream home: "))
portion_down_payment = total_cost * 0.25
current_savings = 0.0
monthly_salary = annual_salary / 12
percentage_of_monthly = monthly_salary * portion_saved
months = 0
while current_savings != portion_down_payment:
current_savings += percentage_of_monthly
investment_return = current_savings*0.04 / 12
current_savings += investment_return
months += 1
print("Number of months:", months)
我以前做过Python编程,对Java相当熟悉,但我对Python有点生疏,所以我不明白为什么会发生这种情况,下面是输出:
正如您所见,在输入“梦想之家”的总成本后,代码没有做任何事情,但是,它也没有提供错误消息。作为一个固执的人,我猜可能是IDE,但事实并非如此,因为我在Spyder上和命令提示符下尝试了相同的程序,但仍然没有成功您的while语句陷入了循环中-
while current_savings != portion_down_payment:
你在那里做一个直接匹配-如果它小于或大于它将继续,循环只有在当前储蓄正好等于部分首付时才会停止。发生这种情况的可能性非常小,特别是在处理浮点数时
将其设置为
,而当前储蓄
应该可以解决您的问题。您的while语句陷入了一个循环-
while current_savings != portion_down_payment:
你在那里做一个直接匹配-如果它小于或大于它将继续,循环只有在当前储蓄正好等于部分首付时才会停止。发生这种情况的可能性非常小,特别是在处理浮点数时
将其设置为
,而当前储蓄
应该可以解决您的问题。您试图实现的逻辑不是很清楚,但请考虑在当前储蓄>partment\u down\u payment
时是否要继续循环。我会使用一些打印进行调试,例如打印(活期存款、部分首付)
在每个循环中,检查出了什么问题。但基本上,部分的首付不会是==
到当前的储蓄
,你的循环将永远持续下去。你试图实现的逻辑不是很清楚,但想想当当前的储蓄>转移时,你是否想继续循环关于首付
。我会使用一些打印进行调试,例如打印(当前的储蓄,部分首付)
在每次循环和检查中,都会出现什么问题。但基本上,部分的首付不会是==
到当前储蓄
,你的循环将永远持续下去。在这篇文章提交后,后天,或后天,我意识到它将永远循环下去,因为当前的vings永远不会等于部分首付。所以我尝试了你推荐的方法,效果很好。谢谢你的帮助!在这篇文章提交后,第二天或第二天,我意识到它将永远循环,因为当前的储蓄永远不会等于部分首付。所以我尝试了你推荐的方法,效果很好.谢谢你的帮助!