凯0102 发表于 2020-8-15 10:04:59

课后作业34讲

问题:请问以下例子中,循环中的 break 语句会跳过 else 语句吗?
def showMaxFactor(num):
    count = num // 2
    while count > 1:
      if num % count == 0:
            print('%d最大的约数是%d' % (num, count))
            break
      count -= 1
    else:
      print('%d是素数!' % num)

num = int(input('请输入一个数:'))
showMaxFactor(num)

有点弄不明白这个,如果循环中的 break 语句会跳过 else 语句,那么else后的语句有什么作用?
Python新手,还望指教,谢谢

1q23w31 发表于 2020-8-15 10:05:59

本帖最后由 1q23w31 于 2020-8-15 10:08 编辑

会啊,break会跳出整个循环

小甲鱼的铁粉 发表于 2020-8-15 10:06:35

会的

heidern0612 发表于 2020-8-15 10:10:06

帖个代码吧,这缩进看着有点乱。

凯0102 发表于 2020-8-15 10:10:29

1q23w31 发表于 2020-8-15 10:05
会啊,break会跳出整个循环

def showMaxFactor(num):
    count = num // 2
    while count > 1:
      if num % count == 0:
            print('%d最大的约数是%d' % (num, count))
            break
      count -= 1
    else:
      print('%d是素数!' % num)

num = int(input('请输入一个数:'))
showMaxFactor(num)

凯0102 发表于 2020-8-15 10:11:19

1q23w31 发表于 2020-8-15 10:05
会啊,break会跳出整个循环

def showMaxFactor(num):
    count = num // 2
    while count > 1:
      if num % count == 0:
            print('%d最大的约数是%d' % (num, count))
            break
      count -= 1
    else:
      print('%d是素数!' % num)

num = int(input('请输入一个数:'))
showMaxFactor(num)

heidern0612 发表于 2020-8-15 10:12:19

凯0102 发表于 2020-8-15 10:11


当while条件不满足的时候,不就执行else了吗?……

小甲鱼的铁粉 发表于 2020-8-15 10:15:49

{:10_297:}

小甲鱼的铁粉 发表于 2020-8-15 10:19:38

凯0102 发表于 2020-8-15 10:11


如果在while中num%count一直都不等于零,一直没有进入if循环,那么等while退出后,就进入了else
如果在while中num%count有一次等于零,进入了if,就不是素数,就break退出了while循环。因为在while循环里面进入过一次if,所以不再执行这个else了

凯0102 发表于 2020-8-15 10:31:05

小甲鱼的铁粉 发表于 2020-8-15 10:19
如果在while中num%count一直都不等于零,一直没有进入if循环,那么等while退出后,就进入了else
如果在w ...

明白了,蟹蟹
页: [1]
查看完整版本: 课后作业34讲