如何使程序创建新变量并以特定方式应用它们?

时间:2019-04-28 22:31:41

标签: python variables

说我有变量'a'和'b',我想让程序运行:

for a in range(n):
    for b in range(n):
        if a**2 + b**2 ==n:
             return (a, b)
        else:

执行相同的操作,但使用a,b,c,如下所示:

for a in range(n):
    for b in range(n):
        for c in range(n):
           if a**2 + b**2 + c**2 ==n:
               return (a, b, c)

以此类推,以d,e等...找到答案需要很多变量。

我如何将其无限期地应用到找到答案之前? 如何使其创建新变量,然后以上面显示的方式添加它们?

1 个答案:

答案 0 :(得分:1)

要记住两件事:首先,x**2 >= 1表示所有非零的x;其次,如果为c == 0,则为a**2 + b**2 + c**2 == a**2 + b**2。它们共同为您需要考虑的元组的大小设置了n的上限。

这意味着您可以使用一个循环遍历所有可能的n-元组:

from itertools import product

for t in product(range(n), repeat=n):
    if sum(x**2 for x in t) == n:
        return t