HDP1008 发表于 2020-5-27 15:27:06

输出指定范围内的素数

不想说话了,怎么还是有问题呢,输出结果是:100,没有范围lower=int(input("请输入区间最小值:"))
higer=int(input("请输入区间最大值:"))

for num in range(lower,higer+1):
   if num>1:
      for i in range(2,num):
         if num % i==0:
            break
      
else:
    print(num)

Twilight6 发表于 2020-5-27 15:28:47

本帖最后由 Twilight6 于 2020-5-27 15:30 编辑

我傻了 。。。没看标题 哈哈哈

Twilight6 发表于 2020-5-27 15:33:10

循环下面用else的作用效果是 如果 for 循环正常结束则执行同缩进 for 下面的 else ,否则不执行 else

比如遇到break 就是不正常中断循环,也就不会执行 else

lower = int(input("请输入区间最小值:"))
higer = int(input("请输入区间最大值:"))
temp = []
for num in range(lower, higer + 1):
    if num > 1:
      for i in range(2, num):
            if num % i == 0:
                break
      else:
            temp.append(num)
print(lower,'~',higer,'范围内的质数是:',temp)

HDP1008 发表于 2020-5-27 15:46:07

他这个又可以正常执行,我觉得和他的差不多呐?
lower = int(input("输入区间最小值: "))
upper = int(input("输入区间最大值: "))

for num in range(lower,upper + 1):
    # 素数大于 1
    if num > 1:
      for i in range(2,num):
            if (num % i) == 0:
                break
      else:
            print(num)

Twilight6 发表于 2020-5-27 15:47:37

HDP1008 发表于 2020-5-27 15:46
他这个又可以正常执行,我觉得和他的差不多呐?

差在else 用的地方哦
你认真理解下我楼上说的for循环和else配合的效果
然后去看下你代码和它代码的差别~

Twilight6 发表于 2020-5-27 15:48:08

HDP1008 发表于 2020-5-27 15:46
他这个又可以正常执行,我觉得和他的差不多呐?

差在else 用的地方哦
你认真理解下我楼上说的for循环和else配合的效果
然后去看下你代码和它代码的差别~

Twilight6 发表于 2020-5-27 16:12:46

HDP1008 发表于 2020-5-27 15:46
他这个又可以正常执行,我觉得和他的差不多呐?

我回来了,沉默时间过了哈哈,他的else 和我的代码else 位置相同 你的位置不对

要理解这句话:

循环下面用else的作用效果是 如果 for 循环正常结束则执行同缩进 for 下面的 else ,否则不执行 else
比如遇到break 就是不正常中断循环,也就不会执行 else

Stubborn 发表于 2020-5-27 16:28:47

def getPrime(n):
    primes = * n
    primes, primes = False, False
    for (i, prime) in enumerate(primes):
      if prime:
            for j in range(i * i, n, i): primes = False
    return

lower=int(input("请输入区间最小值:"))
higer=int(input("请输入区间最大值:"))

n = getPrime(higer+1)
for idx, val in enumerate(n):
    if lower < val:
      print(n)
      break

HDP1008 发表于 2020-5-27 16:46:36

Twilight6 发表于 2020-5-27 16:12
我回来了,沉默时间过了哈哈,他的else 和我的代码else 位置相同 你的位置不对

要理解这句话:


嗯嗯终于理解了这俩个代码的区别了
代码1:
num=1
for i in range(1,6):
          num=num*i
          print(num)
   

代码2
num=1
for i in range(1,6):
          num=num*i
print(num)

Twilight6 发表于 2020-5-27 16:47:39

HDP1008 发表于 2020-5-27 16:46
嗯嗯终于理解了这俩个代码的区别了
代码1:



哈哈{:10_297:}
https://xxx.ilovefishc.com/forum/202005/27/132745rjvcvw1z2148jthd.gif

HDP1008 发表于 2020-5-27 17:32:23

哈哈
页: [1]
查看完整版本: 输出指定范围内的素数