具有不同数量的For循环的函数(python)

反地球:

我的问题很难解释。

我想创建一个包含嵌套的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

Ozair Kafray:

这个问题可以通过递归来解决。我只是在这里编写算法,因为我相信这可能是一个普遍的问题。

function Recurse (y, number) 
   if (number > 1)
      Recurse ( y, number - 1 )
   else
      for x in range (y)
      whatever()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在R函数中具有不同数量的具有默认值的参数?

在循环内具有默认参数的Python函数

在Python中读取具有不同数量列的大文件的最快方法

函数中可变数量的循环(python)

具有不同数量参数的函数的模板别名

是否可以通过传递相同的参数包来调用具有不同数量参数的函数

具有任意数量参数的模板函数

具有不同数量参数的Haskell函数

将具有不同数量参数的函数传递给另一个函数C ++

是什么使相同数量的循环具有不同的性能?

Python绘制具有不同数量元素的列表列表

Python咖喱函数具有可变数量的参数

如何创建具有可变数量的“ for”循环且每个循环具有不同索引的函数?

具有不同数量条件的“ Then By”用法

提取具有不同数量参数的实体

是否可以推迟对具有不同数量/类型的参数的函数文字进行求值?

方程具有不同数量的参数

JavaScript循环以生成具有不同值的JavaScript函数

Kotlin中具有不同类型参数数量的两个函数

具有可变数量的numpy数组的Python函数

调用具有不同数量参数的函数

为具有不同索引的 js 函数创建循环

如何在 R 中的循环中运行具有多个不同长度参数的函数

键入具有任意数量不同参数的函数

根据输入参数的数量具有不同行为的函数

具有不同数量值的嵌套 foreach()

Python:带有 CSV 和 Tensorflow 的 ValueError(CSV 行具有不同数量的字段)

具有不同范围的任意嵌套 for 循环(python)

如何使函数具有不同数量的参数