python 09 函数

函数初识

1. 函数定义:

def 函数名():
    函数体

# def 关键字 -- 定义
# 函数名 -- 和变量定义规则一样
# ()   必须要写格式 ,一会在盘他
# : 声明语句结束

内存中存放了一堆代码,如果不调用,里面不会变,不会开辟空间

2. 函数调用:

函数名 + ()   

def my_len():
	s = "alex"
	count = 0
	for i in s:
		count += 1
	print(count)
my_len()  #调用 显示4	

3. 函数的返回值:

return:

def my_len():
	s = "alex"
	count = 0
	for i in s:
		count += 1
	return count
print(my_len())   # 4  count的值给了my——len()

lst = [1,3,5,7]
def li():
    for i in lst:
        lst.append(int(input(">>>")))
        return lst
print(li())  # lst给了li()

#总结:
return的内容返回给了函数的调用,可以返回任意类型
return下方的代码不执行,终止这个函数(不是终止循环)
return 返回多个内容的时候还是元组形式
return 没有写返回值的时候返回的是None,不写return返回的也是None

4. ()

形参:函数的定义中括号里的是形参
实参:函数的调用括号里的是实参
传参:将实参传递给形参的过程

4.1 位置传参:

​ 形参与实参必须一一对应,形参可以不用,但必须传参。

​ 形参是默认参数是,实参传递时可以不写,若写内容就会将形参的默认参数覆盖。

​ 位置参数 > 默认参数

def func(a,b,c):
    print(a,b,c)
func(1,3,5)   # 1 3 5  可以是任意数据类型

def func(a,b=2):   #b=2 为默认参数,可以不用写实参
    print(a,b)
func(1)    #1 2  

def func(a,b=2):   #默认参数必须放最后
    print(a,b)
func(1,3)   # 1 3  位置参数 > 默认参数  b=3

形参与实参必须一一对应,形参可以不用,但必须传参

4.2 关键字传参:

def func(a,b,c):
    print(a,b,c)
func(a=1,c=3,b=2)   # 按a,b,c 传参,  1,2,3

def func(a,b,c=4):
    print(a,b,c)
func(a=1,c=3,b=2)   # 1 2 3  c=4被覆盖

#依次输出name,age,sex:
def userinfo(name,age,sex="男"):
    print(name,sex,age)
while True:
    name = input("name:")
    age = int(input("age:"))
    sex = input("sex(如果是男,直接回车!):")
    if sex == "女":
        userinfo(name,age,sex)
    else:
        userinfo(name, age)

4.3 混合传参:

​ 位置参数 > 关键字参数

#错误示例:
def func(a,b,c):
    print(a,b,c)
func(1,b=3,5)   # 位置参数跟随在关键字参数后,报错

def func(a,b,c):
    print(a,b,c)
func(1,3,c=5)   # 1 3 5


def func(a:int,b:str):   # 只有提示作用,没有约束作用
    print(a,b)
    print(type(a))     # int
    print(type(b))     # int
func(1,2)
原文地址:https://www.cnblogs.com/yzm1017/p/11198659.html