一、函数: 

  1、为什么要有函数?什么是函数?
    1、组织结构不清晰,可读性差
    2、代码冗余
    3、管理维护的难度极大,扩展性

    具备某一个功能的工具就是程序的中函数
    事先准备工具的过程----》函数的定义
    拿来就用----》函数的调用

    所以函数的使用必须遵循:先定义,再调用

  2、定义函数:    

  1、语法
    def 函数名(参数1,参数2,...):
      """
      文档描述
      """  
      代码1
      代码2
      代码3
      return 值

    def:定义函数的关键字
    函数名:是用来调用函数的,
      函数名的命名必须能反映出函数的功能
    文档描述:推荐写上,来增强函数的可读性
    代码块:函数的功能实现代码
    return:函数的返回值

    例:

    print('========================')
    print('hello egon')
    print('========================')
    

    2.1 定义阶段
      def print_sym(sym,count):     #print_sym=<function print_msg at 0x000001B2A33698C8>
      print(sym*count)

      def print_msg(msg):
      print('\033[045m%s\033[0m' %msg)

    2.2 调用阶段:函数名加括号就是在调用函数

      print(print_sym)
      print_sym('#',30)
      print_msg('hello egon')
      print_sym('#',30)

  3 定义函数的三种类型:
    3.1 有参函数:参数是函数体代码用来接收外部传入值的
      def max2(x,y):     #x=100,=y101
      if x > y:
      print(x)
      else:
      print(y)
      max2(100,101)

    3.2 无参函数:当函数体的代码逻辑不需要函数的调用者掺入值的情况下,就无参
      def func():
        print('----------------------')
        print('---soft run-----------')
        print('----------------------')

      def interactive():
        name=input('username>>: ').strip()
        pwd=input('password>>: ').strip()
        print(name,pwd)

      interactive() #定义时无参,意味着调用时也无须传入参数
      interactive() #定义时无参,意味着调用时也无须传入参数
      interactive() #定义时无参,意味着调用时也无须传入参数

    3.3 空函数:函数体为pass
      def auth():
        """
        这是一个认证功能
        :return:
        """
        pass

      def put():
        """
        上传功能
        return:
        """
        pass

      def get():
        """
        下在功能
        return:
        """
        pass

      def ls():
        """
        list contents
        return:
        """
        pass

  4.调用函数

    函数的使用必须遵循:先定义,后调用的原则
    注意:没事先定义函数而直接调用,就相当于在引用一个不存在的变量名

    定义阶段:在定义阶段只检测语法,不执行函数体代码
    调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码

    函数名加括号即调用函数
      def bar():
      print('from bar')

    调用函数的三种形式
     1、不带参数直接调用
      def func():
      print('from func')

      func()

     2、带参数调用
      def max2(x,y):
      if x > y:
      return x
      else:
      return y

      res=max2(10,3)

        print(res)

    3、调用且运算

      def max2(x,y):
      if x > y:
      return x
      else:
      return y

      res=max2(10,3)*100
      print(res)

    4、嵌套调用

      res=max2(max2(10,3),11)
      print(res)

  5.返回值:

    什么时候应该有返回值:
    函数体代码运行完毕后需要有一个返回结果给调用者

    返回值有三种形式:

    1 没有return,返回值None
      def func():
        pass

      res=func()
      print(res)

    2 return后跟一个值,返回该值本身
      def func1():
        return 1

      res=func1()
      print(res)

    3 return可以逗号分隔,返回多个值,会返回一个元组给调用者
      def func2():
        return 1,2,[1,2,3]

      res=func2()
      print(res)

    return注意点:
      1、return返回值的值,没有类型限制
      2、return是函数结束的标志,函数内可以写多个return,但
      执行一次,函数就立刻结束,并把return后的值作为本次调用的返回值

      def func3():
        print('first')
        return 1
        print('second')
        return 2
        print('third')
        return 3

      res=func3()
      print(res)

Python之旅.第三章.函数3.26的更多相关文章

  1. Python之旅.第三章.函数4.01/4.02

    一.三元表达式 #普通的判断大小函数def max2(x,y): if x > y: return x else: return yres=max2(10,11)print(res)x=12y= ...

  2. Python之旅.第三章.函数3.30

    一.迭代器 1.什么是迭代?:迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来2.要想了解迭代器到底是什么?必须先了解一个概念,即什么是可迭代的对象?可迭代的对象:在python中,但凡内置 ...

  3. Python之旅.第三章.函数3.28

    一.命名关键字参数: 什么是命名关键字参数?格式:在*后面参数都是命名关键字参数特点:1 必须被传值1 约束函数的调用者必须按照key=value的形式传值2 约束函数的调用者必须用我们指定的key名 ...

  4. Python之旅.第三章.函数3.29

    一.无参装饰器 1 开放封闭原则 软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的 也就是说我们必须找到一种解决方案: 能够在不修改一个功能源代码以及调用方式的前提 ...

  5. Python之旅.第三章.函数3.27

    一.形参与实参 1.形参与实参是什么? 形参(形式参数):指的是 在定义函数时,括号内定义的参数,形参其实就变量名 实参(实际参数),指的是 在调用函数时,括号内传入的值,实参其实就变量的值 x,y是 ...

  6. python学习心得第三章

    python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...

  7. python学习笔记——第三章 串

    第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...

  8. 《零压力学Python》 之 第三章知识点归纳

    第三章(第一个程序)知识点归纳 编程犹如写剧本.Python函数与剧本差别不大,你可以反复调用函数,而它每次都执行预定的“脚本”(脚本也可以指整个程序). 在Python IDLE中,真正的编程是从编 ...

  9. 跟着高淇学Python——第一到第三章总结

    2019/10/26 第一章:Python介绍 Python是一种解释型,面向对象的语言.特点是: 可读性强 简洁,简洁 面向对象 免费开源 可移植性和跨平台性 丰富的库 可扩展性 应用范围:1.人工 ...

随机推荐

  1. python 想搞加密算法吗?快戳这里

    加密算法介绍 一,HASH Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换 ...

  2. Spring AOP梳理

    一.Srping AOP AOP(Aspect Oriented Programming)解释为面向切面编程,何为切面,用刀把一块面包切成两半,刀切下去形成的面就叫切面,那么面向切面的就是形成切面的这 ...

  3. SpringMVC【校验器、统一处理异常、RESTful、拦截器】

    前言 本博文主要讲解的知识点如下: 校验器 统一处理异常 RESTful 拦截器 Validation 在我们的Struts2中,我们是继承ActionSupport来实现校验的...它有两种方式来实 ...

  4. Django入门开发之数据模型01

    1. Django安装 [root@HappyLau ~]# pip install django==1.8.2 2. 创建项目 [root@HappyLau html]# django-admin ...

  5. C#中的多线程与线程互斥

    通过多线程,C#可以并行地执行代码. 每一个线程都有它独立的执行路径,所有线程都能访问共有变量. 这就引发了线程竞争 这时就需要使用线程安全的处理方式使得线程互斥 先来看一段多线程代码 using S ...

  6. parted分区及挂载实战操作大全

    个人原创博客,转载请注明,否则要负法律责任 2017-09-29-14:46:25[root@localhost ~]# df -hFilesystem Size Used Avail Use% Mo ...

  7. linux下安装软件

    业界的软件标准安装有三步:configure,make,make install,下面是它们的定义: ./configure是用来检测你的安装平台的目标特征的.比如它会检测你是不是有CC或GCC,并不 ...

  8. Java中调用文件中所有bat脚本

    //调用外部脚本String fileips=null;//所有的路径String[] files=null;String fileip=null;//单个路径try { InputStream is ...

  9. shiro授权

    一.shiro-permission.ini shiro-permission.ini里面的内容相当于在数据库 #用户 [users] #用户zhang的密码是123,此用户具有role1和role2 ...

  10. Python : Module

    在Python中,一个.py文件代表一个Module.在Module中可以是任何的符合Python文件格式的Python脚本.了解Module导入机制大有用处. 1 Module 组成 1.1 Mod ...