函数是指将一个可重复使用的实现某一功能的代码块封装起来,其关键字是def,函数定义的几个要素分别是函数名、入参和出参,入参出参皆可为空,出参一般不为空,下面是伪代码:
def 函数名(XX): # 入参可为空 功能代码 return YY # 可以不return
在讲解函数入、出参不同情况前先插一个小知识,python的程序入口,每个语言都有自己的程序入口,这个程序入口相当于发动机,可以将代码运行起来,python的程序入口如下:
if __name__ == '__main__'
实例:
name = 'Bob' age = '19' if __name__ == '__main__': print(name, age)
运行结果:
Bob 19
好了,言归正传,下面根据入、出参的不同情况进行实例演示。
1、入参为空、出参为空
def first(): name = 'Bob' age = 20 print('My name is {},{} years old.'.format(name, age)) if __name__ == '__main__': first()
运行结果:
My name is Bob,20 years old.
first()函数是入、出参均为空类型,变量在函数内部定义后使用print()打印在控制台上,一般不使用该类型,因为其可扩展性差,如果直接修改函数内容可能牵一发而动全身。
在print()函数中我使用了一个字符串的格式化输出语句
'{}'.format()
{}为占位符,format()中传入的参数会代替占位符,这样的格式化输出方式比%方式更简洁
2、入参不为空、出参为空
def second(name_list, age_list): for name, age in zip(name_list, age_list): print(name, age) if __name__ == '__main__': list_1 = ['Alice', 'Bob', 'Cli'] list_2 = [21, 22, 23] second(list_1, list_2)
运行结果:
Alice 21 Bob 22 Cli 23
second()函数的入参是一个姓名列表和一个年龄列表,功能是将两个列表相同位置上的元素在控制台同一行中打印出来。
函数中用到了zip()函数,这个函数用于同时遍历两个或两个以上相同长度的字符串、列表、元组或字典,再举个栗子:
# 假设A, B, C为三个相同长度的列表 for A_a, B_b, C_c in zip(A, B, C): print(A_a, B_b, C_c)
3、入参为空、出参不为空
def third(): even_list = [] for i in range(10): if i % 2 == 0: # 判断是否为偶数 even_list.append(i) return even_list if __name == '__main__': list = third() print(list)
运行结果:
[0, 2, 4, 6, 8]
third()函数的功能是返回一个10以内的偶数列表,这种入参为空、出参不为空的形式较为常见,一般这类函数是可以返回某些可预见的结果。
函数内部的range()可以生成一个可迭代对象,基本语法是
range(start, stop[, step])
start为起始数字,stop为结束数字但不取到结束数字,step为步长,是可选参数,默认为1,下面看一下实例:
for i in range(1, 10, 3): print(i)
运行结果:
1 4 7
以上range(1, 10, 3)生成了一个以1为起点,10为终点,步长为3的可迭代对象并逐个输出。
还有一个是even_list.append(),这是列表的内置方法,其功能是将元素追加到列表的最后面,下面看看具体的实现:
list = [1, 2, 3] for i in range(4, 7): list.append(i) print(list)
运行结果:
[1, 2, 3, 4, 5, 6]
4、入参不为空、出参不为空
def fourth(student_dict): student_list = [] for name, info in student_dict.items(): temp_list = [name, info[0], info[1]] student_list.append(temp_list) return student_list if __name__ == '__main__': dict = {'Alice': [20, 'girl'], 'Bob': [24, 'boy'], 'Cli': [21, 'girl']} list = fourth(dict) print(list)
运行结果:
[['Alice', 20, 'girl'], ['Bob', 24, 'boy'], ['Cli', 21, 'girl']]
fourth()函数是典型的入、出参均不为空类型,也是最常用的类型,因为其可扩展性高,可重复使用,且其内部一般都是稳定的。
函数中的student_dict.items()是字典的内置方法,其功能是将字典的每个键值对存放在可迭代对象中,除了items(),接下来再通过实例了解以下keys()和values()。
dict = {'China': '中国', 'USA': '美国', 'Canada': '加拿大'} print('Items:', dict.items()) print('Keys:', dict.keys()) print('Values:', dict.values())
运行结果:
Items: dict_items([('China', '中国'), ('USA', '美国'), ('Canada', '加拿大')]) Keys: dict_keys(['China', 'USA', 'Canada'])Values: dict_values(['中国', '美国', '加拿大'])
讲解完函数,不知道你们看懂了没,如果还有疑问,欢迎在后台留言。
除了函数,本文还加入了其他零碎的知识,后续我也会用这样的方式将小知识加入代码中,实践出真知,个人认为这样比将一大堆知识挤一起讲逐一演示要更容易消化,如果小伙伴们有更好的点子不妨分享出来让我做得更好。