Python基础学习(09)函数与参数
一、今日内容大纲
- 初识函数
- 函数的结构与调用
- 函数的返回值
- 函数的参数
二、初识函数
- 函数的概念
假如 Python 没有 len() 的功能,如何获取 string、list、tuple 等数据类型的长度?
# 获取 string 的长度
s = 'dasdasdasdsa'
len = 0
for char in s:
len += 1
print(len)
# 获取 list 的长度
l1 = [32, 423, 34, 3, 423, 4, 324, 23]
len = 0
for item in l1:
len += 1
print(len)
# tuple 同理
这样写代码具有重复代码太多、代码可读性差等缺点,于是我们可以选择封装一个函数 来放置这些多次重复的代码:
# 这样我们可以封装一个函数来放置多次重复的代码
def my_len(s):
len = 0
for i in s:
len += 1
print(len)
s = 'dasdasdasdsa'
l1 = [32, 423, 34, 3, 423, 4, 324, 23]
my_len(s)
my_len(l1)
这样我们就利用更简洁、可读性更强的方式实现了同样的功能,而这种封装而成的代码就称为函数。它以功能为导向,一个函数封装一个功能,随调随用。
- 函数的基本结构
# 函数的基本结构
def meet():
print('打开探探')
print('左滑一下')
print('右划一下')
print('找美女')
print('悄悄话。。。')
print('约。。。走起。。。')
'''
结构:
def:关键字:定义函数
meet:函数名:与变量设置相同,具有可描述性
函数体:需要缩进,函数中尽量不要出现print
括号:完成参数的传递
'''
# 函数无法直接执行,需要'function()'才会执行
meet()
- 函数的返回
可能有返回单个值、多个值(会以元组形式返回),也可能返回None。如 len() 的描述: Return the number of items in a container.
- 无返回值:return(python 中可以省略)
- 单个返回值:return element
- 多个返回值:return element_1, element_2....
三、函数的参数
- 函数的参数类型
- 实际参数:在函数调用的时候给函数传递的值
- 形式参数:函数接受的参数,写在函数声明的位置的变量
# 实际参数(实参):在函数调用的时候给函数传递的值
# 形式参数(形参):函数接受的参数,写在函数声明的位置的变量
def meet(gender):
print('进行筛选性别:{}'.format(gender))
meet('女')
# 此时的形参为sex,实参为'女'
- 实参角度的传参
- 位置参数:实参与形参需要一一对应,不能缺少或更换位置
def meet(gender, age, hobby):
print('进行筛选\n性别:{}\n年龄:{}\n爱好:{}\n'.format(gender, age , hobby))
meet('女', 18, '男')
- 关键参数:让关键字一一对应即可,不需要完全按照顺序
meet(age=18, hobby='男', gender='女') # 也可以手动设置形参与实参的对应关系,这时顺序可以打乱
- 混合参数:可以前面用位置参数,后面用关键字参数
meet('女', hobby='男', age=18)
- 形参角度的传参
- 位置参数:与实参角度的位置参数相对应
- 默认值参数:调用函数可以默认不输入,默认项须在后面
def meet(age, hobby, gender='女'): # 调用函数可以不输入gender项,不设置会默认gender为女
print('进行筛选\n性别:{}\n年龄:{}\n爱好:{}\n'.format(gender, age , hobby))
meet(18, '男')
- 练习题
# 练习1:传入两个字符串参数,将两个参数拼接完成后形成的结果返回
def joint(str1, str2):
return str1 + str2
print(joint('123','123'))
# 练习2:写一个函数,只接受两个int的参数,函数的功能是将较大的数返回
def cmp(a, b):
return a if a > b else b # 三元运算符:简单的if else(如果a大于b返回a,如果不满足返回b)
print(cmp(1,2))
# 练习3:写一个函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
def check_list_len(list):
if len(list) > 2:
return list[:2]
else:
return list
print(check_list_len([1,555,444,4]))