更改for循环中的迭代次数 [英] Changing the number of iterations in a for loop

查看:369
本文介绍了更改for循环中的迭代次数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  loopcount = 3 
我在范围内(1,loopcount)
somestring ='7'
newcount = int(somestring)
loopcount = newcount

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

我写了这个代码,期待for循环的范围会改变到(1,7)在第一个循环,但它没有发生。

相反,不管我输入什么号码,它只运行2次。 (我想6次..在这种情况下)

我检查使用打印这样的值:

<$ p (1,loopcount)
print loopcount
somestring ='7'
newcount = int(somestring)$ p $ loopcount = 3

loopcount = newcount
print loopcount
#output:
3
7
7
7

有什么不对?这个数字已经被改变了。

我的思路在哪里错了?

解决方案

范围是根据 loopcount 在被调用的时候创建的 - 任何发生在后面的loopcount都是不相关的。你可能想要的是一个while语句:

  loopcount = 3 
i = 1
while I< loopcount:
somestring ='7'
loopcount = int(somestring)
i + = 1

i < loopcount 为true,如果为true,则运行它所包含的语句。在这种情况下,每次通过循环时,i都增加1.由于第一次循环计数设置为7,循环将运行六次,对于i = 1,2,3,4,5和6 。

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



(我不知道你的实际用例是什么,但你可能不需要分配newcount,所以我删除了它)。

I have code like this:

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

so what I want is to modify the range of the for 'inside' the loop.

I wrote this code expecting the range of the for loop would change to (1,7) during the first loop, but it didn't happen.

Instead, no matter what number I put in, it only runs 2 times. (I want 6 times.. in this case)

I checked the value using print like this:

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

What is wrong? the number has been changed.

Where is my thinking wrong?

解决方案

The range is created based on the value of loopcount at the time it is called--anything that happens to loopcount afterwards is irrelevant. What you probably want is a while statement:

loopcount = 3
i = 1
while i < loopcount:
    somestring = '7'
    loopcount = int(somestring)
    i += 1

The while tests that the condition i < loopcount is true, and if true, if runs the statements that it contains. In this case, on each pass through the loop, i is increased by 1. Since loopcount is set to 7 on the first time through, the loop will run six times, for i = 1,2,3,4,5 and 6.

Once the condition is false, when i = 7, the while loop ceases to run.

(I don't know what your actual use case is, but you may not need to assign newcount, so I removed that).

这篇关于更改for循环中的迭代次数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆