Pyhton学习笔记三

这篇博客详细介绍了Python中的函数,包括函数的定义、调用、参数传递方式,如位置传参、关键字传参、序列和字典传参。还讨论了函数的形参,如缺省参数、星号元组形参、命名关键字形参和双星号字典形参的使用。此外,文章涉及了全局变量和局部变量的概念,以及`globals()`和`locals()`函数。还涵盖了Python的作用域、`global`和`nonlocal`语句。最后,讲解了`lambda`表达式、`eval()`和`exec()`函数,以及函数式编程和高阶函数的相关概念,如`map()`、`filter()`和`sorted()`函数。
摘要由CSDN通过智能技术生成

函数 function

函数时可以重复执行的语句块,可以重复使用。
作用:

  1. 用于封装语句块,提高代码的重用性
  2. 定义用户级别的函数
    函数定义(创建)语句 def 语句的语法:
    def 函数名(形参列表):
    语句块
    说明:
    函数的名字就是语句块的名称;函数名的命名规则与变量名相同(函数名必须为标识符(字母或下划线开头));函数有自己的名字空间,在函数外部不可以访问函数内部的变量,在函数内部可以访问函数外部的变量,通常让函数处理外部数据需要用参数给函数传入一些数据;函数的参数列表可以为空;语句部分不能为空,如果为空需要填充pass语句
    示例:
def say_hello():
	print("hello world")
	print("hello cat")
	print("hello dog")

say_hello()
函数的调用

函数名(实际调用传递参数列表)
注:实际调用传递参数以后称为实参
说明:函数调用是一个表达式,如果没有return语句,此函数执行完毕后返回None对象,如果函数需要返回其他的对象需要用到return语句
示例:

def mymax(a, b):
	print("a=", a)
	print("b=", b)
	if a > b:
		print(a, ">", b)
	else:
		print(a, "<=", b)

mymax(10, 2)
return 语句

语法:
return [表达式]
[] 代表可以省略
作用:用于函数中,结束当前函数的执行,返回到调用该函数的地方,同时返回一个对象的引用关系
说明:(1) return语句后跟的表达式可以省略,省略后相当于return None
(2) 如果函数没有return语句,则函数执行完最后一条语句后返回None(相当于在最后加了一条return None语句)
(3) 函数调用一定会返回一个对象的引用

函数的参数传递

传递方式:

  1. 位置传参:
    示例:
def myfun(a, b, c):
	pass

myfun(1, 2, 3)

说明:实际参数和形式参数通过位置进行传递来匹配;实参个数必须与形参个数相同
2. 序列传参:序列传参是指在函数调用过程中,用*将序列拆解后按位置传参的方式进行参数传递
示例:

def myfun(a, b, c):
	pass

s = [1, 2, 3]
myfun(*s)				# *表示把s拆开, 等同于myfun(s[0], s[1], s[2])
s2 = "ABC"
myfun(*s2)
  1. 关键字传参:关键字传参是指传参时,按照形参的名称给形参赋值,实参和形参按名称进行匹配
    示例:
def myfun(a, b, c):
	pass
myfun(b=22, c=33, a=11)				# 等同于myfun(11, 22, 33)

说明:实参和形参可以不按位置匹配
4. 字典关键字传参:是指实参为字典,将字典用**拆解后进行关键字传参
示例:

def myfun(a, b, c):
	pass
d = {'c': 33, 'b': 22, 'a': 11}

myfun(**d)			# 拆解字典后再传参,相当于myfun(d['a'], d['b'], d['c'])
# 以下是错误的用法
d1 = {'c': 33, 'b': 22, 'a': 11, 'd': 44}
myfun(**d1)

说明:字典的键名和形参名必须一致;字典键名必须为字符串;字典的键名要在形参中存在

函数的综合传参

函数传参方式,在能确定形参能唯一匹配到相应实参的情况下可以任意组合
示例:

def myfun(a, b, c):
	pass

myfun(100, *[200, 300])			#正确
myfun(*"AB", 300)			# 正确
myfun(100, c=300, b=200)			# 正确
myfun(1, **{'b': 2, 'c': 3})				# 正确
myfun(**{'b': 2, 'c': 3}, a=1)			# 正确
myfun(b=2, c=3, 1)				# 错误,不能确定1给那个参数

说明:传参时先位置传参,后关键字传参

函数的形参(如何接受实参)

函数的缺省参数
语法:
def 函数名(形参名1=默认实参1, 形参名2=默认实参2, …):

示例:

def info(name, age=1, address="未填写"):
	print(name,  age,  address)

info('xiaomaomao', 2)
info('xiaoxiaomao', 20, '北京')
info('cat')

说明:(1)缺省参数必须自右至左依次存在,如果一个参数有缺省参数,则其右侧的所有参数都必须有缺省参数
如:
def test(a, b=10, c): # <—是错的,b是缺省参数,则c必须是缺省参数
pass
(2) 缺省参数可以有0个或多个,甚至全部都有缺省参数。

函数的形参定义方式
  1. 位置形参
    语法:
    def 函数名(形参名1, 形参名2, …):
    语句块
  2. 星号元组形参
    语法:
    def 函数名(*元组形参名):
    语句块
    作用:收集多合的位置传参
    说明:元组形参名通常用‘args’
    示例:
def func(*args):
	print("参数个数是:", len(args))
	print("args=", args)

fun
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值