Python语法第7讲:函数
来源:互联网 发布:崛起网络f18团平台图片 编辑:程序博客网 时间:2024/05/17 12:48
Python中的函数类似于Java中的方法,函数的作用是使得代码更加的粒子化,在函数中Coder可以封装自己的部分业务逻辑
1、函数
1.1、结构
def 函数名(参数列表): ...def 函数名(参数列表): #定义带返回值的函数 ... return 返回值1.2、说明
在Python中用def关键字定义函数,函数名称随意,但是建议函数的命名要可以见名之意;当函数需要传递参数的时候,多个参数用半角逗号隔开;函数可以有返回值也可以没有返回值,函数的返回值需要使用return关键字来返回
1.3、示例
def myFunction(): #定义无参函数 print("这是无参函数:hello world")def info(name, age): #定义有参函数 return "这是有参函数:I'm %s %s years old" %(name, age) #返回字符串def info1(name="HanMeimei", age=36): #参数可以设置默认值 print("这是默认值参数函数:I'm %s %s years old" %(name, age)) #调用函数myFunction()result = info("Lilei", 18) #定义一个变量接收函数的返回值print(result)result = info(name="Lilei", age=18) #函数的调用,用关键字索引参数print(result)info1() #调用默认值参数函数,参数可以不传递,函数会传递参数的默认值
运行结果:
2、定义函数文档
类似与Java中方法的文档注释
def hello(): #函数的声明 '这是我的第一个函数' #定义函数文档 print("hello world")print(hello.__doc__) #打印函数文档,双下划线help(hello) #可以通过help函数打印函数文档运行结果:
3、定义参数可变的函数
参数可变指的是参数的个数不确定
def myFunction1(*params): #定义可变参数的函数 print("参数的长度是:%s" %len(params)) for item in params: print(item)myFunction1("hello", "world") #函数的调用运行结果:
4、在函数中修改全局变量的值
在Python中无法再函数中修改全局变量的值,当函数中的变量名称与全局变量名称一致时,系统会认为函数中的变量是Coder定义的同名局部变量,所以当如果需要在函数中修改全局变量的值时,需要使用global关键字声明
#在函数中修改全局变量的值count = 5;def modifyCount(): #count = 10 #不会修改全局变量count的值,因为函数中的count变量编译器会认为是局部变量 global count #首先让编译器知道当前的变量是全局变量的引用 count = 10 #修改局部变量的值 modifyCount() #调用函数print("修改全局变量的值:%s" %count)运行结果:
5、内嵌函数
5.1、内嵌函数
内嵌函数表示在函数中声明的函数,内嵌函数的作用域是外部函数,也就是说,内嵌函数在外部函数之外是无法访问的
#内嵌函数def fun1(): print("fun1被调用") def fun2(): print("fun2被调用")fun1()#fun2() #程序会报错,原因是fun2函数的作用域仅在fun1中好用运行结果:
5.2、内嵌函数之闭包
内部函数引用外部函数的变量,称之为闭包
#内嵌函数,闭包def fun3(x): def fun4(y): #闭包,内部函数引用外部函数的变量称之为闭包 return x+y return fun4result = fun3(5)(6) #函数调用print(result)运行结果:
5.3、闭包函数修改外部函数的值
在闭包函数中,外部函数中的变量相当于全局变量
#内嵌函数,闭包,修改外部函数的值def fun5(x): def fun6(): #闭包,内部函数引用外部函数的变量称之为闭包 #x = x * x #直接修改外部函数中的变量的值是无效的 nonlocal x x = x * x return x return fun6result = fun5(5)()print(result)运行结果:
6、匿名函数
#匿名函数fun = lambda x, y : x+y#相当于#def fun(x, y):# return x + yresult = fun(5, 6)print(result)运行结果:
7、内置函数
7.1、filter函数
filter函数的作用是过滤函数返回值为false的函数
#内置函数filter,实现输出0-10中所有偶数的需求def ou(x): if x%2 == 0: #能被2整除的数都是偶数 return Truefil = filter(ou, range(0, 10)) #定义一个filter,过滤ou函数所有为true的值,range函数每次生成的值都传递给ou函数的x参数result = list(fil)print("0-10之间所有的偶数是:")for item in result: print(item, end="\t")运行结果:
7.2、map函数
map函数的作用是用于映射,将值映射到函数的参数
#内置函数map,用于映射def add(x): return x + 10arr = map(add, range(0, 10))print("0-10之间所有的数与10的和是:")for item in arr: print(item, end="\t")运行结果:
综合案例
需求说明:
商品出厂前都会给商品一个唯一的序列号,要求声明一个函数makeSN()生成一个6位数的随机序列号,并且输出到控制台
需求分解:
- 1、声明一个无参函数makeSN(),函数返回值为字符串型,作用是生成序列号
- 2、导入随机数模块random
- 3、定义一个循环,循环6次
- 4、每一次循环获得一个0-9的随机数,并且拼接在序列号的末尾
- 5、调用方法输出到控制台
实现:
import random #导入random对象def makeSN(): #生成序列号的函数 num = "" for i in range(0, 6, 1): x = random.randint(0, 9) #生成一个0-9的随机数 num += str(x) return numsn = makeSN()print("随机生成的6位产品序列号是:%s" %sn)运行结果:
阅读全文
0 0
- Python语法第7讲:函数
- Python语法第7讲:文件处理
- Python语法第4讲:字符串及常用函数
- Python语法第1讲:快速入门
- Python语法第3讲:数组
- Python语法第5讲:字典
- Python语法第6讲:集合
- Python语法第8讲:异常处理
- Python语法第9讲:面向对象
- Python语法第2讲:条件分支与循环控制
- Python语法第10讲:面向对象之继承
- 【Java】第2讲:语法
- 【Java】第4讲:函数
- python基础语法(7) 函数2
- python语法31[函数]
- python函数语法学习
- 假期第一天:Python语法
- [Python]第11讲:列表生成式
- Python 函数定义练习
- JAVA-23-HTML入门、常用标签讲解
- myeclipse 下Tomcat 热部署
- markdown简易教程
- 刷清橙OJ--A1069.幻方
- Python语法第7讲:函数
- 实名函数、匿名函数;
- 自定义布局的对话框
- H.264 JM的学习笔记
- android自动化测试工具【UiAutomator】——UiWatcher(一)
- hbase简单分析及其命令
- 394. Decode String
- 1047. 编程团体赛(20)
- JDk目录介绍