一、定义函数  def 函数名():

    函数体代码

  例:
  #定义函数
  def email():
    print('send email')
  #调用执行函数
  email()

二、函数的返回值

  def email():
    print("send email")
    return "发送成功"       #没有return,默认返回None

  ret = email()     #函数return后面是什么值,ret等于返回值
  print(ret)
注意:一旦遇到return,函数内部return以下的代码不再执行。

三、函数的普通参数

  def email(address):     #address为形式参数
  print(address)
  return True

  ret = email('123@qq.com')       #调用执行传值,为实际参数
  #传参,默认是按顺序传值,也可以指定形参传入实参,就可以不按顺序

四、函数的默认参数

  #注意:有默认值的参数要放在后面
  def email(name, address="456@163.com"):             #name、address为形式参数,address有默认值为456@163.com
  print(name, address)
  return True

五、函数的动态参数

1)简单的动态参数
#注意:加上一个*号,即可成为动态形式参数,转换元组;加上两个**号时,转换成字典
  def email(*addr, **address):
    print(addr)
    print(address)

  email(11, 22, 33, k1 = 123, k2 = 456) #在动态函数参数中,可以传入多个参数
  结果:
  (11,22,33)
  {'k1':123, 'k2': 456}

2)为动态参数传入列表、字典或元组
  2.1)实参传入列表
    def f1(*args):
      print(args)

    li = [11,22,33,44] #列表
    f1(li)         #结果为[11,22,33,44]
    f1(*li)        #结果为(11,22,33,44),注意在传入实参时,加入*号
  2.2)实参传入字典
    def f2(**kwargs):
      print(kwargs)

    dic = {'k1':789} #传入字典
    f2(dic)           #结果报错
    f2(**dic)        #结果为{'k1':789},注意在传入实参时,加入**号

  注意:python语言传参,传入的引用。

六、全局变量、局部变量

  P = "python"         #p为全局变量,变量名一般大写,可以共享使用

  def func():
    a = 123          #a 为局部变量,变量名一般小写,只能在func()函数中使用
    #如果在函数内想修改全局变量,则需要使用关键字global
    global P
    P = "java"            #全局变量P的值被修改为"java"

    print(a)          #结果为123
    print(P)        #func()函数可以使用全局变量

七、lambda表达式

  lambda表达式,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用,也就是指匿名函数

  a.lambda表达式的创建
    函数名 = lambda: 函数体

  实例一:
    func = lambda: 123

    r = func()
    print(r) #结果为: 123

  实例二:
    add = lambda x, y : x+y
    add(1,2) # 结果为3

day006-python函数的更多相关文章

  1. python 函数之day3

    一 函数的语法及特性 什么是函数? 定义:函数是一个功能通过一组语句的集合,由名字(函数名)将其封装起来的代码块,要想执行这个函数,只要调用其函数名即可. 特性: 减少重复代码 使程序变的可扩展 使程 ...

  2. Python函数作用域的查找顺序

    函数作用域的LEGB顺序 1.什么是LEGB? L:local 函数内部作用域 E:enclosing 函数内部与内嵌函数之间 G:global 全局作用域 B:build-in 内置作用域 2.它们 ...

  3. Python函数讲解

    Python函数

  4. Python函数信息

    Python函数func的信息可以通过func.func_*和func.func_code来获取 一.先看看它们的应用吧: 1.获取原函数名称: 1 >>> def yes():pa ...

  5. Python函数参数默认值的陷阱和原理深究"

    本文将介绍使用mutable对象作为Python函数参数默认值潜在的危害,以及其实现原理和设计目的 本博客已经迁移至: http://cenalulu.github.io/ 本篇博文已经迁移,阅读全文 ...

  6. Python开发【第四章】:Python函数剖析

    一.Python函数剖析 1.函数的调用顺序 #!/usr/bin/env python # -*- coding:utf-8 -*- #-Author-Lian #函数错误的调用方式 def fun ...

  7. Python函数解析

    对于Python的函数,我们需要记住的是: 1. 函数的默认返回值是None. 2. python是一个自上而下逐行解释并执行的语言.因此,函数的定义必须在函数被调用之前.同名的函数,后定义的会覆盖前 ...

  8. Python入门笔记(18):Python函数(1):基础部分

    一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/archive/2011/08/29/2153871.html 一般程序设计语言包含两种基本的抽象:过 ...

  9. Python函数1

    Python 函数命令的使用 想想我们之前数学中学到的函数,首先我们需要定义一个函数,例如f(x)=x, 当x输入任意数的时候,f(x)都能输出和x相等的数值. 那么在Python中是如何实现的呢? ...

  10. python函数传参是传值还是传引用?

    首先还是应该科普下函数参数传递机制,传值和传引用是什么意思? 函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题.基本的参数传递机制有两种:值传递和引用传 ...

随机推荐

  1. MySql Packet for query is too large问题解决方案

    MySQL会限制Server接受的数据包大小.有时候插入.更新或查询时数据包的大小,会受 max_allowed_packet 参数限制,导致操作失败.报错信息为: Caused by: com.my ...

  2. 解决上传文件或图片时选择相同文件无法触发change事件的问题

    昨天在做一个上传文件的模块时遇到了这样的问题:打开文件一上传,上传成功后再次点击文件一,change事件无反应 <input type="file" name="f ...

  3. 删除排序链表中的重复元素II --链表

    题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例1 输入: ->->->->->-> 输出: ->-> ...

  4. CSP2019退役记

    写在前面 all last,我又失败了,我退役了 回忆我这个菜鸡OI生涯,有看机房神仙切题的乐趣,也有自己考场爆炸的辛酸 NOIP2017,我第一次参赛,我pj205二等打铁 NOIP2018,我第二 ...

  5. 理解 Kubernetes 的亲和性调度

    这次给大家介绍下k8s的亲和性调度:nodeSelector.nodeAffinity.podAffinity.Taints以及Tolerations用法. 一般情况下我们部署的 POD 是通过集群自 ...

  6. Java之路---Day19(set接口)

    set接口 java.util.Set 接口和 java.util.List 接口一样,同样继承自 Collection 接口,它与 Collection 接口中的方 法基本一致,但是set接口中元素 ...

  7. ip2region.jar实现ip转地址

    ip转地址 根据ip地址查询出所在地址. GitHub地址 https://github.com/lionsoul2014/ip2region/ pom坐标 <dependency> &l ...

  8. 2019-07-29 ThinkPHP简单的增删改查

    在model里面,建立表名Model.class.php的控制器,用以连接数据表,代码如下 namespace Home\Model; use Think\Model; class NewsModel ...

  9. 【转载】使用宝塔Linux面板屏蔽某些IP访问你的服务器

    在服务器的运维过程中,有时候发现一些异常IP或者扫描漏洞攻击者IP访问你的网站,此时如果想屏蔽该IP访问你的服务器,可以通过云服务器厂商提供的安全组进行设置.如果服务器安装有宝塔面板,也可以通过宝塔面 ...

  10. 基于JPA的分页/排序实现

    Page<ClassOrder> findByMember_MemberID(long id, Pageable pageable); Controller代码: public Model ...