(本科)第6章 函数ppt课件.pptx
《(本科)第6章 函数ppt课件.pptx》由会员分享,可在线阅读,更多相关《(本科)第6章 函数ppt课件.pptx(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程主讲人:(本科)第6章 函数ppt课件Chap6 FunctionNanjing UniversityDepartment of Computer Science and TechnologyDepartment of University Basic Computer TeachingNanjing University函数3 较大规模的程序通常会被划分成一个个功能模块,这些功能模块就是函数(function)函数函数函数程序Nanjing University函数的概念4Nanjing University函数5函数是一个独立的代码块在解决大规模问题时采用“模块化”策略,将一个大而复杂
2、的原始任务分解为多个较简单的子任务,再为每个简单的子任务设计算法将描述其算法的一组语句封装为一个独立代码块,为每个独立代码块定义一个名字以及能与其他独立代码块通信的接口,这种独立的代码块定义就是函数。Nanjing University找前5个默尼森数 P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数 例如P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。6Nanjing University找前5个默尼森数 P是素数且M也是素数,并且满足等式M=2P-1,则称M为默尼森数 例如P=5,M=2P-1=31,5和31都是素数,因此31是默尼森数。7使用函数可以在整
3、体上简化程序结构,降低程序开发和修改的复杂度,提高程序的可读性和可复用性。Nanjing UniversityPython中的函数8内建函数01第三方库03标准库函数02用户自定义函数04Nanjing UniversityPython中的函数9内建函数内建函数指 包 含 在_builtins_模块中的函数,安装完Python后可以直接使用标准库标准库需要先导入模块再使用函数,每个库有相关的一些函数第三方库第三方库非常多,是Python重要的特征和优势用户自定义函数用户自定义函数有固定的定义、调用和参数传递方式等Nanjing University常用Python标准库函数10Nanjing
4、University常用Python标准库函数11已由系统事先定义使用时直接导入后调用:osredatetimesysrandommath模块名.函数名(参数表)函数名(参数表)Nanjing University6.2.1 os模块中的函数12Nanjing Universityos模块中常用的处理文件及目录的函数13 import os os.getcwd()C:WINDOWSsystem32 path = d:temp os.chdir(path) os.listdir(path)act.txt, awc, , web, write.exeSourcedir(os) os.getcwd(
5、)d:temp os.rename(current.txt, new.txt) os.remove(new.txt) os.mkdir(d:temptempdir) os.rmdir(d:temptempdir)SourceNanjing University6.2.2 random模块中的函数14Nanjing Universityrandom模块伪随机数生成器15 import random random.seed(100) random.random() # 生成一个0, 1.0)之间的一个随机浮点数0.1456692551041303 random.random()0.45492700
6、451402135 random.random()0.7707838056590222 random.seed(100) random.random()0.1456692551041303Sourcedir(random)Nanjing Universityrandom模块中常用函数的功能和使用方法16 import random random.choice(C+, Java, Python) Java random.randint(1, 100)37 random.randrange(0, 10, 2) 4 random.uniform(5, 10)5.776718084305783Sour
7、cedir(random)Nanjing Universityrandom模块中常用函数的功能和使用方法17 import random random.sample(range(100), 10)16, 49, 26, 6, 61, 64, 29, 28, 34, 72 nums = 1002, 1004, 1001, 1005, 1008 random.shuffle(nums) nums1002, 1008, 1001, 1005, 1004SourceNanjing University6.2.3 datetime模块中的函数18Nanjing Universitydatetime模块中
8、的函数19 from datetime import date date.today() datetime.date(2018, 6, 26) from datetime import time tm = time(23, 20, 35) print(tm)23:20:35SourceNanjing Universitydatetime模块中的函数20 from datetime import datetime dt = datetime.now() dtdatetime.datetime(2018, 6, 26, 23, 25, 4, 125366) print(dt.strftime(%a
9、, %b %d %Y %H:%M)Tue, Jun 26 2018 23:27Source形式形式1形式形式2含义含义%a%A星期%b%B本地月份%d月份%y%Y年份%H%I小时数%M分钟数Nanjing Universitytimestamp()和fromtimestamp()21 dt = datetime(2018, 6, 26, 23, 29) print(dt)2018-06-26 23:29:00 ts = dt.timestamp() ts1530026940.0 print(datetime.fromtimestamp(ts)2018-06-26 23:29:00SourceN
10、anjing University函数的定义和调用22Nanjing University函数函数调用之前必须先定义23内建函数或标准库函数自定义函数Nanjing University6.3.1 函数的定义24Nanjing University函数的定义25def 函数名函数名(参数表参数表): 文档字符串文档字符串 函数体函数体语 法 表示函数开始,在第一行书写,该行被称为函数首部,用一个冒号结束; 函数名是函数的名称,是一个标识符,取名时尽量要做到见名识义;def函数名Nanjing University函数的定义26def 函数名函数名(参数表参数表): 文档字符串文档字符串 函数体
11、函数体语 法 函数名后紧跟一对圆括号(),括号内可以有0个、1个或多个参数,参数间用逗号分隔,这里的参数称为形式参数(简称形参),形参只有被调用后才分配内存空间,调用结束后释放所分配的内存空间; 函数体需要缩进,它包含赋值语句和一些功能语句,如果想定义一个什么也不做的函数,函数体可以用pass语句表示。参数表函数体文档字符串是可选的Nanjing University自定义函数的创建#example.py def printStr(x): print the string print(x)File27一个非常简单的打印一个字符串的函数 from example import printStr
12、print (printStr._doc_)print the stringSourceNanjing University6.3.2 函数的返回28Nanjing University函数的返回29return 表达式表达式1, 表达式表达式2, , 表达式表达式n语 法 通常会通过return语句将值带回给主调函数 位置在函数体内 如果是返回多个值,则构成一个元组 如果不需要返回任何值,则不用return语句或用return None语句返回值Nanjing University函数的返回30 def foo(x, y):计算参数的和return x + ySource返回两个参数的和的函
13、数定义Nanjing University6.3.3 函数的调用31Nanjing University函数的返回32函数名函数名(参数表参数表)语 法 函数调用时括号中的参数称为实际参数(简称为实参),在函数调用时分配实际的内存空间。 如果有多个实参,实参间用逗号分隔。 可以没有实参,调用形式为:函数名() 圆括号不能省略。 调用时实参将值一一传递给形参,程序执行流程转移到被调用函数,函数调用结束后返回到之前的位置继续执行。调用Nanjing University函数的导入和调用33example.pyprintStr() from example import printStr print
14、Str(Hi, Python!)Hi, Python!SourceNanjing University34# prog6-1.pydef gcd(x, y): calculate the GCD of x and y if x import test print(test.result)9SourceNanjing UniversityPython 中的main函数(主模块)38#test.pydef foo(x): return x * x if _name_ = _main_: x = 3 result = foo(x)File import test print(test.result)
15、Traceback (most recent call last): File , line 1, in print(test.result)AttributeError: module test has no attribute result print(test.foo(3)9SourceNanjing University39Nanjing University40# prog6-3.pydef search(scores): maxScore = 0 minScore = 100 for k, v in scores.items(): aveg = (scoresk0 + scores
16、k1 + scoresk2) / 3 if aveg = maxScore: maxScore = aveg maxName = k if aveg my_add(3, 5)8lambda函数又称为匿名函数,即没有具体的函数名lambda函数的目的是让用户快速地定义单行函数,简化用户使用函数的过程。Nanjing University42def search(scores): t = sorted(scores.items(), key = lambda d : (d10 + d11 + d12) / 3) return tlen(t)-10, t00File使用lambda函数确定了排序函数
17、sorted()的参数key,确定了scores.items()的排序关键字Nanjing University43 dScores = Jerry : 87, 85, 91, Mary: 76, 83, 88, Tim: 97, 95,89, John : 77, 83, 81 a = sorted(dScores.items() , key = lambda d:d0)(Jerry, 87, 85, 91), (John, 77, 83, 81), (Mary, 76, 83, 88), (Tim, 97, 95, 89) a = sorted(dScores.items() , key
18、= lambda d:d10)(Mary, 76, 83, 88), (John, 77, 83, 81), (Jerry, 87, 85, 91), (Tim, 97, 95, 89)FileNanjing Universitylambda函数与函数式编程44 lst = 3, 2, 5, 8, 1 list(map(lambda x: x*2, lst)6, 4, 10, 16, 2 lst = 1, 2, 3, 4, 5, 6 list(filter(lambda x: x%2 = 0, lst)2, 4, 6 from functools import reduce lst = 1,
19、2, 3, 4, 5 reduce(lambda x, y: x + y, lst)15SourceNanjing University主函数调用多个功能函数def f(): def g(): if _name_ = _main_: f() g()def f(): def g(): f()g()45Nanjing University嵌套调用def f(): def g(): f()if _name_ = _main_: g()46Nanjing University例6.4 左移或右移字符串中的字符47# prog6-4.pydef moveSubstr(s, flag, n): if n
20、len(s): return -1 else: if flag = 1: return sn: + s:n else: return s-n:+ s:-nFileif _name_ = _main_: s, flag, n = input(enter the string,flag,n:).split(,) result = moveSubstr(s, int(flag), int(n) if result != -1: print(result) else: print(the n is too large)FileOutput:输入测试数据beautiful,1,3输出结果为:beauti
21、ful若输入:I love Python,2,3输出结果为:fulbeautiNanjing University例6.5 寻找数字朋友组48# prog6-5.pydef findNumFriends(s): s = s.split(,) d, result = , for num in s: # 计算每一个数字各位数之和 sumNum = 0 for ch in num: # 寻找相同数字和的数字朋友 sumNum += int(ch) if sumNum in d.keys(): dsumNum += num else: dsumNum = num lst = sorted(d.item
22、s(), key = lambda d: d0) # 基于数字和进行排序 for item in lst: itemTemp = item1 itemTemp.sort() result.append(itemTemp) return resultFileNanjing University例6.5 寻找数字朋友组49# prog6-5.py 续if _name_ = _main_: s = input(Enter the numbers: ) result = findNumFriends(s) for item in result: print(item)FileOutput:Enter
23、the numbers: 143,267,342,562,224,134,276,252134, 143, 224252, 342562267, 276Nanjing University例6.6 模拟一个简易的用户注册和登录系统50# prog6-6.pyaccount = Zhangsan: 123456# account为全局变量def sign_up(): user_name = input(Please input your user name: ) while user_name in account.keys(): user_name = input(User name exis
24、ts, please choose another one:) password = input(Please input your password: ) accountuser_name = password print(Successfully sign up!)FileNanjing University例6.6 模拟一个简易的用户注册和登录系统51def sign_in(): user_name = input(Please input your user name: ) if user_name not in account.keys(): print(User name not
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 本科第6章 函数ppt课件 本科 函数 ppt 课件
限制150内