内容正文:
少儿编程课
1
好帮手函数
素数
质数又称素数。一个大于1的自然数,除了1和它自身外,
不能被其他自然数整除的数叫做质数
与质数相对应的称为合数。
3
最大公因数
公因数,亦称“公约数”。
如果一个整数同时是几个整数的因数,称这个整数为它们的“公因数”。
例如:6可以同时被24,36整除,则6就是24和36的公因数。
公因数可能有多个,最大的那一个称为最大公因数。
4
公倍数是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。例如:24即是6的倍数也是8的倍数,则24就是6和8的公倍数。公倍数可以有多个,所有公倍数中最小的,就称为最小公倍数。
最小公倍数
5
重复代码的产生
在前面求解约数、素数、倍数的时候总会有一些需求是反复出现的。
例如:我们通过分解质因数求解最小公倍数或最大公约数的时候,对数字m和数字n都要分别进行一次质因数分解,再进行求公倍数和公约数的操作。
代码示例:
m = 用户输入数字
n = 用户输入数字
ms = 对m进行分解质因数
ns = 对n进行分解质因数
cd = 利用ms和ns求解最大公约数
cm = 利用ms和ns求解最小公倍数
对m,n拆解质因数的过程基本类似,但是代码要重复写上两遍
重复代码的提取
我们可以把重复的内容提取出来并取一个名字。
每当需要使用到重复内容的时候,我们只要使用名字就可以了。
def func_name( num):
进行质因数的分解过程
return 分解结果
函数的定义
刚才我们的所作所为,实际是定义了一个函数,或者也可以通俗的称为方法。
函数/方法就是告诉了计算机做一件事情的法子。
比如刚写的函数/方法就是告诉python求解质因数列表的法子。
函数的组成
定义函数使用:def
函数的名字:func_name
函数的输入:num (函数的输入也会被称为函数的参数)
函数体:进行质因数的分解过程
函数的输出:分解结果 (函数的输出也会被称为函数的返回值)
注意:所有的函数都必须有函数体,也必然会有输出。但是def,函数名称和函数的输入并不是每一个函数都有。
注意:所有的函数,无论有没有显式的写出return语句,都会有输出。而且,如果显式的写了return语句,一旦执行到return语句时,函数立即执行结束。
定义分解质因数的函数
# 利用def定义一个函数
# 函数的名字叫做get_primes
# 函数的主要作用是对输入的num进行质因数分解
# 将分解的结果作为函数的输出
# 遇到return,整个函数结束
def get_primes(num):
函数体
return 质因数列表
定义分解质因数的函数
def get_primes(num):
s=[] #存放num的所有质因数
k=2
while True:
if num==k:
s.append(k) #当num与k相等的时候,意味着循环结束了
return s #将s作为结果输出给函数的使用者,整个方法结束
elif num % k ==0:
s.append(k)
num=num//k
else:
k+=1
自定义函数的使用
当定义了函数之后,使用func_name( )的方式进行调用。
例如,要使用get_primes函数获得质因数列表,只需要get_primes(num)即可。
num为待分解的数字。
自定义函数的使用
ms=get_primes(12)
print(ms) #执行结果为[2,2,3]
ns=get_primes(20)
print(ns) #执行结果为[2,2,5]
判别素数的函数
我们经常需要判别一个数字是不是素数。请设计一个函数,函数的输入为一个数字,如果这个数字是素数,则函数的输出为True,否则为False。
设计思路:
使用def开始定义,函数名称可以成为is_prime,函数接收一个数字作为输入。所以完整的函数定义为def is_prime(num)。
根据素数的定义构建函数体。
根据判定的结果,将True或者False作为函数的输出。
14
判别素数的函数
def is_prime(num):
for x in range(2,num):
if num % x==0:
return False
return True
15
自定义函数的使用
n=8
if is_prime(8):
print("%