Python 函数定义 调用 迭代器 生成器 递归和推导式

1 函数定义

  • 什么是函数
  • 函数定义, 函数名, 函数体以及函数的调⽤用
  • 函数的返回值
  • 函数的参数

函数: 对代码块和功能的封装和定义,这⾥里里的函数名的命名规则和使⽤用和变量量基本⼀一样

def 函数名():   

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

函数的调⽤用: 使⽤用函数名可以调⽤用函数, 写法: 函数名(), 这个时候函数的函数体会被执⾏


def apple():
    print("你好")
    print("中国")
apple()

结果如下:
你好
中国

执行效果如下

                                                  1
执行结果怎么来描述和获得呢? 这个就涉及到函数的返回值的问题.

函数的返回

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

  • 函数中遇到return, 此函数结束, 不再继续执⾏
  • 给函数的调⽤用者⼀一个访问结果

总结:

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

def apple():
    print("你好")
    print("中国")
    return "晚安"                 # 返回一个结果,返回的将是字符串
    print("早安")                 # 上方有return 将不执行


changan = apple()
print(changan)
print(type(changan))

print("---------完美分割线-----------")


def apple1():
    print("你好")
    print("中国")
    return "晚安","早安"           #返回多个结果,由于是逗号分割,结果将为元组


changan1 = apple1()
print(changan1)
print(type(changan1))


结果如下:

你好
中国
晚安
<class 'str'>
---------完美分割线-----------
你好
中国
('晚安', '早安')
<class 'tuple'>

函数的参数  

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

语法:

def 函数名(参数列表):   

       函数体

使用如下所示,调用apple时,参数 "中国"传递进入代码块.

def apple(chat):
    print("你好", chat)  # 可以用逗号,
    print("你好" + chat)  # 可以用+


apple("中国")

结果如下

你好 中国
你好中国

关于参数: 

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

            1.位置参数  按照位置来赋值, 到⽬目前为⽌止, 我们编写的函数都是这种

def apple(a, b, c):
    print(a)  # 对"你好"
    print(b)  # 对"中国"
    print(c)  # 对"早安"


apple("你好", "中国", "早安")

            2.默认参数  在函数声明的时候, 就可以给出函数参数的默认值. 在调⽤用的时候可以 给出具体的值, 也可以不给值, 使⽤用默认值. 默认参数必须在位置参数之后.

def apple(a, b, c="台湾"):
    print(c)  # 可以用逗号,
    print(b)  # 可以用+
    print(a)  # 可以用+

apple("你好", b="中国")
print("------------")
apple("你好", b="中国", c="上海")

结果如下:
台湾
中国
你好
------------
上海
中国
你好

            3.动态传参,分为两种,动态接受位置参数*任意参数名 和动态接受关键字参数*args






  • 实参 在函数调⽤用的时候给函数传递的值. 叫实参, 实际执⾏行行的时候给函数传递的信息. 表⽰示给函数 xxx

            1.位置参数   函数调用时,按顺序归为apple("你好","中国","早安")

def apple(a, b, c):
    print(a)  # 对"你好"
    print(b)  # 对"中国"
    print(c)  # 对"早安"


apple("你好", "中国", "早安")

结果如下:
你好
中国
早安

            2.关键字参数   函数调用时,将部分或全部参数指定好,我们不需要记住每个参 数的位置. 只要记住每个参数的名字就可以了了

def apple(a, b, c):
    print(c)  # 对"早安"
    print(b)  # 对"中国"
    print(a)  # 对"你好"


apple(a="你好", b="中国", c="早安")
结果如下:
早安
中国
你好

            3.混合参数(位置参数与关键字参数混合),在调⽤用函数的时候即可以给出位置参数, 也可 以指定关键字参数. 要求位置参数必须在 关键字参数前面.

def apple(a, b, c):
    print(c)  # 可以用逗号,
    print(b)  # 可以用+
    print(a)  # 可以用+


apple("你好", c="中国", b="早安")
结果如下:
中国
早安
你好
  • 传参 给函数传递信息的时候将实际参数交给形式参数的过程被称为传参.

如果我们需要给⼀一个函数传参, ⽽而参数⼜又是不确定的. 或者我给⼀一个 函数传很多参数, 我的形参就要写很多.可以考虑使⽤用动态参数.  形参的第三种: 动态参数

posted @ 2019-01-04 01:07  芒果侠  阅读(229)  评论(0编辑  收藏  举报