python 第九章 函数基础与函数参数

128 阅读6分钟

大家好我是程序员_蓝天, 本文是为了方便初学者能够快速学习python,写的可能不是很好,希望大家多多包涵。 每个赞都是我前进的动力。

初识函数(function)

​ 编程函数 != 数学函数. 要理解的是思路逻辑, 而不是套公式。

函数 = 方法. 实现一个特定的操作

一个人早上从起床到出门经过了什么?
    print('睁眼')
    print('换衣服')
    print('洗漱')
    print('吃早餐')
    print('出门')
把一些会反复用到的代码包装起来(封装), 起一个有意义的名字.以后要用它的时候就调用它就可以了
数值类型: 存储一个数据
序列, 散列类型: 存储多个数据
函数: 存储多段代码

函数的优点:
	1.遇到重复功能的时候, 直接调用即可,省事
	2.提升代码的结构性, 分工明确, 提高代码的可读性
	3.需要拓展/修改功能时.修改起来比较方便, 灵活

本质: 写了一些代码, 能够实现特定的功能.用一个东西把它装起来, 取个名字, 方便后续再使用 --> 函数

函数基础

​函数的命名规则与变量的命名规则是一致的:

​	1.由数字, 字母, 下划线组成
​	2.不能数字开头, 不能有特殊符号
​	3.不能用关键字
​	4.区分大小写
​	5.见名知意

def --> 定义
fun --> 函数单词的简写, 常用作简单的函数名

函数也有代码块的概念, 同样的通过缩进来表示

1.基本定义:
	def 函数名():
		代码内容

	def fun():
		print('你好, 我是个函数')
2.函数的基本使用:
	函数名()
	fun()
3.定义空函数: 函数内容不能为空, 如果还没想好要写啥定义空函数
	def 函数名():
		pass

	def fun():
		pass
4.定义了返回值的函数
	def 函数名():
		代码块
		return 返回值
	
	def add():
		a = 6+6
		return a

	print(a())

函数得先定义在使用

函数的使用分为两步:
1.定义函数 def
2.调用函数 函数()

函数的调用方式:
	1.直接调用函数(执行里面的代码, 运行过程)
		函数名()
		fun()
	2.获取函数的返回值, print(函数名())
		print(函数名()) # 先运行函数, 再输出返回值
		print(fun())

变量名 = 函数名() # 把函数的返回值赋给了变量
a = add()

return

返回值 = return
把值返回给函数本身

可以把代码块理解为过程
返回值返回的是结果.
代码执行就是一步步的过程.如果要直接知道结果, 那就直接获取返回值

你是个老板, 你安排事情给属下去做:
	员工做事的内容 = 代码块(代码内容)
	最后提交的结果 = return(返回值)

有的函数是没有返回值.如果没有定义 return 返回值, 它的返回值默认为 None

def fun():
    print('你好')
    return '蓝天'
    print('晚上好')
再 return 后面写的语句是不会执行.可以理解为 return 是函数版的 break, 后面的代码不会执行

函数 -- 做一件事
代码块 -- 做事的过程
返回值 -- 做事的结果

函数的返回值可以有多个.值与值之间用逗号隔开
def 函数名():
	return1, 值 2, 值 3

def fun():
	return 70,666, ['晚上好']

函数参数

形参 = 票 --> 保留位置
实参 = 人 --> 坐上位置

形参是没有实际值的, 只是作为占位.再实际使用时会用实参来代替形参.实参需要有具体值

定义带参函数:
	def 函数名(参数)
		代码块
	def fun(name): # 函数会接受一个值.
	    print(f'你好, 我叫{name}, 请多指教')
定义函数时, 括号里的参数为'形参', 先占个位置

调用带参函数:
	函数名(参数)
	fun('蓝天')
调用函数时, 括号里放入的参数为'实参', 有具体值

形参 = 占个位置, 形式主义, 没有具体值, 在定义函数
实参 = 实际数据, 有具体的值, 在调用函数

def add(a, b):
	return a+b
print(add(70,41))

有几个形参就传几个实参.不要多也不要少

返回值的特性:
	1.返回的类型是不限的, 可以返回数值, 列表, 元组, 集合, 字典, 函数
	2.数量是不限的, 可以返回多个值, 中间用逗号隔开.得到的数据为元组类型

参数进阶

1.必备参数: 有几个形参就有几个实参, 数量要匹配一致, 多了少了都报错
	定义时:
def 函数名(参数 1, 参数 2):
	调用时
函数名(值 1, 值 2)

def add(num1, num2):
add(20,31)

2.默认参数: 在声明参数的时候, 就先定义好参数的值
	定义时:
def 函数名(参数 1, 参数 2 = 值):
	调用时:
函数名(值 1)

def talk(age, name = '蓝天'):
	print(f'你好, 我是{name}, 我今年{age}岁')
talk(18,'小白')
talk(26)

形参在定义时就已经赋值了.在调用的时候就可以不接受传值.如果再传值就会覆盖默认值
默认参数赋值是写在右边的.写左边会报错

3.不定长参数 1:
	一次性可以接受多个值
有的时候写一个函数, 不确定要传几个值.就可以用不定长参数, 数据接受后, 为元组类型

定义时:
	def fun(*参数名):
	def fun(*args):

参数名是不固定.名字可以自己取, 但是有个潜规则.一般都是管它取名叫 args

调用时:
	函数名(多个数据)
	fun(66,70.1, True,'你好')

*表示的是不定长参数: 长度是不固定的, 可以接受很多个值, 传进来的值为元组类型.所以也可以进行切片, 索引等操作

4.不定长参数 2
	一次性可以接受多个值, 接受的类型为键值对
定义时:
	def 函数名(**参数名):
	def talk(**kwargs):
调用时:
	函数名(**{字典})
	talk(**{'蓝天':'男','小白':'男','小红':'女'})
**表示的是传入一个字典类型的不定长参数.kwargs 也不是固定的名字, 但是最好还是取名为 kwargs

内置函数(基础篇)

python 自带的一些功能函数, 可以直接使用

print() 输出语句
input() 输入语句
type() 获取数据类型

min() 获取最小值
max() 获取最大值
len() 获取数据长度(有几个数据)
sum() 获取数据的总值

文档字符串

针对函数的注释, 看起来和注释一样, 但是可以被调用输出.所以在写函数时, 更推荐写文档字符串

def fun():
	''' 
你好, 我是一个文档字符串
	'''
	print('我是测试函数')

输出方式:
	函数名.__doc__
	fun.__doc__
	print __doc__

核心作用就是查看函数的说明文档(文档尽量简介, 描述本质作用)
	1.这个函数的作用
	2.这个函数里, 参数的作用
	3.这个函数的返回值是干嘛的

推荐参考博客: c.biancheng.net/python/func…