Python基础学习(09)函数与参数

一、今日内容大纲

  • 初识函数
  • 函数的结构与调用
  • 函数的返回值
  • 函数的参数

二、初识函数

  1. 函数的概念
    假如 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)

这样我们就利用更简洁、可读性更强的方式实现了同样的功能,而这种封装而成的代码就称为函数。它以功能为导向,一个函数封装一个功能,随调随用。

  1. 函数的基本结构
# 函数的基本结构
def meet():
    print('打开探探')
    print('左滑一下')
    print('右划一下')
    print('找美女')
    print('悄悄话。。。')
    print('约。。。走起。。。')
'''
结构:
def:关键字:定义函数
meet:函数名:与变量设置相同,具有可描述性
函数体:需要缩进,函数中尽量不要出现print
括号:完成参数的传递
'''
# 函数无法直接执行,需要'function()'才会执行
meet()
  1. 函数的返回
    可能有返回单个值、多个值(会以元组形式返回),也可能返回None。如 len() 的描述: Return the number of items in a container.
  • 无返回值:return(python 中可以省略)
  • 单个返回值:return element
  • 多个返回值:return element_1, element_2....

三、函数的参数

  1. 函数的参数类型
  • 实际参数:在函数调用的时候给函数传递的值
  • 形式参数:函数接受的参数,写在函数声明的位置的变量
# 实际参数(实参):在函数调用的时候给函数传递的值
# 形式参数(形参):函数接受的参数,写在函数声明的位置的变量
def meet(gender):
    print('进行筛选性别:{}'.format(gender))
meet('女')
# 此时的形参为sex,实参为'女'
  1. 实参角度的传参
  • 位置参数:实参与形参需要一一对应,不能缺少或更换位置
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)
  1. 形参角度的传参
  • 位置参数:与实参角度的位置参数相对应
  • 默认值参数:调用函数可以默认不输入,默认项须在后面
def meet(age, hobby, gender='女'):                       # 调用函数可以不输入gender项,不设置会默认gender为女
    print('进行筛选\n性别:{}\n年龄:{}\n爱好:{}\n'.format(gender, age , hobby))
meet(18, '男')
  1. 练习题
# 练习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]))