python基础那些事(四)

函数

1 定义函数

def 函数名(参数):
	代码1
	代码2
.	.....

2 调⽤用函数

函数名(参数)

注意:

  1. 不同的需求,参数可有可无。
  2. 在Python中,函数必须先定义后使用。

函数的参数:函数调⽤用的时候可以传⼊真实数据,增大函数的使用的灵活性
形参:函数定义时书写的参数(非真实数据)
实参:函数调用时书写的参数(真实数据)
函数的返回值
作⽤用:函数调用后,返回需要的计算结果
写法 return 表达式

变量作用域
局部变量
所谓局部变量是定义在函数体内部的变量,即只在函数体内部⽣效。

def testA():
	a = 100
	print(a)
testA() # 100
print(a) # 报错:name 'a' is not defined

局部变量的作用:在函数体内部,临时保存数据,即当函数调⽤用完成后,则销毁局部变量。
全局变量
所谓全局变量,指的是在函数体内、外都能⽣生效的变量。

函数参数

1.位置参数:调⽤用函数时根据函数定义的参数位置来传递参数。

def user_info(name, age, gender):
print(f'您的名字是{name}, 年年龄是{age}, 性别是{gender}')
user_info('TOM', 20, '男')
#传递和定义参数的顺序及个数必须一致

2.关键字参数
函数调用,通过“键=值”形式加以指定。可以让函数更加清晰、容易易使用,同时也清除了参数的顺序需求。

def user_info(name, age, gender):
print(f'您的名字是{name}, 年年龄是{age}, 性别是{gender}')
user_info('Rose', age=20, gender='⼥女女')
user_info('⼩小明', gender='男', age=16)
#函数调⽤时,如果有位置参数时,位置参数必须在关键字参数的前面,但关键字#参数之间不存在先后顺序。

3.默认参数/缺省参数

默认参数,⽤用于定义函数,为参数提供默认值,调⽤用函数时可不不传该默认参数的值(注
意:所有位置参数必须出现在默认参数前,包括函数定义和调⽤用)。

def user_info(name, age, gender='男'):
print(f'您的名字是{name}, 年年龄是{age}, 性别是{gender}')
user_info('TOM', 20)
user_info('Rose', 18, '⼥女女')

注意:函数调⽤用时,如果为缺省参数传值则修改默认参数值;否则使⽤用这个默认值。
4.不定长参数
不定长参数也叫可变参数。⽤用于不确定⽤的时候会传递多少个参数(不传参也可以)的场景。此时,可
⽤用包裹(packing)位置参数,或者包裹关键字参数,来进行参数传递,会显得非常方便。
包裹位置传递:

def user_info(*args):
print(args)
# ('TOM',)
user_info('TOM')
# ('TOM', 18)
user_info('TOM', 18)

注意:传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为⼀一个元组(tuple),
args是元组类型,这就是包裹位置传递

包裹关键字传递:

def user_info(**kwargs):
print(kwargs)
# {'name': 'TOM', 'age': 18, 'id': 110}
user_info(name='TOM', age=18, id=110)

引用
python中,值是靠引用传递的。
我们可以用id()来判断两个变量是否是同一个值的引用。我们可以将id理解为那块内存的地址标识。

lambda表达式
lambda 参数列表 : 表达式
lambda表达式的参数可有可无,函数的参数在lambda表达式中完全适⽤。
lambda函数能接收任何数量的参数但只能返回⼀个表达式的值

print(l(ambda a,b:a+b)(1,2))

map()
map(func, lst),将传⼊入的函数变量量func作⽤用到lst变量量的每个元素中,并将结果组成新的列列表(Python2)/
迭代器器(Python3)返回

list1 = [1, 2, 3, 4, 5]
def func(x):
return x ** 2
result = map(func, list1)
print(result) # <map object at 0x0000013769653198>
print(list(result)) # [1, 4, 9, 16, 25]

reduce(func(x,y),lst),其中func必须有两个参数。每次func计算的结果继续和序列列的下⼀一个元素做累
积计算。
注意:reduce()传⼊入的参数func必须接受2个参数。

filter(func, lst)函数⽤用于过滤序列, 过滤掉不符合条件的元素, 返回⼀一个 filter 对象,。如果要转换为列列表,
可以使⽤用 list() 来转换。

文件操作
1.打开文件
open(name,mode)
2.写
对象.write(‘内容’)
3.读
文件对象.read(num)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值