【问题标题】:Python redundancy [closed]Python冗余[关闭]
【发布时间】:2013-07-06 20:44:23
【问题描述】:

如果我有代码

i = 0
while i < N:
    print("Hello")
    i += 1

Hello 会被打印多少次? (假设 N 是一个已定义的整数)

答案:

  1. 0
  2. N-1
  3. N+1
  4. N+1以上

为什么?我从来没有得到这个,所以我希望有人能解释一下。

【问题讨论】:

  • 它将被打印 N 次。 i 从 0 开始。如果 i 不小于 N,则您的条件要求循环退出。但是因为您的索引从 0 开始,它将被打印 N 次。尝试用变量 i 替换“Hello”。我认为这会让事情变得正确。
  • 您是否尝试过从您对while 循环的理解入手?
  • 这感觉像是一道试题……
  • 这不是一个可怕的测试问题老兄......
  • 放松,哈哈,每个人都必须从某个地方开始。随着时间的推移,循环将成为第二天性,不要被任何讨厌的 cmets 气馁。他们来自那些忘记了他们曾经必须解决这个问题的人。

标签: python redundancy


【解决方案1】:

找出它的最佳方法是手动检查一些N 的可管理值。例如,如果N 是 2:

  • i == 00 &lt; 2 → 打印 "hello",递增 i
  • i == 11 &lt; 2 → 打印 "hello",递增 i
  • i == 22 &lt; 2while-loop 条件不再满足 → 循环结束

所以对于N = 2"hello" 被打印了 2 次。看到图案了吗?

【讨论】:

    【解决方案2】:

    Hello 会被打印 N 次。 假设 N 为 3。

    第一次迭代 i = 0 i 小于 N

    print hello
    i = i + 1; // i = 1
    

    第二次迭代 i = 1; i` is less thanN(3)`

    print hello
    i = i + 1; // i = 2
    

    第三次迭代 i = 2; i 小于 N (3)

    print hello
    i = i + 1; // i = 3
    

    第四次迭代 i = 3; i 等于 N (3) 打破循环

    【讨论】:

    • 这对我来说很有意义,你的例子是 N+1 吗?
    • 不会,因为 N+1 不是答案...
    • N+1(给定上面的例子)将是 N = 4,所以它会打印 hello 4 次
    【解决方案3】:

    正如其他答案所描述的那样,它将打印N 次,因为它从 0 开始,直到它刚好在 N 之前,不等于 N。

    但实际上,这在 Python 中是非常多余的。一种更简单的方法,使其更具可读性(希望您更容易理解):

    N=3
    for x in range(0,N):
        print "This is loop %d" % (x)
    

    此循环将从0 to N 打印,实际上只是N 的次数。

    【讨论】:

      猜你喜欢
      • 2011-06-13
      • 1970-01-01
      • 2010-10-11
      • 2017-05-22
      • 2011-06-16
      • 1970-01-01
      • 2014-10-07
      • 2015-08-02
      • 1970-01-01
      相关资源
      最近更新 更多