在python中逐级迭代

时间:2016-11-24 23:11:51

标签: python loops

对于我的编程作业的一部分,我想做以下几点。 在级别1中,我有一个输入数字(N),它除以另一个数字(X)。在下一级别,相同的输入数字(N)除以X * 2。同样,我想继续计算,直到最终结果小于或等于1.

例如,如果在第一次运行中X = 8且N = 2,我将除以8/2 = 4 在下一次运行中,我将除以8/4,即2 在最后一次运行中,我将除以8/8,即1

我试图在python中实现它。我对代码的基本概念如下:

    def myFunc(n, x):

         first_level=n/ x 
         next_level = n /x * 2
         ............

         if result <=1:
             break

    myFunc(8, 2)

但我不明白如何迭代计算可能的下一个级别。请帮忙。

2 个答案:

答案 0 :(得分:1)

这是一个通过迭代执行此操作的示例函数!

这里的关键是设置一个临时变量来跟踪循环的当前值,从而允许你进行除法。

def myFunc(n, x):

    i = 1
    interim_result = n

    while interim_result > 1:
        interim_result = n / float(x**i) # I guess you're working with integers, but just in case
        print "This is loop number: " + str(i) + " with result: " + str(interim_result)

        i = i + 1

myFunc(8, 2)

希望这很清楚。

答案 1 :(得分:1)

您可以使用递归功能:添加打印以显示结果等于1.

def myFunc(n, x):

    result=n/ x 
    if result <=1:
        print result
    else:
        myFunc(n,x*2)

myFunc(8, 2)

或者要获得可以使用全局变量的级别:

count = 1
def myFunc(n, x):
    global count
    count = count + 1
    result=n/ x 


    if result <=1:
        print result
    else:
        myFunc(n,x*2)
myFunc(8, 2)
print count