计算质数
1.def is_prime(n):
2.# 定义 is_prime(),接收一个参数
3.if n < 2: # 开始使用接收到的参数(值)开始计算……
4.return False
-
不再是返回给人,而是返回给调用它的代码……
6.if n == 2:
7.return True
8.for m in range(2, int(n**0.5)+1):
9.#使用到了初中时学到的数学知识:
假如一个数N是合数,它有一个约数a,那么有a×b=N,则a、b两个数中必有一个大于或等于根号N,一个小于或等于根号N。因此,只要小于或等于根号N的数(1除外)不能整除N,则N一定是素数
10.if (n % m) == 0:
11.return False
12.else:
13.return True
14.for i in range(80, 110):
15.if is_prime(i):
16.# 调用 is_prime() 函数,
17.print(i)
-
如果返回值为 True,则向屏幕输出 i
第一遍看时,这些字都认识,但就是这段平平无奇的语言,在一点点地为我揭开编程的面纱,让我对原来迷糊的运算有了扒开门缝看到一点亮光的感觉,心理也因此敞亮一点了。
if...,for...在控制流程:在什么情况下运算什么,在什么情况下重复运算什么;
第 15 行is_prime()这个函数的调用,也是在控制流程 —— 所以我们可以*把函数看作是 “子程序” *;一旦这个函数被调用,流程就转向开始执行在第 1 行中定义的is_prime()函数内部的代码,而这段代码内部还是计算和流程控制,决定一个返回值 —— 返回值是布尔值;再回到第 15行,将返回值交给if判断,决定是否执行第 17
行……
计算机是可编程设备可以做流程控制,是因为它可以做布尔运算,即,它可以对布尔值进行操作,而后将布尔值交给分支和循环语句,构成了程序中的流程控制。
自学是门手艺-李笑来
网友评论