Python 计算房屋首付
使用Python 3.6 你已经从麻省理工学院毕业了,现在有一份很棒的工作!你搬到旧金山湾地区,决定要开始攒钱买房子。由于湾区的房价很高,你会意识到,你必须先攒好几年的钱,才能付得起房子的首期款。在A部分中,我们将根据以下假设,确定您需要多长时间才能存足够的钱来支付首付款:Python 计算房屋首付,python,python-3.x,Python,Python 3.x,使用Python 3.6 你已经从麻省理工学院毕业了,现在有一份很棒的工作!你搬到旧金山湾地区,决定要开始攒钱买房子。由于湾区的房价很高,你会意识到,你必须先攒好几年的钱,才能付得起房子的首期款。在A部分中,我们将根据以下假设,确定您需要多长时间才能存足够的钱来支付首付款: 打电话给你梦想之家的总成本. 要求支付首付部分所需的部分成本.为了 简单来说,假设部分首付=0.25(25%) 将您迄今为止所存的金额称为当前存款.你从电流开始 节省0美元 假设您明智地投资您的当前储蓄,年回报率为r
annual_salary = float(input("Type annual salary here : "))
portion_saved = float(input("Type the portion you want to save (as a decimal) : "))
total_cost = float(input("Type the cost of your dream house here : "))
monthly_salary = (annual_salary / 12.0)
portion_down_payment = 0.25 * total_cost
current_savings = 0 + ???
returns = (current_savings * 0.4) / 12
overall_savings = returns + (portion_saved * monthly_salary)
months = ???`
我的问题是我不知道如何计算月份。我不知道是否需要创建if语句、循环,或者根本不创建它们。月份是达到所需金额所需的值 例如,您希望循环,直到您有足够的首付款
months = 0
# Want to exit the loop when there is enough savings for a down payment
while current_savings < portion_down_payment:
current_savings += current_savings * (0.4 / 12) # Monthly interest
current_savings += portion_saved # Monthly savings
months += 1
print("It will take {} months to save!".format(months))
months=0
#想在有足够的储蓄支付首付款时退出循环吗
当活期存款<部分首付时:
活期储蓄+=活期储蓄*(0.4/12)#月利息
当前存款+=部分存款#每月存款
月份+=1
打印(“保存需要{}个月!”。格式(个月))
您只需要一个while循环:
将months变量初始化为0,并确保节省的金额不超过且小于或等于首付款。另外,请确保最初将当前保存设置为0
Current_Saving=0
rate=0.04/12
monthly_savings = monthly_salary*0.1
i=0
while (Current_Saving <= down_payment):
Current_Saving = Current_Saving+(monthly_savings)*rate + monthly_savings
i=i+1
print(i)
当前保存=0
比率=0.04/12
月储蓄=月工资*0.1
i=0
而(电流节省这可以用解析法解决
down_payment_rate = 0.25
saving_rate = 0.10
r = 0.04 #investment rate
target = total_cost * down_payment_rate
M = annual_salary/12*saving_rate/12 #Monthly savings
问题在于解决以下问题:
target = M*(1+r) + M*(1+r)^2 + M*(1+r)^3 ... M*(1+r)^N
以上是一个几何级数,其中N是达到目标的月数。可以简洁地表示为:
let g = 1+r:
target = M * (1-g^N)/(1-g)
你已经知道g,target,M了,唯一要解的就是N。你可以用代数找到结果。例如:N=log(1-target*(1-g)/M)/log(g)对于麻省理工学院的毕业生来说,这应该不难……听起来你甚至不知道从哪里开始。因此,这个网站不适合你的需要,你应该寻找一个辅导服务。我投票决定不讨论这个问题,因为这不是一个免费的辅导服务。while
循环可能是最合适的在这里,或者更好的是,使用正确的对数/指数函数一次计算月数。我没有参加这门课,也没有去麻省理工学院。我在业余时间学习代码。我不想得到家庭作业的答案。我对如何编写这种特殊情况感兴趣。我是一个初学者,我不想去寻找答案我是一名导师。我正在寻找一个解释,以进一步了解我的知识。非常感谢cricket。我会将你的信息尽我所能加以应用。如果这解决了你的问题,你可以通过。cricket来表达你的感谢。使用你提供的代码,我能够完全理解这个问题。感谢你的帮助只是让你知道,这不会在p中编译ython 3,print函数必须在参数周围用括号调用。是的,但上面粘贴的代码显示-current_savings=0+???@garret1021我已经编辑了代码,只需重新阅读问题。我将工资乘以0.1,因为每月都会保存工资的10%