(共25张PPT)
CHINA FRESH STYLE
Can reuse the code
可以复用的代码
学习目标
Learning goals
函数的定义和调用
Learn how to use function definitions and call methods
贰
发布共享代码
Learn to release the commonly used method share code
叁
了解函数的作用
Understand what functions do
壹
CHINA FRESH STYLE
当我们面对一些复杂问题时,可以采取 “自顶向下、逐步细化 ” 的方法,即将一个完整的问题分成若干个小问题, 每个小问题实现一个功能, 再将每个小问题逐步细化、分解为一系列具体可实现的步骤。
本节我们将围绕 “解决火柴棒摆数字问题” 项目展开学习, 通过该项目活动,体验复用和共享代码为编程带来的便利。
CHINA FRESH STYLE
我们一起来数一数
每个数字都用了多少根火柴呢?
CHINA FRESH STYLE
如何计算一个数需要多少根火柴棒呢?
数字 0 1 2 3 4 5 6 7 8 9
需要的火柴棒 6 2 5 5 4 5 6 3 7 6
1.列出5个用6根火柴棒摆出的数字,分别是
0 , 6 , 9 , 14 , 77 , 111
2.要摆出数字103需要多少根火柴棒?怎么计算?
可以将这个数的每个数位上的数字所需要的火柴棒数加起来。
问:有六根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
想一想:根据上述问题怎样设计算法呢?
CHINA FRESH STYLE
算法分析
1.数字“1”需要的火柴棒最少,所以能摆出的自然数最大是111
2.计算0和111之间的所有数字,统计需要的火柴棒
3.只要是恰好需要6根火柴棒的直接输出。
算法设计
查找符合条件数的范围
从0开始,利用穷举法—列举出范围内每个数
每个数需要多少根火柴棒。
判断是否用了6根,满足条件,输出此数。
1
4
3
2
CHINA FRESH STYLE
算法流程图描述
CHINA FRESH STYLE
如何让计算机找出这个数字中的所有个位数呢?
想一想,如果我们想得到“125”的个位上的“5”,哪种运算可以实现?除、整除还是取模?
125%10=5
我们定义一个变量digit来接受取模运算的结果,用tens来接受整除的结果:
digit1 = 125%10 tens1=125//10
Digit2 = tens1%10 tens2=tens1//10
CHINA FRESH STYLE
1.将这个数除以10求余(取模),求得个位数;
2.将这个数除以10取整数
3.重复第1和第2步骤,直到这个数为0
如何设计算法,让计算机找出这个数字中的所有个位数呢?
实现方法:
CHINA FRESH STYLE
算法的流程图描述及代码实现
list = [6,2,5,5,4,5,6,3,7,6]
num = int(input(“请输入0-111之间的任意数字”))
while(num>0):
i = num%10
s = s + list[i]
num = num//10
数字 0 1 2 3 4 5 6 7 8 9
需要的火柴棒 6 2 5 5 4 5 6 3 7 6
CHINA FRESH STYLE
设计函数——计算摆出一个数字需要的火柴棒数
def Match_num(num):
list=[6,2,5,5,4,5,6,3,7,6]
s = 0
while (num>0):
i = num%10
s = s+list[i]
num = num//10
print(s)
代码实现
sum = 6
i = 0
while(i<=111):
if(Match_num(i)==sum):
print(i)
i = i + 1
else:
i=i+1
函数
CHINA FRESH STYLE
壹
function
函数
FUNCTION
用户自定义函数
用户自定义函数是用户自己编写的一段程序
系统函数
系统函数即函数库中的标准函数,是程序设计语言或操作系统提供给用户的一系列已经编好的程序。
如:
print()输出函数
input()输入函数
函数
{
函数名
参数
返回值
函数体
定义函数的基本格式
def 函数名(参数):
#函数说明
语句或语句组
return 返回值
1、普通函数 myfunction(),my_function_name()
小写字母;
可使用下划线,单词之间用_分割;
如:myfunction(),my_example_function(),get_name() ,count_number() ,ad_stat()
2、私有函数(外部访问会报错)__get_name()
以__开头(2个下划线)
小写字母;
可使用下划线,单词之间用_分割;
如:__get_name()
函数名:
参数:是用来向函数传递值的,当有多个参数时,
用“,”分隔开。
返回值:函数执行完成,由return语句将表达式
值返回给调用者,结束函数。
函数调用:函数的调用采用函数名(参数)的方式。
注:程序执行时def块中的代码不是主程序的一部分,
因此会跳过该代码。
def repeat(n):
#输出n次“中国,你最棒!”
for i in range(n):
print(i+1," 中国,你最棒!")
return n
n=int(input("请输入你要重复的次数:"))
print("共输出了",repeat(n),"次中国你最棒!")
举例:
程序执行顺序:1、n=…
2、print(…)
3、def repeat(n)…
Post code
发布代码
CHINA FRESH STYLE
贰
以python安装在D盘为例
命令提示符:
python
import sys
print(sys.path)
了解python安装位置
新建:
mymodule.py与setup.py文件
在python安装位置处创建文件夹
命令提示符:
d:
cd mymodule
d:\python\python setup.py sdist
构建发布文件
命令提示符:
d:\python\python setup.py install
安装发布文件
导入模块并使用
Import the module and use it
使用语句:
“import mymodule”
导入模块
mymodule.match_num()
调用函数
已经构建发布的模块必须先导入程序才能使用
Built and published modules must be imported into the program before they can be used.
Has been released to build module has to lead into the program to use
课堂总结
ClASS SUMMARY
To improve the efficiency of the program
System functions and user-defined functions
def 函数名(参数):
#函数说明
语句或语句组
return 返回值
发布代码
导入模块并使用
函数的作用
函数的定义
函数的格式
共享代码
CHINA FRESH STYLE
Can reuse the code
感谢您的观看
授课人:信息技术老师