函数,返回值,参数

时间:2021-09-03 00:26:31

一.函数

1 .函数的定义:对代码块和功能的封装和定义

2.函数定义的语法:

def  函数名()

  函数体

这里的函数名的命名规则和使用和变量基本一样.

def yue():
    print("拿出手机")
    print("打开陌陌")
    print("找个漂亮妹子")
    print("约不约")

这个时候去执行.会发现什么都没有发生.因为我只定义一个函数,但是还没有执行过这个函数.
3.函数的调用:使用函数名可以调用函数,写法:函数名(),这个时候函数的函数体会被执行

yue()
结果:
拿出手机
打开陌陌
找个漂亮妹子
约不约

函数,返回值,参数

 二.函数的返回

      执行完函数之后,我们可以使用return来返回结果.

1.函数中return的使用,此函数结束,不在继续执行.

def yue():
    print("约你")
    print("约我")
    print("约他")
    return
    print("约谁呀") # 这句话不会被执⾏
yue()

2.给函数的调用者一个访问结果

def yue():
    print("约你")
    print("约我")
    print("约他")
    return "美⼥⼀枚"
girl = yue()
print(girl) # 美⼥⼀枚

函数的返回值可以有多个结果

def yue():
    print("约你")
    print("约我")
    print("约他")
    return "美⼥⼀枚", "萝莉⼀枚"
girl = yue()
print(type(girl)) # tuple

总结一下:

1.  遇到return.此函数结束,函数后面的东西将不会再执行

2.return返回值

(1)如果return什么都不写,或者干脆不谢return,那么返回的就是None

(2)如果return后面写了一个值,则调用者可以接收一个结果

(3)如果return后面写了多个结果,则调用者可以接受一个tuple,调用者可以直接解构成多个变量

三.函数的参数

  参数,函数在调用的时候指定具体的一个变量的值.就是参数.

语法:

def 函数名(参数列表):
    函数体
def yue(chat):
    print("拿出⼿机")
    print("打开"+chat)
    print("找个漂亮的妹⼦")
    print("约不约")
yue("陌陌")
yue("微信")
yue("探探")

结果:
拿出⼿机
打开陌陌
找个漂亮的妹⼦
约不约
拿出⼿机
打开微信
找个漂亮的妹⼦
约不约
拿出⼿机
打开探探
找个漂亮的妹⼦
约不约

2.关于参数:
(1).形参:

写在函数声明的位置的变量叫形参,形式上的一个完整,表示这个函数需要xxx

(2)实参

在函数调用的时候给函数传递的值.叫实参.实际执行的时候给函数传递的信息.xxx

(3)传参

给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.

def yue(chat): # chat 形参
    print("拿出⼿机")
    print("打开"+chat)
    print("找个漂亮的妹⼦")
    print("约不约")
yue("陌陌") # 实参
len("字符串") # "字符串"在这⾥就是实参
print("麻花藤") # "麻花藤"就是实参

3.参数的分类:
实参:

(1)位置参数:按照形参的参数位置, 给形参传值

def yue(chat, address, age): # 形参
    print("拿出⼿机")
    print("打开"+chat)
    print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦")
    print("约不约")
yue("微信", "北京", 18) # 实参
结果:
拿出⼿机
打开微信
找个北京附近漂亮的18岁妹⼦
约不约

在访问yue()的时候, 我们按照位置的顺序分别把实参赋值给行参

练习:编写函数,给函数传递两个参数a,b.比较a,b的大小,返回a,b中最大的那个数

答案:

def my_max(a, b):
 if a > b:
 return a
 else:
 return b
# 有点⼉麻烦, 我们在这⾥学⼀个三元运算符.
def my_max(a, b):
 c = a if a > b else b # 当a>b成⽴返回a, 否则返回b
 return c

(2)关键字参数:按照形参的名字给形参传值

def yue(chat, address, age):
    print("拿出⼿机")
    print("打开"+chat)
    print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦")
    print("约不约")
yue(chat="微信", age=18, address="北京") # 关键字参数. 

结果:
拿出⼿机
打开微信
找个北京附近漂亮的18岁妹⼦
约不约
 (3)混合参数:即用位置参数, 也用关键参数  

# 混合参数
yue("微信", age=18, address="上海") # 正确.第⼀个位置赋值给chat, 后⾯的参数开始
指定关键字.
yue(age="18", "微信", address="⼴州") # 错误, 最开始使⽤了关键字参数, 那么后⾯的
微信的位置就串了, 容易出现混乱
注意: 在使⽤混合参数的时候, 关键字参数必须在位置参数后⾯
综上:在实参的角度,分三种:
1. 位置参数
2. 关键字参数
3. 混合参数, 位置参数必须在关键字参数前⾯
形参:
(1)位置参数: 按照位置来赋值  
def yue(chat, address, age):
    print("拿出⼿机")
    print("打开"+chat)
    print("找个"+address+"附近漂亮的"+str(age)+"岁妹⼦")
    print("约不约")
(2)默认参数: 在函数声明的时候, 就可以给出函数参数的默认值. 在调⽤的时候可以
给出具体的值, 也可以不给值, 使⽤默认值.
#比如, 我们录入咱们班学⽣的基本信息. 通过调查发现. 我们班⼤部分学⽣都是男⽣. 这个
#时候就可以给出⼀个sex='男'的默认值
def stu_info(name, age, sex=''): print("录⼊学⽣信息") print(name, age, sex) print("录⼊完毕") stu_info("张强强", 18)
注意, 必须先声明位置参数, 才能声明默认值参数
综上: 在形参的⾓度来看,
1. 位置参数
2. 默认值参数(⼤多数传进来的参数都是⼀样的, ⼀般⽤默认参数)