【问题标题】:I do not understand foor loop [closed]我不明白 for 循环 [关闭]
【发布时间】:2017-12-13 10:03:50
【问题描述】:

为什么在 for 循环 内写成 upper + 1 而不仅仅是 upper。如果我将 upper+1 更改为 upper 并运行代码,我将得到相同的结果!

for num in range(lower,**upper + 1)**

# Python program to display all the prime numbers within an interval


lower = int(input("Enter lower range: "))
upper = int(input("Enter upper range: "))

print("Prime numbers between",lower,"and",upper,"are:")

for num in range(lower,upper + 1):
   # prime numbers are greater than 1
   if num > 1:
       for i in range(2,num):
           if (num % i) == 0:
               break
       else:
           print(num)

【问题讨论】:

  • 那是因为upper 在您的示例中不是素数
  • 你想在那个循环中实现什么?截至目前,它什么也不做,并且 print(num) 从未被调用 (?)
  • 和 ** upper + 1** 在我的例子中是一个素数?对不起,我不明白。请您说的具体一点好吗?!

标签: python for-loop


【解决方案1】:

这是因为range(x,y) 停在y-1。例如:

for i in range(2,5):
    print(i)

会给你:

2
3
4

所以如果你也想检查upper,你应该加1,所以upper+1。由于upper 不是素数,因此您的代码返回相同的结果,因此即使检查了upper(upper+1 在范围内),也不会打印upper。

【讨论】:

  • NP :) 这也是为什么在你的第二个 for 循环中你有 range(2,num) 而不是 range(2,num+1) 因为你不想检查 num (因为 num% num 总是给你 0)
  • :) 太好了。你解释了一些我什至没有注意到的事情。在不久的将来我会成为一个伟大的程序员:D
猜你喜欢
  • 2015-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多