小学课后服务 Python少儿编程 基础篇:14-好帮手函数 课件 (25张PPT)

资源下载
  1. 二一教育资源

小学课后服务 Python少儿编程 基础篇:14-好帮手函数 课件 (25张PPT)

资源简介

(共25张PPT)
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
少儿编程课
好帮手函数
素数
质数又称素数。一个大于1的自然数,除了1和它自身外,
不能被其他自然数整除的数叫做质数
与质数相对应的称为合数。
最大公因数
公因数,亦称“公约数”。
如果一个整数同时是几个整数的因数,称这个整数为它们的“公因数”。
例如:6可以同时被24,36整除,则6就是24和36的公因数。
公因数可能有多个,最大的那一个称为最大公因数。
公倍数是指在两个或两个以上的自然数中,如果它们有相同的倍数,这些倍数就是它们的公倍数。例如:24即是6的倍数也是8的倍数,则24就是6和8的公倍数。公倍数可以有多个,所有公倍数中最小的,就称为最小公倍数。
最小公倍数
重复代码的产生
在前面求解约数、素数、倍数的时候总会有一些需求是反复出现的。
例如:我们通过分解质因数求解最小公倍数或最大公约数的时候,对数字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作为函数的输出。
判别素数的函数
def is_prime(num):
for x in range(2,num):
if num % x==0:
return False
return True
自定义函数的使用
n=8
if is_prime(8):
print("%s是素数"%n)
else:
print("%s是合数")
PEP8编码风格
就像写作文时有格式的要求,例如:每一段要另起一行写,段落开头空两格。写Python代码时一样有关于格式的若干要求,这些要求被编辑整理为《第8号python增强提案》,英文名称《 Python Enhancement Proposal #8 》,简称又叫PEP8。
PEP8编码风格
以下是一些常见的PEP8中的格式要求:
使用空格来表示缩进,而不要用tab
函数、变量及属性应该用小写字母来拼写,各单词之间以下划线相连
from…import语句应在总放在文件开头
每行最大长度79个字符
各种右括号、逗号、冒号、分号前不要加空格。
操作符(例如= and or)左右各加一个空格,不要为了对齐增加空格。
注意:PEP8是一种建议而不是强制性要求,但是为了保证代码的规范化和整洁,最好按照PEP8的要求来书写。
求解最大公约数的函数
定义一个函数,求解两个数的最大公约数。并用自定义的函数求解24,32,64的最大公约数是什么?
设计思路:
使用def开始定义,函数名称可以成为get_factor,函数接收二个数字作为输入。所以完整的函数定义为def get_factor(m,n)。
利用穷举法或者数学特性法构建函数体。
将最大公约数作为函数的输出。
求解最大公约数的函数
利用数学特性法求解最大公约数
def get_factor(m,n):
while True:
if m % n==0:
return n
else:
m,n=n,m%n
调用最大公约数的函数
用自定义的函数求解24,32,64的最大公约数
#方式1
n=get_factor(24,32) #先求解24与32的最大公约数
m=get_factor(n,64) #再求解n与64的最大公约数
print(m) #打印24,32,64的最大公约数
#方式2
m=get_factor(get_factor(24,32),64)
print(m) #打印24,32,64的最大公约数
求解最小公倍数的函数
定义一个函数,求解两个数的最小公倍数。并用自定义的函数求解4,5,6的最小公倍数是什么?
设计思路:
使用def开始定义,函数名称可以成为get_mu,函数接收二个数字作为输入。所以完整的函数定义为def get_mu(m,n)。
利用穷举法或者数学特性法构建函数体。
将最小公倍数作为函数的输出。
求解最小公倍数的函数
利用穷举法求最小公倍数
def get_mu(m,n):
temp=1
while True:
if temp%m==0 and temp%n==0:
return temp
else:
temp+=1
求解最小公倍数的函数
还可以利用数学特性法求解
def get_mu(m,n):
f=get_factor(m,n) #利用已经构建好的函数求解最大公约数
mu=m*n/f
return mu
调用最小公倍数的函数
用自定义的函数求解4,5,6的最小公倍数
#方式1
n=get_mu(4,5) #先求解4与5的最小公倍数
m=get_mu(n,6) #再求解n与6的最小公倍数
print(m) #打印4,5,6的最小公倍数
#方式2
m=get_mu(get_mu(4,5),6)
print(m) #打印4,5,6的最小公倍数

展开更多......

收起↑

资源预览