从入门到自闭之Python函数初识
函数初识
定义:def--关键字
将某个功能封装到一个空间中就是一个函数
功能:
减少重复代码
函数的调用
函数名+():调用函数和接收返回值
函数的返回值
- return 值 == 返回值
- 可以返回任意的数据类型
- return 返回多个内容是元祖的形式
- return 下方不执行,并且会终止当前函数
- return 不写或者写了return 后面不写值都会返回None
- 函数的返回值返回给函数的调用者
- 函数的返回值可以有多个结果
函数的参数
- 分类:
- 位置参数:一一对应
- 默认参数:参数定义是括号中写好的就是默认参数(不进行传参就使用默认参数,使用传参时使用传递的参数)
- 关键字参数,按照关键字进行传参
- 位置参数必须放在默认参数之前
- 混合参数:位置参数和关键字参数一起传参
- 形式参数:函数定义阶段括号中的参数叫做形参
- 实参:函数调用阶段括号中的参数叫做是实参
- 传参:将实参传递给形参的过程叫传参
三元运算:
格式:条件成立的结果 条件 条件不成立的结果
参数:
*args,**kwargs:万能传参
*args(函数定义阶段代表聚合,返回的是一个元祖): 大家共用的一个名字,可以修改但是不建议,接受多余的位置参数
**kwargs(聚合关键字参数,返回的是一个字典)接收多余的关键字参数
def eat(*args): #函数的定义阶段 *聚合(打包)
print(args) #元祖
print(*args)#函数体中的*,打散(解包)
优先级
- 位置参数 > 动态位置参数 > 默认参数 > 动态默认参数
函数体中的*代表什么
- 第一个代表:聚合
- 第二个代表:打散 函数体中* kwargs 只用一个*,
形参中参数定义的位置:
- 位置参数:定义在函数体开头的时候
- 动态位置参数:先执行位置参数,位置参数接收后额外的参数动态位置进行接收,获取到的是一个元祖
- 默认参数:函数接受体接收到的参数
- 动态关键字参数:先执行默认参数,默认参数接收后,额外的默认参数动态进行接收,获取到的是一个字典
实参中的位置:
- “*” 打散
- “**” 实参可以使用
函数的注释
- 查看注释:函数名.__ doc __
- 查看函数的名字:函数名.__ name __
从入门到自闭之Python函数初识的更多相关文章
- 从入门到自闭之Python基础——函数初识
1. 文件操作: 读操作: 格式:f = open("文件路径",mode = "r",encoding = "utf-8") f : 代表 ...
- 从入门到自闭之Python高阶函数
高阶函数:内部帮忙做了一个for循环 filter:筛选过滤 语法: filter(function,iterable) function: 1.指定过滤规则(函数的内存地址) 2.用来筛选的函数,在 ...
- 从入门到自闭之Python内置函数
内置函数一 eval:执行字符串类型的代码 exac:执行字符串社类型的代码 eval与exac 禁止使用 hash()作用就是区分可变数据类型与不可变数据类型 # print(hash(" ...
- 从入门到自闭之Python集合,深浅拷贝(大坑)
小数据池 int: -5~256 str: 字母,数字长度任意符合驻留机制 字符串进行乘法时总长度不能超过20 特殊符号进行乘法时只能乘以0 代码块: 一个py文件,一个函数,一个模块,终端中的每一行 ...
- 从入门到自闭之Python序列化
序列化(背) json :将数据类型转换成字符串(序列化),将字符串装换成原数据类型(反序列),支持dict,list,tuple等,序列后都变成了列表 dumps,loads ------ 用于网络 ...
- 从入门到自闭之Python名称空间
名称空间: 内置空间:python解释器自带的一块空间 全局空间:py文件中顶格写的就是全局空间 局部空间:函数体中就是局部空间 加载顺序: 内置空间 全局空间 局部空间 # def func(): ...
- 从入门到自闭之Python自定义模块
自定义模块 定义:一个文件就是一个模块(能被调用的文件,模块就是一个工具箱,工具就是函数) 作用: 将代码文家化管理,提高可读性,避免重复代码 拿来就用(避免重复造轮子),python中类库比较多,提 ...
- 从入门到自闭之Python三大器--生成器
1.什么是生成器 核心:生成器的本质就是一个迭代器 迭代器是python自带的的 生成器是程序员自己写的一种迭代器 编写方式: 基于函数编写 推导式编写 def func (): print(&quo ...
- 从入门到自闭之Python三大器--迭代器
函数名的第一类对象(概述): 使用方式: 函数名可以当做值赋值给变量 def func(): print(1) print (func) #查看函数的内存地址 a = func print (a) # ...
随机推荐
- PHP处理kafka消息队列
在安装php-kafka 扩展后,就可以开始编写 php 消费消息的脚本了,php-rdkafka 扩展提供了几种消息处理的方式 低级方式(Low level) 这种方式没有消费组的概念 <?p ...
- 「HNOI2014」世界树
题目链接 问题分析 首先观察数据范围可以知道要用虚树.但是要考虑怎么维护原树的距离信息. 如果只有两个关键点,我们可以很方便地找到中点将整棵树划分为两部分.而如果有多个关键点,看起来有效的方法就是多源 ...
- AcWing:135. 最大子序和(前缀和 + 单调队列)
输入一个长度为n的整数序列,从中找出一段长度不超过m的连续子序列,使得子序列中所有数的和最大. 输入格式 第一行输入两个整数n,m. 第二行输入n个数,代表长度为n的整数序列. 同一行数之间用空格隔开 ...
- 如何在main.js中改变vuex中的值?
做登录权限控制的时候, 我通过全局路由守卫来去做权限判断,这样的话可能需要在整个项目加载的初期去做一些诸如 接口请求. vuex修改 之类的问题 其实非常简单,直接如图:
- 「CF525D」Arthur and Walls
题目链接 戳我 \(Solution\) 如果一个#要更改,那么一个四个格子的正方形只有他一个是#,bfs弄一下就好了 \(Code\) #include<bits/stdc++.h> u ...
- flask入门第一篇
一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不 ...
- 05.用两个栈实现队列 Java
题目描述 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 思路 进栈: 直接进stack1 出栈: 若stack2不为空,则出栈. 否则,当stack1不为空时, ...
- 石川es6课程---7、数组
石川es6课程---7.数组 一.总结 一句话总结: ^ 主要就map(映射:一个对一个),reduce(汇总:一堆出来一个),filter 过滤器,forEach 循环(迭代) 四个方法 ^ 使用 ...
- Ubuntu下qt5使用vlc
一:Ubuntu下在线安装qt5,同时安装了qt creator 二:打开终端执行sudo apt-get install libvlc5 libvlc-dev libvlccore-dev 安装 ...
- rocketmq 以广播方式实现消费者消费消息
package com.bfxy.rocketmq.model; import java.util.List; import org.apache.rocketmq.client.consumer.D ...