python-----函数的进阶

函数参数参数的返回值的作用
函数根据有没有参数以及有没有返回值,可以相互组合,一共有4种组合形式

  1. 无参数,无返回值

    def show_menu():
    print(“功能菜单”)

    show_menu()

2.无参数,有返回值

def get_form():
	print("获取表单")
	return 1



res = get_form()
print(res)

3.有参数,无返回值

def stu_name(name):
	print("学生姓名是%s" % name)


stu_name("张三")

4.有参数,有返回值

def stu_name(name):
	print("学生的姓名是%s" % name)
	return (1,2,3)



names = stu_name("张三")
print(names)

交换两个数字三种方法

第一种

a = 1
b = 3
# 定义变量完成互相赋值
c = a
a = b
b = c
print(a, b)

第二种

m = 4
n = 10
m = m + n  # 取得总数,在进行相减得到数字

n = m - n
m = m - n

print(m, n)

第三种,python专属方法

a = 19
b = 20
a, b = b, a
print(a, b)

函数传参的本质是数据的引用,内部修改局部变量的引用不影响外部

def demo(num, num_list):
    print("函数内部")
    # 赋值语句
    num = 200  # 内部的变量数据
    num_list = [1, 2, 3]
    print(num)
    print(num_list)
    print("函数代码完成")


gl_num = 99
gl_list = [4, 5, 6]
demo(gl_num, gl_list)
print(gl_num)
print(gl_list)

缺省参数
1.定义函数时,可以给某个参数指定一个默认值,具有默认值的参数叫做缺省参数
调用函数时,如果没有传入缺省参数的值,则在函数内使用定义函2.数时指定的参数默认值
3.函数的缺省参数,将常见的值设置为参数的缺省值,从而简化函数的调用

def stu_name(name, age=16, sex="男"):
    print(name, age, sex)
stu_name("张三")

提示:
1.缺省参数,需要使用最常见的值作为默认值
2.如果一个参数的值不能确定,则不应该设置默认值,具体的数值在调用函数时,由外界传递

缺省参数的注意事项
1.必须保证带有默认值的缺省参数 在参数列表的末尾
2.在调用带有多个缺省参数需要指定参数名,这样解释器才能够知道参数的对应关系

def print_info(name, title="", gender=True):
    """

    :param title: 职位
    :param name: 班上同学的姓名
    :param gender: True 男生 False 女生
    """

    gender_text = "男生"

    if not gender:
        gender_text = "女生"

    print("%s%s 是 %s" % (title, name, gender_text))


# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明")
print_info("老王", title="班长")
print_info("小美", gender=False)

多值参数
有时候可能需要一个函数能够处理的参数个数是不确定的,这个时候就可以使用多值参数
python中有两种多值参数:
1.参数名前增加一个可以接收元组
2.参数名前增加两个
***可以接收字典

def n_num(*t):
    print(t, type(t))
    summ = 0  # 定义变量接收总值
    for i in t:  # 遍历元组
        summ += i
    print(summ)


n_num(1, 2, 6)


# 字典传参
def N_number(**d):
    print(d)
    for i in d.values():
        print(i)


N_number(name="张三", age=14, height=172)
N_number(name="李四", age=19, height=180)

猜你喜欢

转载自blog.csdn.net/weixin_44737646/article/details/88802758