函数的重点内容

函数的重点内容

一、函数的定义

1.1 什么是函数

函数更多的是一种思想,他不是一种技术

1.2 函数的定义方式

def 函数名():   #定义阶段(造车轮阶段)
	"""函数注释写在这里"""    # 相当于函数的说明书
	<代码块>
函数名()  #函数的调用阶段(开车阶段)
#定义一个注册函数
def register():
    """注册函数"""
    username = input('请输入你的用户名:')
    pwd = input('请输入你的密码:')

    with open('user_info.txt', 'a', encoding='utf8') as fa:
        fa.write(f'{username}:{pwd}|')
register()

定义阶段不执行函数代码,只检测语法错误

二、函数的三种定义方式

2.1 空函数(只是定义了函数,啥都没有)

只知道工具名但不知道如何选出这个函数

def func():
	pass

2.2 无参函数(无参:未知数,变量)

工具可以单独使用

def add():
    x = input('num1:')
    y = input('num2:')    
    print(int(x)+int(y))
add()

2.3 有参函数

这个工具不能单独使用,必须得加个配件才能使用

def add(x,y)
	print(int(x) + int(y))
    x = input('num1:')
    y = input('num2:')
add(x, y)

三、函数的调用

假如我们输入的x,y分别是4和6

def add(x,y)
	return x+y  #函数的返回值
    x = input('num1:')
    y = input('num2:')
res = add(x, y)   #调用add函数,并将add的返回值赋值给res
print(res*12)  #可以对函数的返回值进行其他操作
--------------------------------------------------
120    输出的最后的值为120

四、函数的返回值

def add(x, y):
    # return (x, y, x + y)  # return可以返回任意数据类型
    return x, y, x + y  # return可以返回任意数据类型,不加括号返回多个值时,默认用元祖的形式返回,如果没有return返回函数值就默认返回None
	x,y = add(1, 2)
add()

return其实就是函数的返回值,而且他还可以终值函数,当他输出函数的返回值的时候,他下面的代码就不会运行了。

五、函数的参数

5.1 形参

定义阶段才有形参,形式参数,啥也没有,知识占个位置,具有描述意义

def func(x,y)  #形参
	preturn x+y
add(1,2)

5.2 实参

调用阶段才有实参,实际的参数,具有具体的值,也具有实实在在的意义

def func(x,y)  
	preturn x+y
add(1,2)  #实参

5.3 位置形参

一个一个的写形参

def add(num1,num2):   #位置形参
    '''有参函数'''
    print(int(num1) + int(num2))
add()

5.4 位置实参

一个一个写过去

def add(num1,num2):  
    '''有参函数'''
    print(int(num1) + int(num2))
add(1,2)   #位置实参

5.5 默认形参

不需要传参,可以使用默认值; 传参就使用你传的值, 位置形必须放到默认形参前面

def shopping(name='nick'):  # 形参经常会引用同一个值
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜{name},得到{goods_dict[1]}一个')
shopping('jiayi')
--------------------------------------------------
恭喜jiayi,得到特斯拉一个

如果shopping('jiayi')里面没有传参数'jiayi'那么他就会使用默认值name='nick'

def shopping(name='nick'):  # 形参经常会引用同一个值
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜{name},得到{goods_dict[1]}一个')
shopping()
----------------------------------------------------
恭喜nick,得到特斯拉一个

5.6 关键字实参

按照形参名给定具体的值,可以打破位置形参,必须得一一对应传值的规定,位置实参必须在关键字实参之前

def shopping(x, name='nick'):
    goods_dict = {1: '特斯拉', 2: '奔驰', 3: 'nick'}
    print(f'恭喜{name},得到{goods_dict[x]}一个')
shopping(1, name='jiayi')
--------------------------------------------------
恭喜jiayi,得到特斯拉一个

位置实参1必须放在关键字实参name='jiayi',不然就会报错,而且有几个形参就得传几个值

posted @ 2019-08-08 16:50  JIAYIYAN  阅读(274)  评论(0编辑  收藏  举报