|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
各位大神:
我在看小甲鱼视频<了不起的分支和循环(V)>中讲解以下的代码:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '=', x, '*', n // x)
break
else:
print(n,'是一个素数')
代码执行后执行的结果为:
2 是一个素数
3 是一个素数
4 = 2 * 2
5 是一个素数
6 = 2 * 3
7 是一个素数
8 = 2 * 4
9 = 3 * 3
我有以下问题:
1)当外层for循环语句n进行第一层循环的时候,n=2,进入到内部for循环语句时,for x in range(2,2),此时x的取值为何?
2)当外层for循环语句执行到第三遍时,即n=4时,内部for循环语句则为for x in range(2,4),x会遍历为2和3的两个值,当x为2时,满足if n % x == 0的要求,则会执行后续print(n, '=', x, '*', n // x)语句,但当x为3时,则不会满足if n % x == 0的要求,但为何没有跳出去执行下面else的语句部分?
3)如果把该例子中的'n % x == 0:'中的n和x进行对调,即'x % n == 0:',该函数运行结果为何变为以下?
2 是一个素数
3 是一个素数
4 是一个素数
5 是一个素数
6 是一个素数
7 是一个素数
8 是一个素数
9 是一个素数
|
|