我有这样的代码:

loopcount = 3
for i in range(1, loopcount)
   somestring = '7'
   newcount = int(somestring)
   loopcount = newcount

所以我想要的是修改“内部”循环的范围。

我编写了这段代码,期望在第一个循环期间for循环的范围将更改为(1,7),但没有发生。

取而代之的是,无论我输入多少数字,它都只能运行2次。 (我要6次..在这种情况下)

我使用print这样检查值:
    loopcount = 3
    for i in range(1, loopcount)
       print loopcount
       somestring = '7'
       newcount = int(somestring)
       loopcount = newcount
       print loopcount
#output:
3
7
7
7

怎么了?该号码已更改。

我的想法哪里错了?

最佳答案

该范围是根据被调用时loopcount的值创建的-之后发生的任何循环计数无关紧要。您可能想要的是一会儿声明:

loopcount = 3
i = 1
while i < loopcount:
    somestring = '7'
    loopcount = int(somestring)
    i += 1
while测试条件i < loopcount是否为true,如果为true,则运行其包含的语句。在这种情况下,每次通过循环时,i都会增加1。由于第一次将循环计数设置为7,所以循环将运行六次,因为i = 1,2,3,4,5和6 。

一旦条件为假,则当i = 7时,while循环将停止运行。

(我不知道您的实际用例是什么,但是您可能不需要分配newcount,因此我将其删除了)。

10-04 18:02