Python 我有一个无齿错误,我可以';我不知道如何修理

Python 我有一个无齿错误,我可以';我不知道如何修理,python,Python,我目前正在做,C部分。我不断得到: IndentationError: unindent does not match any outer indentation level 代码如下: #MIT C # setting up varaibles interest = float(0.04) semi_annual_raise = float(0.07) total_cost=1000000 portion_down_payment=0.25 downpayment=total_cost*

我目前正在做,C部分。我不断得到:

IndentationError: unindent does not match any outer indentation level  
代码如下:

#MIT C
# setting up varaibles
interest = float(0.04)
semi_annual_raise = float(0.07)
total_cost=1000000
portion_down_payment=0.25
downpayment=total_cost*portion_down_payment
starting_annual_salary=float(input("Enter the starting salary: "))
monthly_salary=starting_annual_salary/12
current_savings = 0
# setting up guess
programe = 1 
low=0
high = 1
step = 0
month = 1
guess = (high+low)/2.0
tolerance=500
savings = 0
# semi annual raise code
while programe == 1:
        end_salary = (monthly_salary * 36) * (interest * 3)
        current_savings = guess * end_salary
        savings = guess * end_salary
        if current_savings >  downpayment +- tolerance:
             print("the savings rate was too high ," , guess)
             print("reunning program")
             low = guess
             guess = (high + low) / 2.0
             current_savings = guess * end_salary
             savings = guess * end_salary
        elif current_savings < downpayment +- tolerance:
             print("the savings rate was too low ," , guess)
             print("rerunning program")
             high = guess
             guess = (high+low)/2.0
             current_savings = guess * end_salary
             savings = guess * end_salary
         else savings == downpayment +- tolerance:
             print("enter starting salary: " , starting_annual_salary)
             print("best savings rate:" , guess)
             print("steps in bisection search" , step)
             programe = 0.5
        continue
    if programe == 0.5:
        break all
#MIT C
#设置变量
利息=浮动(0.04)
半年度上升=浮动(0.07)
总成本=1000000
部分首付=0.25
首期付款=总成本*部分首期付款
起薪\年薪\浮动(输入(“输入起薪:”)
月薪=起薪/年薪/12
当前储蓄=0
#设置猜测
程序=1
低=0
高=1
步长=0
月份=1
猜测=(高+低)/2.0
公差=500
节省=0
#半年加薪代码
当程序==1时:
期末工资=(月薪*36)*(利息*3)
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
如果当前储蓄>首付+-容差:
打印(“储蓄率太高,”,猜测)
打印(“联合计划”)
低=猜测
猜测=(高+低)/2.0
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
elif活期储蓄<首付款+-容差:
打印(“储蓄率太低,”,猜测)
打印(“重新运行程序”)
高=猜测
猜测=(高+低)/2.0
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
其他节省==首付款+-容差:
打印(“输入起始工资:”,起始年薪)
打印(“最佳储蓄率:”,猜测)
打印(“对分搜索中的步骤”,步骤)
程序=0.5
持续
如果程序==0.5:
打破一切

我对代码进行了一些修改,使其在运行时不会出现错误消息:

#MIT C
#设置变量
利息=浮动(0.04)
半年度上升=浮动(0.07)
总成本=1000000
部分首付=0.25
首期付款=总成本*部分首期付款
起薪\年薪\浮动(输入(“输入起薪:”)
月薪=起薪/年薪/12
当前储蓄=0
#设置猜测
程序=1
低=0
高=1
步长=0
月份=1
猜测=(高+低)/2.0
公差=500
节省=0
#半年加薪代码
当程序==1时:
期末工资=(月薪*36)*(利息*3)
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
如果当前储蓄>首付+-容差:
打印(“储蓄率太高,”,猜测)
打印(“联合计划”)
低=猜测
猜测=(高+低)/2.0
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
elif活期储蓄<首付款+-容差:
打印(“储蓄率太低,”,猜测)
打印(“重新运行程序”)
高=猜测
猜测=(高+低)/2.0
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
elif储蓄==首付款+-容差:
打印(“输入起始工资:”,起始年薪)
打印(“最佳储蓄率:”,猜测)
打印(“对分搜索中的步骤”,步骤)
程序=0.5
持续
如果程序==0.5:
打破

然而,我认为它陷入了一个持续的循环中。我不确定您希望程序执行什么操作,因此我无法修复它。

end\u salary
的开头到
continue
语句的所有内容似乎都缩进了8个空格,而不是4个空格

如果语句下的所有行都缩进了5个空格,而不是4个空格,那么每个
语句下的所有行看起来都是这样的

试着把它们拉回来,你会看到错误消失了

这是我的净化代码:

#MIT C
# setting up varaibles
interest = float(0.04)
semi_annual_raise = float(0.07)
total_cost=1000000
portion_down_payment=0.25
downpayment=total_cost*portion_down_payment
starting_annual_salary=float(input("Enter the starting salary: "))
monthly_salary=starting_annual_salary/12
current_savings = 0
# setting up guess
programe = 1 
low=0
high = 1
step = 0
month = 1
guess = (high+low)/2.0
tolerance=500
savings = 0
# semi annual raise code
while programe == 1:
    end_salary = (monthly_salary * 36) * (interest * 3)
    current_savings = guess * end_salary
    savings = guess * end_salary
    if current_savings >  downpayment +- tolerance:
        print("the savings rate was too high ," , guess)
        print("reunning program")
        low = guess
        guess = (high + low) / 2.0
        current_savings = guess * end_salary
        savings = guess * end_salary
    elif current_savings < downpayment +- tolerance:
        print("the savings rate was too low ," , guess)
        print("rerunning program")
        high = guess
        guess = (high+low)/2.0
        current_savings = guess * end_salary
        savings = guess * end_salary
    else savings == downpayment +- tolerance:
        print("enter starting salary: " , starting_annual_salary)
        print("best savings rate:" , guess)
        print("steps in bisection search" , step)
        programe = 0.5
    continue
    if programe == 0.5:
        break all
#MIT C
#设置变量
利息=浮动(0.04)
半年度上升=浮动(0.07)
总成本=1000000
部分首付=0.25
首期付款=总成本*部分首期付款
起薪\年薪\浮动(输入(“输入起薪:”)
月薪=起薪/年薪/12
当前储蓄=0
#设置猜测
程序=1
低=0
高=1
步长=0
月份=1
猜测=(高+低)/2.0
公差=500
节省=0
#半年加薪代码
当程序==1时:
期末工资=(月薪*36)*(利息*3)
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
如果当前储蓄>首付+-容差:
打印(“储蓄率太高,”,猜测)
打印(“联合计划”)
低=猜测
猜测=(高+低)/2.0
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
elif活期储蓄<首付款+-容差:
打印(“储蓄率太低,”,猜测)
打印(“重新运行程序”)
高=猜测
猜测=(高+低)/2.0
当前储蓄=猜测*结束工资
储蓄=猜测*结束工资
其他节省==首付款+-容差:
打印(“输入起始工资:”,起始年薪)
打印(“最佳储蓄率:”,猜测)
打印(“对分搜索中的步骤”,步骤)
程序=0.5
持续
如果程序==0.5:
打破一切

if/elif/else中的语句都是5个空格。它应该是4个空格。4个空格=1个选项卡。另外,与if和elif相比,实际的else语句的间距为1。您的
else
没有正确对齐。错误消息准确地告诉了您问题所在。顺便说一下,
+-tolerance
表示“加负公差”,这相当于
-tolerance
。我不认为它在做你想让它做的事。这真的只是一个打字错误,因此应该关闭。我不认为这对OPIt以外的任何人都有用,不管有多少空格(至少从解释器的角度来看)。问题是结尾处的
if
与论坛上快速、正常的wow缩进级别不一样