Python之旅.第三章.函数3.26
一、函数:
  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的更多相关文章
- Python之旅.第三章.函数4.01/4.02
		
一.三元表达式 #普通的判断大小函数def max2(x,y): if x > y: return x else: return yres=max2(10,11)print(res)x=12y= ...
 - Python之旅.第三章.函数3.30
		
一.迭代器 1.什么是迭代?:迭代是一个重复的过程,并且每次重复都是基于上一次的结果而来2.要想了解迭代器到底是什么?必须先了解一个概念,即什么是可迭代的对象?可迭代的对象:在python中,但凡内置 ...
 - Python之旅.第三章.函数3.28
		
一.命名关键字参数: 什么是命名关键字参数?格式:在*后面参数都是命名关键字参数特点:1 必须被传值1 约束函数的调用者必须按照key=value的形式传值2 约束函数的调用者必须用我们指定的key名 ...
 - Python之旅.第三章.函数3.29
		
一.无参装饰器 1 开放封闭原则 软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的 也就是说我们必须找到一种解决方案: 能够在不修改一个功能源代码以及调用方式的前提 ...
 - Python之旅.第三章.函数3.27
		
一.形参与实参 1.形参与实参是什么? 形参(形式参数):指的是 在定义函数时,括号内定义的参数,形参其实就变量名 实参(实际参数),指的是 在调用函数时,括号内传入的值,实参其实就变量的值 x,y是 ...
 - python学习心得第三章
		
python学习心得第三章 1.三元运算 变量=值1 if 条件 else 值2 由图如果条件成立则赋值1给变量,如果条件不成立则赋值2给变量. 2.数据类型 集合:set() class set(o ...
 - python学习笔记——第三章 串
		
第三章 字符串学习 1.字符串不灵活, 它不能被分割符值 >>> format = "hello, %s. %s enough for ya?" >> ...
 - 《零压力学Python》 之 第三章知识点归纳
		
第三章(第一个程序)知识点归纳 编程犹如写剧本.Python函数与剧本差别不大,你可以反复调用函数,而它每次都执行预定的“脚本”(脚本也可以指整个程序). 在Python IDLE中,真正的编程是从编 ...
 - 跟着高淇学Python——第一到第三章总结
		
2019/10/26 第一章:Python介绍 Python是一种解释型,面向对象的语言.特点是: 可读性强 简洁,简洁 面向对象 免费开源 可移植性和跨平台性 丰富的库 可扩展性 应用范围:1.人工 ...
 
随机推荐
- Java集合中的HashMap类
			
jdk1.8.0_144 HashMap作为最常用集合之一,继承自AbstractMap.JDK8的HashMap实现与JDK7不同,新增了红黑树作为底层数据结构,结构变得复杂,效率变得更高.为满足自 ...
 - Linux系统中svn服务器设置开机启动
			
安装完svn服务器后虽然好用但是因为经常重启Linux服务器,每次重启完就要去手动启动svn服务器,很是麻烦,于是在网上找了一些方法后,自己把svn服务器设置成开机启动 步骤一:安装svn服务器: h ...
 - 笔记-JS高级程序设计-基本概念篇
			
1:JS中的一切(变量,函数名和操作符)都是区分大小写的 2:标识符(变量,函数,属性的名字,以及函数的参数),第一个字符必须是字母,下划线,或者美元$,书写方式采用驼峰式,不能将关键字作为标识符. ...
 - es6学习笔记--字符串&数值&数组&函数&对象的扩展
			
这几天抽空学习了es6语法,关于字符串,数值,数组,函数以及对象的扩展,看到es6标准入门这本书,里面讲的扩展特别多,我认为有几部分在项目上用不到,就挑有用的当笔记学习了. 字符串的扩展 str.in ...
 - 使用guava实现找回密码的tokenCache以及LRU算法
			
源码包的简单说明: com.google.common.annotations:普通注解类型. com.google.common.base:基本工具类库和接口. com.google.common. ...
 - js对象系列【二】深入理解js函数,详解作用域与作用域链。
			
这次说一下对象具体的一个实例:函数,以及其对应的作用域与作用域链.简单的东西大家查下API就行了,这里我更多的是分享自己的理解与技巧.对于作用域和作用域链,相信绝大多数朋友看了我的分享都能基本理解,少 ...
 - python3 爬虫开发 学习总结一
			
virtualenv 安装虚拟环境的 pip install virtualenv安装慢的话,可以指定源 pip install -i 源地址 xxx 就可以安装xxxvirtua ...
 - 【Flask】 使用Flask-Moment进行日期时间的管理
			
Flask-Moment Flask-Moment又是一个flask的扩展模块,用来处理时间日期等信息.用这个模块主要是考虑到两点,第一是为了让不同时区的用户看到的都是各自时区的实际时间,而不是服务器 ...
 - CentOS 6.5 通过命令行安装发送邮件
			
1.安装sendmail: yum install sendmail 2.安装mailx: yum install mailx -y 3.编辑发送的配置文件: vi /etc/mail.rc #在最后 ...
 - selenium2自动化测试学习笔记(三)
			
今天是学习selenium的第三天,今天的主题是自动登录126邮箱. 今天总结碰到的坑有三个: 1.frame内元素抓取,使用driver.switch_to.frame(frameId)方法切换锁定 ...