【问题标题】:Python. Nested While LoopPython。嵌套 While 循环
【发布时间】:2023-03-06 14:44:01
【问题描述】:

我是一个完整的初学者,尝试使用 Python 编写一个嵌套的 while 循环,我希望倒计时打印 3 次。

目前我有:

def amigo (counter, n):
    while counter > 0:
        while n > 0:
            print (n)
            n= n - 1
        print('Hola!')
        counter = counter - 1 

我将 counter 和 n 都设置为 2。

我想做的是打印:

3
2
1
Hola!
3
2
1
Hola!

但现在它正在打印:

3
2
1
Hola!
Hola!

有人能指出正确的方向吗?

【问题讨论】:

  • 问题是你没有在内部while循环结束时重置n,这导致当外部循环返回时它仍然为0。我建议创建一个 n 的副本以用作循环索引。

标签: python-3.x while-loop


【解决方案1】:

总是重置计数器。

在每个循环之前将计数器值设置为初始位置

对于您的内部循环,它将是 i = n

对动作使用赋值

运算符x += y 相当于x = x + y

那么您的代码将是 n -= 1 而不是 n = n - 1

改进的代码

def amigo (counter, n):
    while counter > 0:
        i = n # Reset counter befor cycle. Used i to prevent editing n's value
        while i > 0:
            print (i)
            i -= 1 # Decrease i by 1, will loop from N to 1
        print('Hola!')
        counter -= 1 # Descrease counter by 1

【讨论】:

  • 谢谢!哪里有打印(n),如果我想让它倒计时,我需要打印(i)吗?
  • @Sam,是的!你是对的,在修复代码时忘记更改它。下次发代码前会使用python
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
  • 2015-04-16
  • 2021-08-21
相关资源
最近更新 更多