1.15 Python基础知识 - 函数
函数是可重用的程序代码段。
一、函数的声明和调用
声明格式:
def 函数名([形参列表]):
函数体
调用格式:
函数名([实参列表])
函数名:是一种标识符,命名规则为全小写字母,可以使用下划线增加可阅读性。
形参列表:表示传递给该函数的值或变量引用,(用圆括号括起来,并用逗号隔开,可能为空)
函数体:函数执行的代码块
实参列表:实际传入的参数值
示例代码:
def my_add(a,b): # 声明函数,返回值
return a+b def my_print(msg): # 声明函数,无返回值
print(msg) c = my_add(11,22) # 调用函数
my_print(c) #调用函数 # 输出结果 33
二、参数的传递
1、形式参数和实际参数
形参:声明函数时声明的参数,即形式参数
实参:调用函数时,提供函数需要的参数的值,即实际参数
实际参数默认按位置顺序依次传递给形式参数。
2、可选参数(参数默认值)
在声明函数时,如果希望函数的一些参数是可选的,可以在声明函数时为这些参数指定默认值。调用该函数时,如果没有传入对应的实参值,则函数使用声明时指定的默认参数值。
示例代码:
def my_add(a,b=12):
return a+b def my_print(msg):
print(msg) c = my_add(11)
my_print(c) # 输出结果 23
注:必须先声明没有默认值的形参,然后声明有默认值的形参,因为函数调用时,默认是按位置传递实际参数值的。
3、位置参数和命名参数(关键字参数)
位置参数:函数调用时,默认按位置顺序传递形参的参数
关键字参数:按名称指定传入的参数,优点:一、参数按名称意义明确;二、传递的参数与顺序无关;三、如果有多个可选参数,可以选择某个参数值
示例代码:
def my_add(a,b=12,c=23):
return a+b+c def my_print(msg):
print(msg) c = my_add(11,c=11) # 11为位置参数,c=11为关键字参数
my_print(c) # 输出结果 34
4、可变参数(不固定参数,或参数组)
在声明函数时,通过带星的参数,如*args,允许向函数传递可变(任意)数量的实参,在调用时,这些参数会被收集为一个元组。
在声明函数时,也可以通过带双星的参数,如**kwargs,允许向函数传递可变数量的实参,在调用时,这些参数会被收集为一个字典。
示例代码1:
def my_add(*args):
return args def my_print(msg):
print(msg) c = my_add(11,12,13,14)
my_print(c) # 输出结果 (11, 12, 13, 14)
示例代码2:
def my_add(**kwargs):
return args def my_print(msg):
print(msg) c = my_add(a=11,b=12,c=13,d=14)
my_print(c) # 输出结果
{'a': 11, 'b': 12, 'c': 13, 'd': 14}
示例代码3:
def my_add(*args,**kwargs):
return args,kwargs def my_print(msg):
print(msg) c = my_add(2,3,4,a=11,b=12,c=13,d=14)
my_print(c) # 输出结果
((2, 3, 4), {'a': 11, 'b': 12, 'c': 13, 'd': 14})
三、函数的返回值
函数可以返回值,即在函数体中使用return语句从函数返回一个值,并跳出函数。如果需要返回多个值,则可以返回一个元组。
示例:
def f1():
return 1,2,3 a=f1()
print(a) # 输出结果
(1, 2, 3)
四、变量的作用域
变量声明的位置不同,其可被访问的范围也不同。变量的可被访问范围称为变量的作用域。变量按其作用域大致可以分为:全局变量、局部变量和类型成员变量
全局变量:在函数和类定义以外声明的变量
局部变量:在函数体中声明的变量(包括函数参数)
类成员变量:在类中声明的变量,包括静态变量和实例变量。
1.15 Python基础知识 - 函数的更多相关文章
- Python基础知识总结笔记(四)函数
Python基础知识总结笔记(四)函数python中的函数函数中的参数变量作用域偏函数PFA递归函数高阶函数BIFs中的高阶函数匿名函数lambda闭包Closure装饰器Decorator函数式编程 ...
- python基础知识小结-运维笔记
接触python已有一段时间了,下面针对python基础知识的使用做一完整梳理:1)避免‘\n’等特殊字符的两种方式: a)利用转义字符‘\’ b)利用原始字符‘r’ print r'c:\now' ...
- 八. Python基础(8)--函数
八. Python基础(8)--函数 1 ● 函数返回布尔值 注意, 自定义的函数也可以是用来作逻辑判断的, 例如内置的startswith()等函数. def check_len(x): ' ...
- python基础知识部分练习大全
python基础知识部分练习大全 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py #必须在首行 ...
- python基础知识的学习和理解
参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base python基础知识笔 ...
- Python开发【第二篇】:Python基础知识
Python基础知识 一.初识基本数据类型 类型: int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647 在64位 ...
- python基础——filter函数
python基础——filter函数 Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函 ...
- python 基础知识(一)
python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本 ...
- python基础知识讲解——@classmethod和@staticmethod的作用
python基础知识讲解——@classmethod和@staticmethod的作用 在类的成员函数中,可以添加@classmethod和@staticmethod修饰符,这两者有一定的差异,简单来 ...
随机推荐
- 《读书报告 – Elasticsearch入门 》----Part II 深入搜索(2)
第十三章 全文检索 这一章开始介绍 全文检索 :怎样对全文字段(full-text fields)进行检索以找到相关度最高的文档. 全文检索最重要的两个方面是: 相关度(Relevance) 根据文档 ...
- 联想杨天 S4130-12 win10改win7 bios参数设置
一.进入bios 开机后按 F1 二.改bion参数 1.移动到 save& Exit ,修改 OS optimized defaults 为“Disbled” 再 “F9” 保存 2. ...
- tac---反转输出文件
tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示.
- ORA-06575: 程序包或函数 NO_VM_DROP_PROC 处于无效状态
SQL> drop user aaa ; drop user aaa ORA-00604: 递归 SQL 级别 1 出现错误 ORA-06575: 程序包或函数 NO_VM_DROP_P ...
- 66.app.use(express.static)
转自:https://blog.csdn.net/u010977147/article/details/60956502
- js的style和getArribute("属性名")
getAttribute()是HTML DOM的一个方法,用以获取HTML元素的属性(如id,name,type以及其他自定义属性). style是HTML DOM的一个关于样式的对象,style对象 ...
- 洛谷P1722 矩阵 II
题目背景 usqwedf 改编系列题. 题目描述 如果你在百忙之中抽空看题,请自动跳到第六行. 众所周知,在中国古代算筹中,红为正,黑为负…… 给定一个1*(2n)的矩阵(usqwedf:这不是一个2 ...
- js--基于面向对象的组件开发及案例
组件的开发:多组对象之间想兄弟关系一样,代码复用的形式. 问题:1).参数不写会报错:利用对象复制————配置参数和默认惨啊书的覆盖关系(逻辑或也可以)2).参数特别多时会出现顺序问题:json解决 ...
- useradd---创建的新的系统用户
useradd命令 useradd命令用于Linux中创建的新的系统用户.useradd可用来建立用户帐号.帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号.使用user ...
- Struts2+Spring+Hibernate step by step 06 整合Hibernate
注:该系列教程.部分内容来自王健老师编写ssh整合开发教程 Hibernate是一款优秀的ORM(Object Relation Mapping-对象关系映射图)工具.与Struts.Spring项目 ...