首页 > 编程语言 > 详细

Python基础

时间:2021-03-27 22:34:46      阅读:34      评论:0      收藏:0      [点我收藏+]

一、函数

  1.函数的定义

    所谓函数,就是把具有独立功能的代码块组织为一个小模块,在需要的时候调用

    函数的调用包括两个步骤:

      1.定义函数一一封装独立的功能

      2.调用函数一一享受封装的成果函数的作用,在开发程序时,使用函数可以提高编写的效率以及代码的重用

  2.如何定义函数

    1.def 是英文define(定义)的缩写

       2.函数名称应该能够表达函数封装代码的功能,方便后续的调用

       3.函数名称的命名应该符合标识符的命名规则可以由字母、下划线和数字组成 不能以数字开头,不能与关键字重名

    技术分享图片

  3.函数的调用

    调用函数很简单,通告函数名() 即可完成对函数的调用

  4.

   技术分享图片

  5.函数的文档注释

     a.在开发中,如果希望给函数添加注释,应该在定义函数的下方,使用连续的三对引号

     b.在连续的三对引号之间编写对函数的说明文字

     c.在函数调用位置,使用快捷键 Ctrl+Q 可以查看函数的说明信息

注释:1.因为函数体相对比较独立,函数定义的上方,应该和其他代码(包括注释)保留两个空行

   2.格式不规范,可以按ctrl+alt+L快捷键调整格式

   6.函数的参数

   在函数名的后面小括号内部填写参数

   多个参数之间使用,分离

   技术分享图片

  7.函数的作用

   函数,把具有独立功能的代码块组织为一个小模块,在需要的时候调用函数的参数、增加函数的通用性,针对相同的数据处理逻辑、能够适应更多的数据

    1.在函数内部,把参数当做变量使用,进行需要的数据处理

       2.函数调用时,按照函数定义的参数顺序、把希望在函数内部处理的数据通过参数传递

     8.形参和实参

    形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用(类型上的参数,没有实际的值)

    实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的(具有实际意义的值)

  9.函数嵌套调用

    一个函数里面又调用了另外一个函致,这就是函数嵌套调用

    如果函数 test2 中,调用了另外一个函数 test1

    那么执行到调用 test1 函数时,会先把函数test1中的任务都执行完才会回到 test2 中调用函数 test1 的位置,继续执行后续的代码

    技术分享图片

   10.函数的递归

    a.函数调用自身的编程技巧称为递归

    b.递归函数的特点:

      一个函数内部调用自己

      函数内部可以调用其他函数,当然在函数内部也可以调用自己

    c.代码特点

      函数内部的代码是相同的,只是针对参数不同,处理的结果不同

      当参数满足一个条件时,函数不再执行,通常被称为递归的出口,否则会出现死循环

二、内部函数

  a.在函数内部定义另一个函数,也就是函数的嵌套

  b.在外部函数的作用域内,外部函数可以随意调用内部函数

  c.由于内部函数的整个定义过程都在外部函数中,所以出了外部函数就无法再被调用了

  d.内部函数的特点:

   1.可以访问外部函数的变量

   2.内部函数可以修改外部函数的可变类型的变量 

   3.函数内部修改全局变量,要加global变量名,内部函数要使用外部函数的不可变类型的变量的时候要加nonlocal

   4.locals() 查看本地变量有哪些,以字典的形式输出

三、闭包

   如果在一个内部函数里引用了外部函数的变量,此时这个内部函数就被称为闭包

    技术分享图片

   技术分享图片

   条件 1.在外部函数中定义了内部函数

      2.外部函数有返回值

      3.返回的值是:内部函数名(不加括号)

      4.内部函数引用了外部函数的变量值

     # 符合这些条件的就是闭包

 四、异常

  1.概念

   程序在运行时,如果 Python解释器 遇到 一个错误,会停止程序的执行,并且提示一些错误信息。这就是异常

   程序停止执行并且提示错误信息 这个动作,我们通常称之为:抛出(raise)异常

  技术分享图片

   程序开发时,很难将所有的特殊情况都处理的面面俱到,通过异常捕获可以针对突发事件做集中的处理,从而保证程序的稳定性和健壮性

  3.异常类型

  技术分享图片

    技术分享图片

    技术分享图片 

  4.异常捕获(简单的捕获异常语法)

   a.程序在运行时,如果对某些代码的执行不能确定是否正确,可以增加 try 来捕获异常

   b.捕获异常最简单的语法格式:

   技术分享图片

   c.错误类型捕获

    1)在程序执行时,可能会遇到不同类型的异常,并且需要针对不同类型的异常,做出不同的响应,这个时候,就需要捕获错误类型了

     语法格式:

      技术分享图片

      2)当Python 解释器抛出异常时,最后一行错误信息的第一个单词,就是错误类型

    d.捕获未知错误

    在开发时,要预判到所有可能出现的错误,还是有一定难度的

    如果希望程序无论出现任何错误,都不会因为 Python 解释器抛出异常而被终止,可以增加一个except

    技术分享图片

     e.完整的异常语法

    技术分享图片

   f.异常的传递

    异常的传递:当函数/方法执行出现异常,会将异常传递给函数/方法的调用一方

    如果传递到主程序,仍然没有异常处理,程序才会被终止

     注释:1.在开发中,可以在主函数中增加异常捕获

        2. 而在主函数中调用的其他函数,只要出现异常,都会传递到主函数的异常捕获中

          3.这样就不需要在代码中,增加大量的异常捕获,能够保证代码的整洁

   技术分享图片

   g.抛出raise异常

    1.在开发中,除了代码执行出错 Python 解释器会抛出异常之外

    2.还可以根据应用程序特有的业务需求主动抛出异常

      注释:当前函数只负责提示用户输入密码,如果密码长度不正确,需要其他的函数进行额外处理

            因此可以抛出异常,由其他需要处理的函数捕获异常

     3.Python中提供了 一个Exception 异常类

     在开发是,如果满足特定业务需求时,希望抛出异常,可以:

      创建一个Exception 的对象

      使用raise关键字抛出异常对象

五、集合

  1.定义

   某些指定的对象集在一起就成为一个集合,其中每一个对象叫元素.

  2.格式

   集合名 = {元素1,元素2,...}

  3.a.集合是无序的-> 不支持下标索引

          b.集合是可变的数据类型

          c.集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重

     d.定义一个空的集合  my_set = set()

    注意: my_set = {}  这样的写法为一个空字典

  4.集合的操作

   a.增加元素

    技术分享图片

      b.删除元素

     .remove()  如果元素存在则删除,不存在则报错:KeyError:

    .pop() 随机删除

    .clear() 清空集合

    .discard() 类似于remove(),移除不存在的元素的时候不会报错

      c.其他操作

    技术分享图片

   5.交集和并集

   a.差集(-)

    项在前一个集合中,但不在后一个集合中

    技术分享图片

    技术分享图片

    b.交集(&)

    技术分享图片

        技术分享图片

      c.并集(|) 

    技术分享图片

    技术分享图片

    d.对称差集(^)

    项在前一个集合或后一个集合中 但不会同时出现在二者中

       技术分享图片

      技术分享图片

  6.可变、不可变及类型转换

   不可变类型,内存中的数据不允许被修改

     数字类型 int bool float,complex,long(2.x)

     字符串 str

     元组 tuple

   可变类型,内存中的数据可以被修改

       列表 list

       字典 dict

       集合/frozenset()除外,frozenset() 返回一个冻结的集合,冻结后集合不能再添加或删除任何元素

    注释:1.可变类型的数据变化,是通过方法来实现的

       2.如果给一个可变类型的变量,赋值了一个新的数据引用会被修改

        变量不再对之前的数据引用,变量改为对新赋值的数据引用

      3.字典的Key只能使用不可变类型的数据

  7.数据类型转化

   技术分享图片

 

    

 

 

 

 

      

    

 

Python基础

原文:https://www.cnblogs.com/gg-nly/p/14579948.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!