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('进行筛选 性别:{} 年龄:{} 爱好:{} '.format(gender, age , hobby)) meet('女', 18, '男')
-
关键参数:让关键字一一对应即可,不需要完全按照顺序
meet(age=18, hobby='男', gender='女') # 也可以手动设置形参与实参的对应关系,这时顺序可以打乱
-
混合参数:可以前面用位置参数,后面用关键字参数
meet('女', hobby='男', age=18)
-
-
形参角度的传参
-
位置参数:与实参角度的位置参数相对应
-
默认值参数:调用函数可以默认不输入,默认项须在后面
def meet(age, hobby, gender='女'): # 调用函数可以不输入gender项,不设置会默认gender为女 print('进行筛选 性别:{} 年龄:{} 爱好:{} '.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]))