python3笔记十五:python函数
一:学习内容
- 函数概述
- 函数的参数与返回值
- 参数值传递和引用传递
- 关键字参数
- 默认参数
- 不定长参数
二:函数概述
1.本质:函数就是对功能的封装
2.优点:
简化代码结构,增加了代码的复用度(重复使用的程度)
如果想修改某些功能,只需要修改对应的函数即可
3.函数定义
格式:
def 函数名(参数列表):
语句
return 表达式
注意:最后的return 表达式,可以不写,相当于return None
举例:
def myPrint():
print("tester is a good girl!")
print("tester is a nice girl!")
print("tester is a beautiful girl!")
4.函数调用
格式:函数名(参数列表)
注意:参数列表是函数的调用者给函数传递的信息,如果没有参数,小括号也不能省略
函数调用的本质:实参给形参赋值的过程
举例:
myPrint()
三:函数参数与返回值
1.无参无返回值的函数
举例:
#定义了一个无参无返回值的函数
def myPrint():
print("tester is a good girl!")
print("tester is a nice girl!")
print("tester is a beautiful girl!")
#调用
myPrint()
2.函数的参数--参数必须要按顺序传递,个数必须要对应
形参(形式参数):定义函数时小括号中的变量,本质是变量
实参(实际参数):调用函数时给函数传递的数据,本质是值
举例:
def myPrint(str,age):
print(str,age)
#调用
a = 18
myPrint("tester",a)
3.函数的返回值
def mySum(num1,num2):
#将结果返回给函数的调用者
#执行完return语句,该函数就结束了,return后面的代码语句不执行
return num1+num2
#调用
print(mySum(3,2))
四:参数值传递和引用传递
1.值传递:传递的是不可变类型(数字、字符串、元组),不改变原值
举例:
def fun1(num):
num = 10
temp = 20
fun1(temp)
print(temp)
2.引用传递:传递的是可变类型(列表、字典、集合),改变原值
举例:
def fun2(lis):
lis[0] = 100
li = [1,2,3,4]
fun2(li)
print(li)
五:关键字参数
1.关键字参数:允许函数调用时参数的顺序与定义时不一致
def myPrint(str,age):
print(str,age)
a = 18
#未使用关键字参数,传参必须与定义参数的顺序一致
myPrint("tester",a)
#使用关键字参数,但是正常情况下还是保持参数顺序和定义顺序一致
myPrint(age=19,str="tester")
六:默认参数
1.默认参数:调用函数时,如果没有传递参数,则使用默认参数
举例1:
def myPrint(str="tester",age=18):
print(str,age)
myPrint()
举例2:
#要用默认参数,最好将默认参数放到最后
def myPrint(str,age=18):
print(str,age)
myPrint("tester")
七:不定长参数--能处理比定义时更多的参数
1.接受元组数据
不定长参数第一种写法 *args,*args为元组类型,*代表元组数据
举例1:
#加了星号(*)的变量会存放所有未命名的变量参数,如果在函数调用时没有指定参数,它就是一个空元组
def func(name,*args):
print(name) #会打印第一个tester
print(type(args)) #是个元组
for i in args:
print(i) #会打印后续的is a good girl
func("tester","is","a","good","girl!")
#不给定后面的*arr参数
func("tester")
举例2:求多个数的和
def mySum(*num):
sum = 0
for i in num:
sum += i
return sum
print(mySum(1,2,3,4))
2.接受字典键值对类型数据
不定长参数第二种写法 **kwargs,**kwargs为字典类型,**代表键值对数据
举例1:
def func2(**kwargs):
print(kwargs)
print(type(kwargs))
func2(x=1,y=2,z=3)
func2(1,2,3) #会报错
3.接受任意类型数据
*args为元组类型,*代表元组数据
**kwargs为字典类型,**代表键值对数据
举例:
def func3(*args, **kwargs):
print(args) #会打印(1, ('a', 2), [1, 2], {1, 2})
print(kwargs) #会打印{'x': 1, 'y': 2, 'z': 3}
func3(1,("a",2),[1,2],set([1,2]),x=1,y=2,z=3)
python3笔记十五:python函数的更多相关文章
- python3笔记十:python数据类型-Tuple元组
一:学习内容 元组概念 元组创建.访问.删除 元组操作 元组方法 二:元组概念 1.本质:是一种有序集合 2.特点:与列表非常相似.一旦初始化就不能修改.使用小括号 三:元组创建 1.创建空元组 tu ...
- python3.4学习笔记(二十五) Python 调用mysql redis实例代码
python3.4学习笔记(二十五) Python 调用mysql redis实例代码 #coding: utf-8 __author__ = 'zdz8207' #python2.7 import ...
- python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...
- python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL
python3.4学习笔记(十二) python正则表达式的使用,使用pyspider匹配输出带.html结尾的URL实战例子:使用pyspider匹配输出带.html结尾的URL:@config(a ...
- 十五. Python基础(15)--内置函数-1
十五. Python基础(15)--内置函数-1 1 ● eval(), exec(), compile() 执行字符串数据类型的python代码 检测#import os 'import' in c ...
- 二十五. Python基础(25)--模块和包
二十五. Python基础(25)--模块和包 ● 知识框架 ● 模块的属性__name__ # my_module.py def fun1(): print("Hello& ...
- 孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归
孤荷凌寒自学python第十九天python函数嵌套与将函数作为返回对象及闭包与递归 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python函数非常的灵活,今天学习了python函数的以 ...
- python学习笔记十——模块与函数
第五章 模块与函数 5.1 python程序的结构 函数+类->模块 模块+模块->包 函数+类+模块+包=Python pyth ...
- python3笔记十四:python可变与不可变数据类型+深浅拷贝
一:学习内容 python3中六种数据类型 python赋值 python浅拷贝 python深拷贝 二:python3六种数据类型 1.六种数据类型 Number(数字) string(字符串) L ...
随机推荐
- JS基础_数据类型-Null类型和Undefined类型
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- angular装饰器
@NgModule 元数据 NgModule 是一个带有 @NgModule() 装饰器的类.@NgModule() 装饰器是一个函数,它接受一个元数据对象,该对象的属性用来描述这个模块.其中最重要的 ...
- dubbo学习笔记一(服务注册)
相关的资料 官方文档 官方博客 项目结构 项目说明 [lesson1-config-api] 是一个接口工程,编译后是jar包,被其他工程依赖 [lesson1-config-2-properties ...
- 关于IDEA顶部栏隐藏问题,
那天手残,点到了 IDEA顶部菜单栏 > View > Appearance >Main Menu ,然后取消了勾选 然后就成了这个样子,没了顶部栏,恢复不过来,不知道如何进行设置 ...
- 脚本之SSH登录
脚本之SSH登录 一)[python实现] 导入pxssh模块 常用的三个方法: Login() 建立ssh连接 Logout() 断开连接 Prompt() 等待系统提示符,用于等待命令执行结束 S ...
- Charles中使用Map Local提高测试效率
书接上回,上次说到Charles中可以使用修改返回值来模拟接口返回,这次我们来说一下Charles中另外一个强大的功能. 我们用手机连接Charles,具体可以参考上一篇<借助Charles来测 ...
- zencart通过产品id 批量添加推荐产品
1.修改 admin/featured.php 查找 pre_add_confirmation 将 pre_add_confirmation 与 break; 之间的代码,用下面的代码替换即可 &l ...
- fwrite()
fwrite(),最好写strlen()个字节,否则可能有乱码
- 第二章 Vue快速入门-- 28 自定义按键修饰符
事件处理-按键修饰符 js 里面的键盘事件对应的键码 <!DOCTYPE html> <html lang="en"> <head> <m ...
- java 8 foreach获取索引
当 forEach 需要索引 https://segmentfault.com/a/1190000007881498 或者采用 List<string> stringList = new ...