我的问题很难解释。
我想创建一个包含嵌套的for循环的函数,
其数量与传递给该函数的参数成比例。
这是一个假设的示例:
Function(2)
...将涉及...
for x in range (y):
for x in range (y):
do_whatever()
另一个例子...
Function(6)
...将涉及...
for x in range (y):
for x in range (y):
for x in range (y):
for x in range (y):
for x in range (y):
for x in range (y):
whatever()
for循环(y)的变量实际上未在嵌套代码中使用。
您的第一个想法可能是创建一个for循环,其范围与number参数的
作用力有关。。。这不起作用,因为乘积很大。我有8个嵌套的for循环所需的实例。
该产品对于for循环中的范围而言太大。
还需要将其他参数传递给函数,但是我可以自己处理。
这是代码(它创建了雪花分形)
from turtle import *
length = 800
speed(0)
def Mini(length):
for x in range (3):
forward(length)
right(60)
penup()
setpos(-500, 0)
pendown()
choice = input("Enter Complexity:")
if choice == 1:
for x in range (3):
forward(length)
left(120)
elif choice == 2:
for x in range (3):
Mini(length/3)
left(120)
if choice == 3:
for x in range (6):
Mini(length/9)
right(60)
Mini(length/9)
left(120)
if choice == 4:
for y in range (6):
for x in range (2):
Mini(length/27)
right(60)
Mini(length/27)
left(120)
right(180)
for x in range (2):
Mini(length/27)
right(60)
Mini(length/27)
left(120)
if choice == 5:
for a in range (6):
for z in range (2):
for y in range (2):
for x in range (2):
Mini(length/81)
right(60)
Mini(length/81)
left(120)
right(180)
for x in range (2):
Mini(length/81)
right(60)
Mini(length/81)
left(120)
right(180)
right(180)
if choice == 6:
for c in range (6):
for b in range (2):
for a in range (2):
for z in range (2):
for y in range (2):
for x in range (2):
Mini(length/243)
right(60)
Mini(length/243)
left(120)
right(180)
for x in range (2):
Mini(length/243)
right(60)
Mini(length/243)
left(120)
right(180)
right(180)
right(180)
right(180)
if choice == 7:
for a in range (6):
for b in range(2):
for c in range (2):
for d in range (2):
for e in range (2):
for f in range (2):
for y in range (2):
for x in range (2):
Mini(length/729)
right(60)
Mini(length/729)
left(120)
right(180)
for x in range (2):
Mini(length/729)
right(60)
Mini(length/729)
left(120)
right(180)
right(180)
right(180)
right(180)
right(180)
right(180)
非常感谢您可以提供的所有帮助,
尽管如果您建议使用其他方法(例如递归),
请不要仅仅粘贴代码。相反,提出一些可以使我朝正确方向发展的想法。
(该算法适用于专家数学作业)
规格:
Python 2.7.1
Turtle
IDLE
Windows7
这个问题可以通过递归来解决。我只是在这里编写算法,因为我相信这可能是一个普遍的问题。
function Recurse (y, number)
if (number > 1)
Recurse ( y, number - 1 )
else
for x in range (y)
whatever()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句