Python循环按每次迭代递减变量的值

2024-06-17 11:57:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python循环,我总是得到错误的值。我想在这个循环中实现的是,当代码运行时,要求用户使用这些变量输入两个变量(variable1,variable2),一个从variable2开始的循环

  • 使用当前变量2进行计算
  • 将variable2的值减1,然后进行计算
  • 第一次计算结果+第二次计算结果之和
  • 继续这样做,直到variable2为0,但也要使用variable2=0添加计算的总和

后面的代码是请免费建议我做什么或如何做

from math import pi, sqrt
def equation(variable1,variable2):
    calculation = ((sqrt(2)*variable1**(2*variable2+1))/(3*pi))*q(k=variable2) 
    for i in range (variable2,0,-1):
        calculation = calculation + calculation
    print calculation


def main():
    variable2 = (input("Enter a Number for variable2: "))
    variable1 = (input("Enter a Number for variable1: "))
    return equation(variable1,variable2)
main()

更新:q(k)用于此代码块中不需要的另一个计算


Tags: 代码numberforinputmaindef错误pi
2条回答

如果我理解正确:

from math import pi, sqrt
def equation(variable1,variable2):
    calculation = ((sqrt(2)*variable1**(2*variable2+1))/(3*pi))*q(k=variable2)
    while variable2 >0:
        variable2 -= 1
        calculation += ((sqrt(2)*variable1**(2*variable2+1))/(3*pi))*q(k=variable2)
    return calculation


def main():
    variable2 = (input("Enter a Number for variable2: "))
    variable1 = (input("Enter a Number for variable1: "))
    return equation(variable1,variable2)

print main()

当然,只有在代码中的其他地方定义了q(),这才有效,正如我在评论中提到的那样。您还可以使用for循环/范围版本(但是使用xrange,因为您使用的是python2),然后必须将第二个计算行中的variable2替换为i。您的主要问题似乎是,您认为通过对基于variable2的范围进行迭代,它的值会发生变化(实际上不会发生变化)。你知道吗

我强烈建议你更清楚你想要什么,不幸的是你的描述不清楚。你知道吗

这就是我收集到的你想要的:

from math import pi, sqrt


def equation(variable1, variable2):
    return ((sqrt(2) * variable1 ** (2 * variable2 + 1)) / (3 * pi)) * q(k=variable2)


def calc_final_result(variable1, variable2):
    final_result = 0
    while(variable2 > -1):
        final_result += equation(variable1, variable2)
        variable2 -= 1
    return final_result

def main():
    variable2 = (input("Enter a Number for variable2: "))
    variable1 = (input("Enter a Number for variable1: "))

    return calc_final_result(variable1, variable2)

if __name__ == '__main__':
    main()

相关问题 更多 >