Python课件PPT:第6章 函数
合集下载
Python程序设计第6章函数的设计和使用(第8次课)ppt课件
函数定义格式如下:
def 函数名([参数]): ……(函数体)
【例6-1】 定义一个输出函数,打印出Hello World!。
框图:
开始 调用函数sayHello()
结束
程序:
#Exp6_1.py def sayHello( ): #函数定义
print 'Hello World! ' #函数体
#主程序 sayHello( ) #函数调用
程序运行结果: x is 50 changed local x to 2
print 'value of x is', x
# Ea=3.14*r*r perimeter=2*3.14*r print '半径为',r,'的圆面积为:', area print '半径为',r,'的圆周长为:', perimeter #主程序 circle(2) #函数调用 circle(3) #函数调用 circle(4) #函数调用
计算机编程导论
课程建设组 编著 2014.10
第6章 函数的设计和使用
1.问题的引入 2. 函数基础知识
6.1 问题的引入
【问题6-1】计算三个圆的面积和周长,这三个圆的半 径分别为2,3,4。 分析:按照已学过的知识,解决该问题的程序如下:
#Ques6_1.py a=2 area_a=3.14*a*a perimeter_a=3.14*2*a print '半径为2的圆的面积为:', area_a print '半径为2的圆的周长为:', perimeter_a b=3 area_b=3.14*b*b perimeter_b=3.14*2*b print '半径为3的圆的面积为:', area_b print '半径为3的圆的周长为:', perimeter_b
def 函数名([参数]): ……(函数体)
【例6-1】 定义一个输出函数,打印出Hello World!。
框图:
开始 调用函数sayHello()
结束
程序:
#Exp6_1.py def sayHello( ): #函数定义
print 'Hello World! ' #函数体
#主程序 sayHello( ) #函数调用
程序运行结果: x is 50 changed local x to 2
print 'value of x is', x
# Ea=3.14*r*r perimeter=2*3.14*r print '半径为',r,'的圆面积为:', area print '半径为',r,'的圆周长为:', perimeter #主程序 circle(2) #函数调用 circle(3) #函数调用 circle(4) #函数调用
计算机编程导论
课程建设组 编著 2014.10
第6章 函数的设计和使用
1.问题的引入 2. 函数基础知识
6.1 问题的引入
【问题6-1】计算三个圆的面积和周长,这三个圆的半 径分别为2,3,4。 分析:按照已学过的知识,解决该问题的程序如下:
#Ques6_1.py a=2 area_a=3.14*a*a perimeter_a=3.14*2*a print '半径为2的圆的面积为:', area_a print '半径为2的圆的周长为:', perimeter_a b=3 area_b=3.14*b*b perimeter_b=3.14*2*b print '半径为3的圆的面积为:', area_b print '半径为3的圆的周长为:', perimeter_b
最新Python基础6ppt课件
边框
所有的widget都有一个边框。 边框包括3D的relief(浮雕)效果和Focus
Highlight(焦点高亮)区域。 Relief option用来表示如何绘制一个widget
的边框,可以是SUNKEN RAISED, GROOVE RIDGE和FLAT borderwidth或 者bd option表示widget边框的大小,一般 为2或1。太大不好看。
Tkinter
对于较大程序,一般写到一个类中。
Widget配置
Tk中的每一个widget都有很多option,通过 改变这些option可以改变widget的外观。典 型的option有控制显示的内容,颜色,大小, 事件处理函数等等,Tkinter提供了统一界 面用于处理所有的option。
Highlightthickness 表示Focus Highlight Region的宽度,一般为1或2.
边框
from Tkinter import * bd = range(1,9,3) t = [ "border = " + str(k) for k in bd ] relief= [ RAISED,
Pack管理器
Cavity(空间):master widget上的空间, 表示分配空间一部分slave widget之后, master widget还剩下的空间,用于分配给 其它还没有摆好的slave widget。
Parcel(包裹):从cavity中分配出一个空 间,用于摆放一个slave widget。
Tkinter
Option?所有的Widget都有很多options,包 括fg(前景色),bg(背景色),font(字 体),command(事件处理函数),text (内容)等等。
《Python语言》电子课件 第六章
good数则按照给定格式输出,输出使用格式化操作,使输出
更加方便。
1 for i in range(1000, 10000):
2
a = i / 1000
3
b = i / 100 % 10
4
c = i % 100 / 10
5
d = i % 10
6
if a ** 4 + b ** 4 + c ** 4 + d ** 4 == i:
17
6.1.3 字符串模板
字符串格式化操作符是Python处理这类问题的主要手段。然 而它也不是完美的,其中的一个缺点是不够直观,即使是现 在使用字典形式转换的程序员也会偶尔出现遗漏转换类型符 号的错误,而字符串模板的优势是不用去记住所有的相关细 节,就可以完成对原有参数的直接替换。
新式的字符串Template对象存在string模块中,新式的字符 串Template对象使用美元符号“$”定义待替换的参数,使用 substitute()方法和safe_substitute()方法进行参数替换。 substitute()方法更为严谨,在substitute()缺少的情况下 它会报一个KeyError的异常出来;而safe_substitute()在缺 少key时,直接原封不动的把参数字符串显示出来。
re模块正则表达式方法 正则表达式特殊符号
4
6.1 字符串操作
字符串操作是编程语言中的一项基本操作,比如通过切片操 作得到字符串的子序列,再比如字符串在输出时需要格式输 出。 Python语言所提供的字符串操作方法将大大简化编程复杂度 ,缩短开发周期。
5
6.1.1 切片操作
字符串的切片操作就是在字符串中按规则地提取一段字符串 ,达到简化字符串的目的。Python语言中切片操作主要有两 种形式:
Python程序设计课件第6章 Python文件与数据库操作
1. write(string)方法
f.write('Our wills unite like a fortress') ➢ write语句不会自动换行,如果需要换行,则要使用换行符'\n' 2.read (size)方法:从指定文件中读取指定数据
文件对象.read([size])
➢ 参数size表示设置的读取数据的字节数,若该参数缺省,则一次读 取指定文件中的所有数据。
➢ 存取是直接的值处理 ➢ 不需要编/解码,不存在
转换时间,但通常无法 直接读懂
目录
• 文件相关的基本概念 • 文件夹与目录操作 • 文件基本的操作 • 处理XML格式文件的数据高阶函数 • JSON格式文件及其操作 这里说明 • Python操作MySQL数据库 图片内容
1 os.path模块
f.seek(2, 0)
4.close()方法:该方法实现关闭文件
3 按行对文件内容读写
文件基本的操作
1.writelines()方法
该方法需要通过制定一个字符串类型的列表,该方法会将列表中的每一
个元素值作为单独的一行写入文件。
【例】利用writelines()方法演示文件写入操作的应用示例。
fo = open(".\\text.txt", "w") print("读写的文件名:", ) seq = ["Hello\n","life is short\n", "I want to learn python\n"] line = fo.writelines(seq) fo.close() 运行结果: 读写的文件名: .\text.txt
Python函数介绍课件
04 可变参数:使用*args或**kwargs来接收任意数量 的参数,可以方便地处理参数个数可变的情况
参数默认值
01
什么是参数默认值:在函数定 义时,为参数指定一个默认值, 当调用函数时,如果没有提供 该参数的值,则使用默认值。
02
默认值的作用:简化函数调 用,提高代码可读性和可维 护性。
03
如何设置参数默认值:在函数 定义时,在参数名后使用等号 (=)为参数指定默认值。
谢谢
4
形参和实参的类型可以不同,但必须兼容
5
形参和实参可以传递任意类型的数据,包括数值、字符串、列表、字典等
参数传递方式
01 值传递:将实参的值传递给形参,形参的改变不影 响实参
02 引用传递:将实参的地址传递给形参,形参的改变 会影响实参
03 默认参数:在定义函数时为参数指定默认值,调用 函数时可以省略该参数
函数的嵌套
01 概念:在一个函数内部定义并 调用另一个函数
02 作用:简化代码,提高代码可 读性和可维护性
03 示例:计算阶乘的函数中嵌套 计算每个数的阶乘
04 注意事项:避免嵌套层次过深, 可能导致代码难以理解和调试
递归函数的定义
01
递归函数是一种函数,它直接或间接 02
递归函数通常用于解决可以分解为更
性
函数的作用
01
02
03
04
简化代码:将重复 代码封装成函数, 提高代码可读性和
可维护性
提高代码重用性: 将可重用的代码封 装成函数,方便在
其他地方调用
提高代码模块化: 将相关功能封装成 函数,便于模块化
编程
提高代码执行效率: 通过函数调用,减 少重复计算,提高
参数默认值
01
什么是参数默认值:在函数定 义时,为参数指定一个默认值, 当调用函数时,如果没有提供 该参数的值,则使用默认值。
02
默认值的作用:简化函数调 用,提高代码可读性和可维 护性。
03
如何设置参数默认值:在函数 定义时,在参数名后使用等号 (=)为参数指定默认值。
谢谢
4
形参和实参的类型可以不同,但必须兼容
5
形参和实参可以传递任意类型的数据,包括数值、字符串、列表、字典等
参数传递方式
01 值传递:将实参的值传递给形参,形参的改变不影 响实参
02 引用传递:将实参的地址传递给形参,形参的改变 会影响实参
03 默认参数:在定义函数时为参数指定默认值,调用 函数时可以省略该参数
函数的嵌套
01 概念:在一个函数内部定义并 调用另一个函数
02 作用:简化代码,提高代码可 读性和可维护性
03 示例:计算阶乘的函数中嵌套 计算每个数的阶乘
04 注意事项:避免嵌套层次过深, 可能导致代码难以理解和调试
递归函数的定义
01
递归函数是一种函数,它直接或间接 02
递归函数通常用于解决可以分解为更
性
函数的作用
01
02
03
04
简化代码:将重复 代码封装成函数, 提高代码可读性和
可维护性
提高代码重用性: 将可重用的代码封 装成函数,方便在
其他地方调用
提高代码模块化: 将相关功能封装成 函数,便于模块化
编程
提高代码执行效率: 通过函数调用,减 少重复计算,提高
第6章__Python函数
如果想使用函数返回值,则有两种用法
用变量接收返回值,如 x = f(3) print 2 + x * 4 直接用在表达式中,如 print 2 + f(3) * 4
函数中定义的变量是局部的:即作用域是函 数体.
函数的形参可视为局部变量,只不过是在调用 时 才赋值.
24
局部变量和全局变量
在一个函数中定义的变量一般只能在该函 数内部使用,这些只能在程序的特定部分 使用的变量我们称之为局部变量;
在一个文件顶部定义的变量可以供该文件 中的任何函数调用,这些可以为整个程序 所使用的变量称为全局变量。
def treetop(ch): print " %s" % (ch) print " %s" % (3*ch) print " %s" % (5*ch) print "%s" % (7*ch)
def star_treetop(): treetop('*') treetop('*')
def caret_treetop(): treetop('^') treetop('^‘)
x =0 f() g()
30
提纲
函数的定义 函数的命名规则 函数的作用域 函数的参数 函数的返回值 常用函数
31
函数的参数
在一个函数中对参数名赋值不影响调用者 在一个函数中改变一个可变的对象参数会影
响调用者,如列表,字典,元组等。 参数是对象指针,无需定义传递的对象类型
def test(a,b): return (a+b)
def treetop(): print " *" print " ***" print " *****" print "*******"
用变量接收返回值,如 x = f(3) print 2 + x * 4 直接用在表达式中,如 print 2 + f(3) * 4
函数中定义的变量是局部的:即作用域是函 数体.
函数的形参可视为局部变量,只不过是在调用 时 才赋值.
24
局部变量和全局变量
在一个函数中定义的变量一般只能在该函 数内部使用,这些只能在程序的特定部分 使用的变量我们称之为局部变量;
在一个文件顶部定义的变量可以供该文件 中的任何函数调用,这些可以为整个程序 所使用的变量称为全局变量。
def treetop(ch): print " %s" % (ch) print " %s" % (3*ch) print " %s" % (5*ch) print "%s" % (7*ch)
def star_treetop(): treetop('*') treetop('*')
def caret_treetop(): treetop('^') treetop('^‘)
x =0 f() g()
30
提纲
函数的定义 函数的命名规则 函数的作用域 函数的参数 函数的返回值 常用函数
31
函数的参数
在一个函数中对参数名赋值不影响调用者 在一个函数中改变一个可变的对象参数会影
响调用者,如列表,字典,元组等。 参数是对象指针,无需定义传递的对象类型
def test(a,b): return (a+b)
def treetop(): print " *" print " ***" print " *****" print "*******"
Python语言PPT-第6章函数
*** 函数的参数和返回值
第六章 函数
函数的参数就是使得函数个性化的一个实例。代码如下所示:
>>> def MyFirstFunction(name_city): print(‘我喜欢的城市:’ + name_city)
运行结果如下:
>>> MyFirstFunction('南京') 我喜欢的城市:南京
PER_PRICE_1 = float(input('请输入单价:')) NUMBER_1 = float(input('请输入斤数:')) SUM_PRICE_1 = foodsprice(PER_PRICE_1,NUMBER_1) print('蔬菜的价格是:',SUM_PRICE_1) print('局部变量sum_price的值:',sum_price)
*** 函数的概述
第六章 函数
代码运行结果如下:
请输入单价:12 请输入斤数:1.56 蔬菜的价格是: 18.72 Traceback (most recent call last): File "G:/6_1_3.py", line 9, in <module> print('局部变量sum_price的值: ',sum_price) NameError: name 'sum_price' is not defined
*** 函数的参数和返回值
第六章 函数
*** 可变参数
可变参数又称收集参数,是将一个元组赋值给可变参数。如果可变参数后 面还有其它参数,在参数传递时要把可变参数后的参数作为关键字参数来 赋值,或者在定义函数参数时要给它赋默认值,否则会出错。
Python课程第三阶段第6课:Python的引用原理——Python+课件(共17张PPT)
01 课前回顾
01 课前回顾
• Python 内置函数定义;
自行设置函数很简单,但用户不可能将所有常用的功能都设置成函数。 Python很贴心地将一些常用的功能设置成了内置函数。这些函数无须 从模块中导入,也无须定义就可以在任意位置直接调用
02 课堂知识
02 课堂知识
引用的概念
在 `Python` 中 * 变量 和 数据 是分开存储的 * 数据 保存在内存中的一个位置 * 变量 中保存着数据在内存中的地址 * 变量 中 记录数据的地址,就叫做 引用 * 使用 `id()` 函数可以查看变量中保存数据所在的 内存地址
这样会改变b的内存地址嘛?
02 课堂知识
变量引用 的示例
在 `Python` 中,变量的名字类似于 便签纸 贴在 数据上 * 定义一个整数变量 `a`,并且赋值为 `1`
将变量 `a` 赋值为 `2`
将变量 `a` 赋值为 `2`
02 课堂知识
代码验证
02 课堂知识
可变和不可变类型
不可变类型,内存中的数据不允许被修改: 数字类型 `int`, `bool`, `float`, `complex`, `long(2.x)` 字符串 `str` 元组 `tuple`
可变类型,内存中的数据可以被修改: 列表 `list` 字典 `dict`
02 课堂知识
程序展示
a=1 print(id(a)) a=2 print(id(a)) b=a print(id(b)) c=1 print(id(c))
a = [1,2] print(id(a)) a.append(3) print(id(a))
03 基础任务
03 基础任务
• 使用id()方法验证其他可变类型
Python入门教程PPT课件:第6章 函数_PPT
局部 变量
1
全局 变量
2
匿名函数(lambda)
函数
[ 概念]
简单理解:函数就是可以完 成某项工作的代码块。
返回值 参数传递 函数的创建和调用
变量的作用域 匿名函数(lambda)
函数的创建和调用
1 创建函数 2 调用函数
不写()
def functionname([parameterlist]): ['''comments'''] [functionbody]
放在所有参数的最后
def functionname(…,[parameter1 = defaultvalue1]): [fuห้องสมุดไป่ตู้ctionbody]
返回值
None
return [value]
变量的作用域
[ 概念]
变量的作用域是指程序代码能够 访问该变量的区域,如果超出该区域, 再访问时就会出现错误。
return
()
functionname([parametersvalue])
参数传递
了解形 式参数 和实际
参数
1
关键 字参
数
3
位置 参数
2
为参数 设置默
认值
4
可变 参数
5
[ 概念]
位置参数是必须按照定义时
的个数和顺序进行参数传递,也
称必备参数。
[ 概念]
关键字参数是指使用形式参 数的名字来确定输入的参数值。
Python函数介绍课件
自定义函数
01
自定义函数是一种用户根据需要创建的函数
02
自定义函数可以完成特定的功能,提高代码的可读性和可维护性
03
自定义函数可以接受参数,返回结果
自定义函数可以封装复杂的逻辑,降低代码的复杂性
匿名函数
04
常用于快速定义简单的函
数,如排序、过滤等操作
03
可以在需要函数对象的
地方使用
02
通常使用lambda关键
函数的调试与优 化
调试方法
01
使用print()函数输出 中间结果,检查数据流
02
使用断点调试,逐步执 行代码,观察变量变化
03
使用日志记录,记录关 键信息,方便定位问题
04
使用代码审查工具,自 动检查代码质量,提供 优化建议
优化技巧
使用Python内置函数:如 map、filter、reduce等,
可以简化代码,提高效率
减少循环次数:通过优化算 法,减少循环次数,提高程
序运行速度
使用生成器:生成器可以节 省内存,提高程序运行速度
使用装饰器:装饰器可以简 化代码,提高程序可读性和
可维护性
使用缓存:对于重复计算的 结果,可以使用缓存来提高
程序运行速度
使用多线程:对于可以并行 计算的任务,可以使用多线
函数的调用
调用方式:通过 函数名和括号来
调用函数
参数传递:在调 用函数时,可以 将参数传递给函
数
返回值:函数可 以返回一个值, 该值可以作为另 一个函数的参数
嵌套调用:函数 可以嵌套调用, 即在一个函数内 部调用另一个函
数
函数的参数
形参:函数定义时使 用的参数,用于接收
python的函数完整版课件
2.运行结果
Name:miki Age:50 Name:miki Age: 50 >>>
自定义函数perimeter,功能为根据半径返回圆周长(112)
#定义perimeter函数 def perimeter(r) :
pi=3.14 l=2*pi*r return l
#调用perimeter函数 perimeter(5)
内建函数len() 的应用——YYOJ平台111题
#利用函数,输出字符串st的长度和列表lst的项目个数 st="Python" lst=["HUAWEI","OPPO","VIVO"] #请不要修改以上代码,在下方写代码
len(st)
print(len(st))
自定义函数
用户根据需要创建的函数。
1.定义函数(语法格式)
def<函数名>([参数列表] ) : <函数体> [return<返回值>]
自定义函数一般由函数名、参数和函数体组成。 函数名可以是任何有效的Python标识符; 参数(可以有零个、一个或多个) 称为形式参数, 简称为“形参”; 当需要返回值时, 使用return语句, 否则函数可以没有return语句, 这样 的函数返回None值。
编写程序求第20个数
编写程序求30个数 编写程序求40个数 编写程序求50个数
函数应用的程序实例——输出 斐波那契数列
#定义fib函数, n为形参 def fib(n) :
a,b=1,1 for i in range(3, n+1) :
a,b=b,a+b return b #输入月数 n=int(input('请输入第n个月:') ) #调用fib函数, i值为实参 for i in range(1, n+1) :
06 Python 编程函数(29张PPT)
函数的参数
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者 来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被 封装起来,调用者无需了解。 Python的函数定义非常简单,但灵活度却非常大。除了正常定义的必选参数外,还可以使用默认参数、 可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代 码。 默认参数 我们仍以具体的例子来说明如何定义函数的默认参数。先写一个计算x2的函数: def power(x):
返回多个值 函数可以返回多个值吗?答案是肯定的。
比如在游戏中经常需要从一个点移动到另一个点,给出坐标、位移和角度,就可 以计算出新的新的坐标: import math def move(x, y, step, angle=0):
nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny 这样我们就可以同时获得返回值:
参数检查
调用函数时,如果参数个数不对,Python解释器会自 动检查出来,并抛出TypeError:
>>> my_abs(1, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: my_abs() takes exactly 1 argument (2 given) 但是如果参数类型不对,Python解释器就无法帮我们 检查。试试my_abs和内置函数abs的差别:
print 'name:', name print 'gender:', gender 这样,调用enroll()函数只需要传入两个参数:
Python快速编程 第6章 函数 教学PPT
✎
6.3.2 关键字参数的传递
无论实参采用位置参数的方式传递,还是 关键字参数的方式传递,每个形参都是有名称 的,怎么区分用哪种方式传递呢?
符号“/”
✎
6.3.2 关键字参数的传递
Python在3.8版本中新增了仅限位置形参的语法,
使用符号“/”来限定部分形参只接收采用位置传递方
式的实参。
例如:
✎
6.3.4 参数的打包与解包
1.打包——“*”
def test(*args): print(args)
test(11, 22, 33, 44, 55)
(11, 22, 33, 44, 55)
定义 调用 结果
✎
6.3.4 参数的打包与解包
1.打包——“**”
def test(**kwargs): print(kwargs)
例如 add() add_modify(10, 20)
调用过程
1. 程序在调用函数的位置暂停执行。 2. 将数据传递给函数参数。 3. 执行函数体中的语句。 4. 程序回到暂停处继续执行。
✎
6.2.2 调用函数
函数内部也可以调用其他函数,这被称为函数的嵌套调用。
例如
def add_modify(a, b): result = a + b add() print(result)
之后。
✎
6.3.5 混合传递
def test(a, b, c=33, *args, **kwargs): print(a, b, c, args, kwargs)
定义
test(1, 2) test(1, 2, 3) test(1, 2, 3, 4) test(1, 2, 3, 4, e=5)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.9.2 利用递归函数解决汉诺塔问题
6.9.3 防止栈溢出
使用递归函数需要注意防止栈溢出。在计算 机中,函数调用是通过栈(stack)这种数 据结构实现的,每当进入一个函数调用,栈 就会加一层栈帧,每当函数返回,栈就会减 一层栈帧。由于栈的大小不是无限的,所以 ,递归调用的次数过多,会导致栈溢出。
6.10 匿名函数
所谓匿名,即不再使用def语句这样标准的形式定义一 个函数。Python使用lambda创建一个匿名函数。
下面举个简单的例子。定义一个返回参数之和的函数。 def f(x,y): return x+y 用户的函数只有一个表达式,就可以使用lambda运算
符来定义这个函数。 f = lambda x, y: x + y
6.6 形参和实参
函数的参数分为形参和实参两种。形参出现 在函数定义中,在整个函数体内都可以使用 ,离开该函数则不能使用;实参再调用函数 时传入。
1. 形参与实参的概念 2. 参数的功能 3. 形参和实参的特点:
6.7 变量作用域
在函数之外定义的变量属于全局变量,用户 可以在函数内使用全局变量。例如:
>>>m = f1(-100,abs)
>>>m()
#需要对m()调用才能得到求绝对值的结果
6.9 递归函数
6.9.1 使用递归函数 6.9.2 利用递归函数解决汉诺塔问题 6.9.3 防止栈溢出
6.9.1 使用递归函数
递归是指在函数的执行过程中再次对自己进 行调用。例如:
def f() { y=f(); return y; }
6.4.2 关键字参数
用户可以直接设置参数的名称与其默认值,这种类型的参数属于 关键字参数。
设置函数的参数时可以不依照它们的位置排列顺序。因为 Python 解释器能够用参数名匹配参数值。例如:
>>> def gg(x, y ):
return x - y
>>> gg(200,100) #按参数顺序传入参数
ห้องสมุดไป่ตู้
6.3 定义函数
根据实际工作的需求,用户可以自己创建函数,也就是 用户自定义函数。
Python的函数定义方法是使用def关键字,语法格式如 下所示:
def 函数名称(参数1, 参数2, ...): "文件字符串" <语句> 文件字符串是可省略的,用来作为描述此函数的字符串。
如果文件字符串存在的话,它必须是函数的第1个语句。
6.1 使用函数的优势
使用函数的优势如下: (1) 开发者可以将常用的功能需求开发成函数,这样便
于重复使用,让程序代码的总行数更少,之后修改代码 的工作量也大大减少了。 (2) 通过将一组语句封装成函数,成为一个代码块,这 样更有利于调试和后期的修改,同时也便于阅读和理解 代码。 (3) 将一个很长的代码可以拆分为几个函数,然后对每 个函数单独调试,单个函数调试通过后,再将它们重新 组合起来即可。
认按十进制转换: >>> int('2888') 但int()函数还提供额外的base参数,默认值为10。如果传入base参
数,就可以做N进制的转换: >>> int('123456', base=8) >>> int('123456', 16) #base也可以省略,直接传入base的值
6.12 函数的内置属性和命名空间
"输出商品价格信息"
print ("名称: ", name)
print ("价格: ", price)
return
>>>gg(name="冰箱", price=3880 ) #传递参数,不使用默认 参数值
>>>gg( name="洗衣机" ) 默认参数值
#没有传递price参数值,使用
6.4.4 可变参数
6.11 偏函数
Python的functools模块提供了很多有用的功能,其中一个就是偏函 数(Partial function)。要注意,这里的偏函数和数学意义上的偏 函数不一样。
在介绍函数参数的时候,通过设定参数的默认值,可以降低函数调用 的难度。而偏函数也可以做到这一点。
举例如下: int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默
>>> x = 100 >>> def get(y = x+100): return y
>>> get()
6.8 返回函数
下面通过案例学习返回函数的用法。
>>>def f1(c,f):
def f2():
return f(c)
return f2
#调用f1函数时,返回的是f2函数对象
>>>f1(-100,abs)
如果用户在声明参数时不能确定需要使用多 少个参数,可以使用可变参数。可变参数不 用命名。基本语法如下:
def functionname([formal_args,] *var_args_tuple ):
"函数_文档字符串" function_suite return [expression]
6.4 函数的参数
6.4.1 必需参数 6.4.2 关键字参数 6.4.3 默认参数 6.4.4 可变参数
6.4.1 必需参数
必需参数要求用户必须以正确的顺序传入函数 。调用时的数量必须和声明时的一样,设置函 数的参数时须依照它们的位置排列顺序。例如 :
>>> def gg(x, y): return x - y >>> gg(200,50)
6.2 调用内置函数
加载Python解释器之后,读者就可以直接使用内置函数。 下面将讲述常见内置函数的使用方法。 ⑴ abs(x):返回数值x的绝对值,如果x是复数的话,abs()函数会
返回该复数的大小(实数部分的平方加上虚数部分的平方,再开根 号)。 ⑵ chr(i):i是ASCII字符码(0~255),chr()函数返回数值i的单字符 字符串。chr()函数与ord()函数作用相反。 ⑶ complex(real [, imag]):创建一个复数,其值为real + imag*j。 如果第一个参数为字符串,则不需要指定第二个参数。 ⑷ dir([object]):返回object对象的属性名称列表。如果没有指定 参数object,则会返回现有的区域符号表(Local Symbol Table)。
>>> gg(x=200, y = 100) #按参数顺序传入参数,并指定参数名
>>> gg(y =100,x=200) #不按参数顺序传入参数,并指定参数 名
6.4.3 默认参数
调用函数时,如果没有传递参数,则会使用默认参数值。例如:
>>>def gg( name, price=6000 ):
1. input()函数 2. print ()函数
函数有许多的内置属性,用户可以在 Python解释器内输入dir(函数名称),即可 以显示这些内置属性。
>>> def myfunction(): return >>> dir(myfunction)
6.13 输入和输出函数
Python的内置函数input()和print()函数用 于输入和输出数据。下面将讲述这两个函数 的使用方法。
6.5 有返回值的函数和无返回值的函数
return语句用于退出函数,选择性地向调用方 返回一个表达式。不带参数值的return语句返 回None。
def sum(count, price ): "输出商品总价格" total = count * price print ("商品总价格: ", total) return total sum( 15, 4.6 )
第6章 函数
本章内容
6.1 使用函数的优势 6.2 调用内置函数 6.3 定义函数 6.4 函数的参数 6.5 有返回值的函数和无返回值的函数 6.6 形参和实参 6.7 变量作用域 6.8 返回函数 6.9 递归函数 6.10 匿名函数 6.11 偏函数 6.12 函数的内置属性和命名空间 6.13 输入和输出函数