Python 查找while循环的一般情况

Python 查找while循环的一般情况,python,list,loops,numpy,while-loop,Python,List,Loops,Numpy,While Loop,我正在使用python列表,代码如下: x=[0.1,0.1,0.1] dx=0.1 R=1 while x[0] < R: while x[1] < R: if np.sqrt(x[0] ** 2 + x[1] ** 2 + x[2] ** 2) < R: x[2] = x[2] + dx counter = counter + 1 else: x[1] = x[1] + dx x[

我正在使用python列表,代码如下:

x=[0.1,0.1,0.1]
dx=0.1
R=1
while x[0] < R:
  while x[1] < R:
    if np.sqrt(x[0] ** 2 + x[1] ** 2 + x[2] ** 2) < R:
      x[2] = x[2] + dx           
     counter = counter + 1
    else:

       x[1] = x[1] + dx
       x[0]= dx
 print(counter)
  x[0] = x[0] + dx
  x[1] = dx

任何帮助都将不胜感激

我同意这些评论,几乎可以肯定有更好的方法可以做到这一点。但是,这个(快速组合在一起的)递归函数将执行此操作并在适当的位置编辑数组x

def f(x, dx, n=0):
    if n == len(x) - 2:
        while x[n] < R:
           if np.sqrt(sum(i**2 for i in x[:-1])) < R:  # I think you mean this
              x[n+1] += dx           
              counter += 1
           else:
              x[n] += dx
              x[n-1] = dx
    else:
        while x[n] < R:
            f(x, dx, n+1)  # recursion
            x[n] += dx
            x[n+1] = dx
定义f(x,dx,n=0): 如果n==len(x)-2: 当x[n]我同意这些评论,几乎可以肯定有更好的方法。但是,这个(快速组合在一起的)递归函数将执行此操作并在适当的位置编辑数组x

def f(x, dx, n=0):
    if n == len(x) - 2:
        while x[n] < R:
           if np.sqrt(sum(i**2 for i in x[:-1])) < R:  # I think you mean this
              x[n+1] += dx           
              counter += 1
           else:
              x[n] += dx
              x[n-1] = dx
    else:
        while x[n] < R:
            f(x, dx, n+1)  # recursion
            x[n] += dx
            x[n+1] = dx
定义f(x,dx,n=0): 如果n==len(x)-2: 当x[n]您能首先解释一下您打算做什么吗?通常,当您的代码中有两个以上的嵌套循环时,有一种更好的方法来组织代码。乍一看,这似乎是一个非常简单的递归函数。也就是说,如果np.sqrt(x[0]**2+x[1]**2+x[2]**2),它是否正确/适用于
两种情况下的行是否相同?例如:对于dx=0.1和R=1,我们从0.1开始,这就是我试图做的:从x=[0.1,0.1,0.1](在第一个循环之后)x=[0.9,0.1,0.1],然后[0.1,0.2,0.1]依此类推,直到[0.9,0.9,0.1],然后我们将从[0.1,0.2]开始因此,在上午这个时候,我不愿意免费提供更多的关注问题空间(而不是Python语法/逻辑/最佳实践)。你能把问题集中在Python方面,把数学/逻辑分离出来吗?你能解释一下你首先打算做什么吗?通常,当您的代码中有两个以上的嵌套循环时,有一种更好的方法来组织代码。乍一看,这似乎是一个非常简单的递归函数。也就是说,如果np.sqrt(x[0]**2+x[1]**2+x[2]**2),它是否正确/适用于
两种情况下的行是否相同?例如:对于dx=0.1和R=1,我们从0.1开始,这就是我试图做的:从x=[0.1,0.1,0.1](在第一个循环之后)x=[0.9,0.1,0.1],然后[0.1,0.2,0.1]依此类推,直到[0.9,0.9,0.1],然后我们将从[0.1,0.2]开始因此,在上午这个时候,我不愿意免费提供更多的关注问题空间(而不是Python语法/逻辑/最佳实践)。你能把问题集中在Python方面,把数学/逻辑分离出来吗?谢谢,但这不是我想要的,它给了我不同的结果。我将尝试编辑它以获得我想要的东西。但无论如何谢谢你,谢谢你,但这不是我想要的,它给了我不同的结果。我将尝试编辑它以获得我想要的东西。不过还是谢谢你
def f(x, dx, n=0):
    if n == len(x) - 2:
        while x[n] < R:
           if np.sqrt(sum(i**2 for i in x[:-1])) < R:  # I think you mean this
              x[n+1] += dx           
              counter += 1
           else:
              x[n] += dx
              x[n-1] = dx
    else:
        while x[n] < R:
            f(x, dx, n+1)  # recursion
            x[n] += dx
            x[n+1] = dx