Python -----函数(功底部分)

作者:编程技术

  语法:

1.定义:

    函数是对功能的封装

  我们使用def关键字来定义函数, 函数的定义语法:

    1.位置参数,按照形参的参数位置,给形参传值

def cat(cat1,cat2):
    print("这是一只很可爱的%s"% cat1 )
    print("这是一只%s颜色的猫"% cat2 )

cat("加菲猫","灰色")

 

图片 1

 

  2.实参:

    1.位置参数,按照位置给形参赋值

    2.关键字参数,按照名称给形参赋值

    3.混合参数,先位置参数,再关键字参数

 

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

   2. return 返回值:只写return 或者不写return,返回的是None,如果return 后面写了一个值,可以接收一个结果,如果后面写了多个值,则接收到的是一个tuple,可以直接解构为多个变量

 

      1.位置参数:传参时按照位置顺序分别将实参传递给形参,解释器默认按照位置传参.

  4.在函数中可以返回多个返回值,return 值1,值2,值3....,接收的是元组

 

def yue():
    print("Hello")
    print("你好")
    print("再见")
    return
    print("拜拜")  #这句话不会被执行
yue()

 

图片 2

 

3.函数的返回值:

return,函数执行完毕,不会执行后面的

  1.如果函数中不写return则返回None

  2.只写return,返回None

  3.return 返回值:返回的是一个值

  4.return 值1,值2...:返回的是多个值,调用函数接收到的是元组

 

  2.在函数中间或者末尾写return,返回的是None

2.语法:

    def 函数名

      函数体

    函数名

函数名的命名规则和变量一样

三:函数的返回

  函数是对功能的封装

4.参数:

  在函数执行的时候给函数传递的信息,函数的参数个数没有限制

  形参:函数声明的位置的变量

  实参:函数调用的时候给的具体的值

  传参:把实参交给形参的过程

  函数名的命名规则和变量基本一致,

    def 函数名(形参列表):

  1.形参:

    1.位置参数

    2.默认值参数,当调用的时候不给传值则使用的是默认值

    3.混合使用  先位置参数,再默认值参数

一:定义

  2.形参:

函数:

def func(**kwargs):
    print(kwargs)
func(a=1, b=2, c=3)
func(a=1, b=2)
结果:
{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2}

三.参数

二:函数的定义, 函数名, 函数体以及函数的调用

  1.实参:

    4 动态传参的另一种方式

    1.位置参数

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

  3.在函数中写return值,返回一个值

      

  函数执行的时候给函数传递信息.

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

  传参:把实参交给形参的过程

 

     几种参数最终的排序:位置参数 > *args > 默认值参数 > **kwargs

  调用:

    

  1.如果函数什么都不写,不写return,没有返回值,得到的是None

      2.默认值参数:当这个参数不传实参的时候,使用默认的值,需要在位置参数的后边

    2.默认值参数  先位置后默认值

def lis(name,age,sex = "男"):
    print(name,age,sex)

lis("迪迦",1080,)
lis("赛亚",1024,"女")

 

图片 3

 

 

      1.位置参数:同实参的位置参数,很容易理解

一丶函数

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

结果:
拿出手机
打开微信
找个北京附近漂亮的18岁妹子
约不约

    2.关键字参数,按照形参的名字给形参传值

def cat(cat1,cat2):
    print("这是一只很可爱的%s"% cat1 )
    print("这是一只%s颜色的猫"% cat2 )

cat(cat2 = "黄色",cat1 = "波斯猫")

 

图片 4

 

    首先,需要明确两个概念,形参和实参

      函数体(代码块,return)

      在实参位置上给一个序列,列表,可迭代对象前面加个*表示把这个序列按顺序打散,在形参的位置上的* 表⽰示把接收到的参数组合成一个元组,如果是一个字典, 那么也可以打散. 不过需要用两个*

    函数名(实参列表)

def yue():
    print("Hello")
    print("你好")
    print("再见")
    print("拜拜")
yue()

 

  

  形参:函数声明的位置的变量

      

  return:在函数执行的时候,如果遇到return,直接返回

def fun(*args):
    print(args)
lst = [1, 4, 7]
fun(lst[0], lst[1], lst[2])
fun(*lst) # 可以使用*把一个列表按顺序打散
s = "臣妾做不到"
fun(*s) # 字符串也可以打散, (可迭代对象)

    3.混合参数,即用位置参数,也用关键字参数

def food(good_food,listgood_food,NO_food):
    print(good_food,listgood_food,NO_food)

food("汉堡","饼干",NO_food="冰激凌")

图片 5

 

        3.1  动态接受位置参数, 动态参数必须在位置参数之后,在默认值参数之前, *表示接受任意内容

二丶返回值

          

注意:位置参数跟关键字参数混合使用时,位置参数必须在关键字参数前面,且对一个形参只能赋值一次

# 混合参数
yue("微信", age=18, address="上海") # 正确.第一个位置赋值给chat, 后面的参数开始指定关键字.
yue(age="18", "微信", address="广州") # 错误, 最开始使用了关键字参数, 那么后面的微信的位置就串了, 容易出现混乱

  实参::函数调用的时候给的具体的值

  函数名()的形式用来调用函数.

    3.动态参数(待补充)

  

 

  函数体就是函数被执行之后要执行的代码

  函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

      2.关键字参数:不按照位置传参,按照参数名字传参

  关于返回值:

    4.1 实参的分类

 

        

def chi(*food):
    print("我要吃", food)
chi("大米饭", "小米饭")
结果:
我要吃 ('大米饭', '小米饭') # 多个参数传递进去. 收到的内容是元组tuple

  return关键字会中断函数,并返回一个返回值

      3.混合参数:将上述两种参数混合使用,但是位置参数必须在关键字参数前边

      3.动态参数

def fun(**kwargs):
    print(kwargs)
dic = {'a':1, 'b':2}
fun(**dic)

    如果return什什么都不写 或者 ⼲干脆不写return .那么返回的就是None
    如果return后⾯面写了了⼀一个值. 则调⽤用者可以接收⼀一个结果
    如果return后⾯面写了了多个结果, 则调⽤用者可以接收⼀一个tuple, 调⽤用者可以直接解构成多个变量

      实参:函数调用的时候传递给函数的值,表示给函数xxx

    传参:将实参交给形参的过程叫做传参

        3.2 动态接收关键字参数,使用** 标志

    

    

def 函数名():
    函数体

  对于代码块和功能的封装和定义

    4.2 形参的分类

#比如, 我们录入一个班学生的基本信息. 通过调查发现.大部分学生都是男生. 这个时候就可以给出一个sex='男'的默认值.
def stu_info(name, age, sex='男'):
    print("录入学生信息")
    print(name, age, sex)
    print("录入完毕")
stu_info("张强", 18)

    如果想接收所有类型的参数,可以使用def func(*args, **kwargs):的形式,可以接收任何类型的参数,源码中很多方法都是这种形式.

def 函数名(参数):
    函数体

四:函数的参数

本文由分分快三计划发布,转载请注明来源

关键词: