求大佬解惑 缩进和地板除问题
萌新刚学习 有两个问题 求大佬解惑1.为什么求素数这里需要地板除呢?我改成了除,为啥多了.00
2.还有那个if 和else不是两种情况吗 为什么缩进不一样呀
标准
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
第一种
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,"是一个素数")
3 是一个素数
4 = 2 * 2.0
5 是一个素数
5 是一个素数
5 是一个素数
6 = 2 * 3.0
7 是一个素数
7 是一个素数
7 是一个素数
7 是一个素数
7 是一个素数
8 = 2 * 4.0
9 是一个素数
9 = 3 * 3.0
第二种
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.0
5 是一个素数
6 = 2 * 3.0
7 是一个素数
8 = 2 * 4.0
9 = 3 * 3.0
1.为什么求素数这里需要地板除呢?我改成了除,为啥多了.00
因为单纯的 / 除法,返回的结果是个浮点型,而使用 // 地板除,返回的就是整型
因为这里 if 条件已经判断肯定是整除了,所以直接用地板除可以把小数 .00 部分去除,更美观些
2.还有那个if 和else不是两种情况吗 为什么缩进不一样呀
这里使用的是 for-else 搭配,只要 for 循环正常结束(即不遇到 break)就会指向 else 部分代码
while 也可以搭配 else 使用,效果和 for 循环相同,都是不遇到 break 就会在循环结束后指向 else 处的代码块
try 也可以搭配 else 使用,在 try 没有捕获到错误时执行 else 代码块
多谢大佬解惑
那个为什么是for和else对齐而不是if和else对齐呢{:10_254:}{:10_266:}
页:
[1]