[英]Python generate random steps for range function in each iteration of a for loop
[英]Change range start in Python 'for loop' for each iteration
我是新手,正在学习python(使用2.7)。 我正在尝试一些简单的脚本来测试python如何处理不同类型的循环。
我的问题是:如果将起点分配给变量,python是否可以在每次迭代中更改“范围”函数的起点? 这是我的代码示例:
def build(n, period):
n2 = n
for digit in range(int(n2), 20):
print "At the top i is %d" % n
digit += period
numbers.append(digit)
print "Numbers now:", numbers
print "At the bottom i is %d" % digit
print "The Numbers:"
n2 += period
for num in numbers:
print num
key = raw_input("Press 1 to call function \"build\", press any other key to quit.")
if key == "1":
i = raw_input("What integer is our start value?")
amt = raw_input("What is the common difference?")
numbers = [int(i)]
build(int(i),int(amt))
else:
quit()
我尝试在函数内使用第二个局部变量'n2',以便可以将'n'的初始值保持不变,然后为每次迭代重新定义范围。 附加列表中的第一个数字移动相同的差,但此后总是递增+1整数。 我可以通过“ while”循环轻松实现这一点,但很好奇是否可以使用“ for”循环来完成此操作吗?
range
在for循环开始时调用该函数时会创建一个固定列表。 您可以将for循环的顶部视为将n2
分配给该列表的下一个元素,无论您在循环中进行什么操作。 如果要更改范围的周期,请使用第三个参数:
range(n, 20, period)
将在整个范围内以大小period
的步长而不是大小1的步长移动。
它不会以您期望的方式工作。 表达式range(int(n2), 20)
在for循环开始时仅被评估一次。 您不能以这种方式更改for循环的范围。
您可以修改的是range
函数中的step
参数,但不会更改您的起点-它仅定义迭代过程中的下一个元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.