python之函数入门
python之函数入门
一. 什么是函数
二. 函数定义, 函数名, 函数体以及函数的调用
三. 函数的返回值
四. 函数的参数
五.函数名->第一类对象
六.闭包
一,什么是函数
函数: 对代码块和功能的封装和定义
二. 函数定义, 函数名, 函数体以及函数的调用
我们使用def关键字来定义函数
函数的定义语法: def 函数名()
函数体
如下
def fuc():
lst=[1,2,3,4,5,6,7,8,9] #函数体
fuc() #函数的调用
这里的函数名的命名规则和使用和变量基本一样
函数体: 就是函数被执行之后要执行的代码
函数的调用: 使用函数名可以调用函数, 写法: 函数名(), 这个时候函数的函数体会被执行
三. 函数的返回值
执行完函数之后. 我们可以使用return来返回结果.
如下:
def fuc():
ls= []
lst= [1,2,3,4,5,6,7,8,9]
for i in range(len(lst)):
if int(i) % 2 ==0:
ls.append(lst[i])
return ls #返回值 ls_1=fuc()
print(ls_1)
函数中return的使用:
1. 函数中遇到return, 此函数结束, 不再继续执⾏.
2. 关于返回值:
如果return什么都不写 或者 干脆不写return .那么返回的就是None
如果return后面写了一个值. 则调用者可以接收一个结果
如果return后面写了多个结果, 则调用者可以接收一个tuple, 调用者可以直接解构成多个变量
四. 函数的参数
参数, 函数在调用的时候指定具体的一个变量的值. 就是参数
参数语法: def 函数名(参数列表):
函数体
def func(形参)
a = 10
ret=func(实参)
关于参数:
1. 形参
写在函数声明的位置的变量叫形参. 形式上的一个完整. 表示这个函数需要xxx
2. 实参
在函数调用的时候给函数传递的值. 叫实参, 实际执行的时候给函数传递的信息. 表示给函数xxx
3. 传参
给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.
参数的分类:
在实参的角度来看. 分为三种:
1. 位置参数
2. 关键字参数
3. 混合参数, 位置参数必须在关键字参数前面
在形参的⾓角度来看,
1. 位置参数
2. 默认值参数(大多数传进来的参数都是一样的, 一般用默认参数)
五.第一类对象-> 函数名 -> 变量名
函数名可以像变量一样进行赋值
还可以作为列表的元素进行使用
还可以作为返回值返回
还可以作为参数进行传递
例子1.
def func1():
print("字符串") def func2():
print("列表") def func3():
print("字典") def func4():
print("元组") lst = [func1, func2, func3, func4] # 函数+() 就是调用.
print(lst) for el in lst: # el是列表中的每一项.
el() # 拿到函数. 执行函数
例子2.
def wrapper():
def inner():
print("哈哈哈")
return inner # 函数名可以像返回值一样返回 ret = wrapper()#这里的ret就是inner
ret() # 在函数外面访问了函数内部的函数
例子3代理proxy.
# 函数可以作为参数进行传递
def func1():
print("字符串") def func2():
print('列表') def func3():
print('字典') def func4():
print("元组") # proxy即代理. 装饰器的雏形
def proxy(a): # a就是变量. 形参
a()
proxy(func1)#把func1赋值给a
proxy(func3)#把func2赋值给a
proxy(func4)#把func3赋值给a
六.闭包
闭包 -> 函数的嵌套
内层函数对外层函数中的变量的使用
闭包的优点:
1, 可以保护变量不被其他人侵害
2, 保持一个变量常驻内存
def wrapper():
name = "周杰伦" # 局部变量常驻与内存
def inner():
print(name) # 在内层函数中使用了外层函数的局部变量
return inner # 返回函数名
ret = wrapper() # ret是一个内层函数
ret() # ret是inner, 执行的时机是不确定的, 必须保证里面的name必须存在
如何通过代码查看一个闭包
__closure__: 有东西就是闭包. 没东西就不是闭包
python之函数入门的更多相关文章
- Python基础——函数入门
等待更新…………………… 后面再写
- Python编程从入门到实践笔记——函数
Python编程从入门到实践笔记——函数 #coding=gbk #Python编程从入门到实践笔记——函数 #8.1定义函数 def 函数名(形参): # [缩进]注释+函数体 #1.向函数传递信息 ...
- python函数入门
知识内容: 1.函数的作用 2.函数的定义与调用 3.函数的返回值 4.函数的参数 5.局部变量与全局变量 6.作用域 一.函数的作用 1.复用代码 将可能重复执行的代码封装成函数,并在需要执行的地方 ...
- python函数入门到高级
函数的定义: def test(x): "The function definitions" x+=1 return x def:定义函数的关键字 test:函数名 ():内可定义 ...
- 《Python编程从入门到实践》_第八章_函数
一个简单的函数 先看一个简单的函数 def say_hello(): '''打印hello''' print("Hello!") say_hello() #运行结果 Hello! ...
- Python——函数入门(二)
一.函数的参数 我们在定义函数时,可以定义形式参数(简称形参),这些形参的值在函数调用的时候才会确定,形参的值由调用者负责传入. 1.关键字参数 在Python中,函数的参数名并不是没有意义的,在调用 ...
- Python开发的入门教程(六)-函数
介绍 本文主要介绍Python中函数的基本知识和使用 Python之什么是函数 我们知道圆的面积计算公式为: S = πr² 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同 ...
- 【Python从入门到精通】(十一)Python的函数的方方面面【收藏下来保证有用!!!】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文主要介绍Python的函数,函数的定义,使用,可变参数等等都有详细介绍. 干货满满,建议收藏,需要用到时常看看. 小伙伴们如有问题及需要,欢迎 ...
- Python学习--01入门
Python学习--01入门 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.和PHP一样,它是后端开发语言. 如果有C语言.PHP语言.JAVA语言等其中一种语言的基础,学习Py ...
随机推荐
- 台式电脑、笔记本快捷选择启动项Boot 快捷键大全
我们在安装系统时,会去设置电脑是从硬盘启动.U盘启动.光驱启动.网卡启动. 一般设置的方法有两种:一种是进BIOS主板菜单设置启动项顺序:另一种就是我在这里要介绍的快捷选择启动项. 以下是网友整理的各 ...
- cocos2dx JS 图片精灵添加纹理缓存
添加精灵图片缓存 : cc.spriteFrameCache.addSpriteFrames("res/pic.plist"); 从缓存中获取 : var frame = cc.s ...
- 监听器&上传下载&I18N
监听器(Listener) 监听Java对象 的方法调用和属性改变() web的一个组件 事件驱动编程:事件源,事件名称,事件响应函数,事件对象 以后在Spring中的配置 WEB中有哪些监听器? ...
- textarea 标签的使用
<textarea rows="行数" cols="列数">默认出现文本</textarea> 阻止拉伸:style="res ...
- Android -- 从源码带你从EventBus2.0飚到EventBus3.0
1,最近看了不少的面试题,不管是百度.网易.阿里的面试题,都会问到EventBus源码和RxJava源码,而自己只是在项目中使用过,却没有去用心的了解它底层是怎么实现的,所以今天就和大家一起来学习学习 ...
- java解答:有17个人围成一圈(编号0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止,问此人原来的位置是多少号?
package ttt; import java.util.HashMap; import java.util.Map.Entry; /** * 有17个人围成一圈(编号0~16),从第0号的人开始从 ...
- Kali密码攻击之——离线攻击工具
在线密码攻击在渗透测试中很重要,但对于测试过程中得到的哈希,加密数据,又需要离线破解工具辅助解决 Creddump套件 kali下离线攻击工具中的Cache-dump,lsadump,pwdump,均 ...
- easy UI的密码长度以及重复输入验证
自己些项目的时候找的时候也找了一会,所以存下来下次用的时候可以直接用了. 话不多说,直接上代码 <tr> <td>密码:</td> <td><in ...
- 缓存淘汰算法---LRU转
1. LRU1.1. 原理 LRU(Least recently used,最近最少使用)算法根据数据的历史访问记录来进行淘汰数据,其核心思想是“如果数据最近被访问过,那么将来被访问的几率也更高”. ...
- springboot shiro和freemarker集成之权限控制完全参考手册(跳过认证,登录由三方验证,全网首发)
本文主要考虑单点登录场景,登录由其他系统负责,业务子系统只使用shiro进行菜单和功能权限校验,登录信息通过token从redis取得,这样登录验证和授权就相互解耦了. 用户.角色.权限进行集中式管理 ...