Python 计算房屋首付

Python 计算房屋首付,python,python-3.x,Python,Python 3.x,使用Python 3.6 你已经从麻省理工学院毕业了,现在有一份很棒的工作!你搬到旧金山湾地区,决定要开始攒钱买房子。由于湾区的房价很高,你会意识到,你必须先攒好几年的钱,才能付得起房子的首期款。在A部分中,我们将根据以下假设,确定您需要多长时间才能存足够的钱来支付首付款: 打电话给你梦想之家的总成本​. 要求支付首付部分所需的部分成本​.为了 简单来说,假设部分首付=0.25(25%) 将您迄今为止所存的金额称为当前存款​.你从电流开始 节省0美元 假设您明智地投资您的当前储蓄,年回报率为r​

使用Python 3.6

你已经从麻省理工学院毕业了,现在有一份很棒的工作!你搬到旧金山湾地区,决定要开始攒钱买房子。由于湾区的房价很高,你会意识到,你必须先攒好几年的钱,才能付得起房子的首期款。在A部分中,我们将根据以下假设,确定您需要多长时间才能存足够的钱来支付首付款:

  • 打电话给你梦想之家的总成本​.

  • 要求支付首付部分所需的部分成本​.为了 简单来说,假设部分首付=0.25(25%)

  • 将您迄今为止所存的金额称为当前存款​.你从电流开始 节省0美元

  • 假设您明智地投资您的当前储蓄,年回报率为r​(换句话说, 在每个月底,您将收到额外的活期储蓄*r/12​投入资金 你的储蓄——12是因为r​是年利率)。假设您的投资获得 回报率r=0.04(4%)

  • 假设你的年薪是年薪​.

  • 假设你每个月都要拿出一定数额的薪水来为自己的事业存钱 首期付款。把你存的那部分叫做​.该变量应为十进制形式(即0.1 占百分之十

  • 在每个月底,你的储蓄将通过你的投资回报增加,再加上你月薪的一个百分比​(年薪/12)。 写一个程序来计算你要花多少个月才能攒够一笔定金。您希望您的主要变量是float,因此您应该将用户输入转换为float

  • 到目前为止,我有以下基本代码:

    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%