zoukankan      html  css  js  c++  java
  • 第一阶段小结

    python简介

      定义:是一个免费,开源,跨品台,动态,面向对象的编程语言

    程序执行方式:

    1. 交互式:在命令行输入指令,回车即可得到结果
    2. 文件式:将指令编写到py文件中,可以重复运行程序

    函数:表示一个功能,制作函数的人叫做函数定义着,使用函数的人叫做函数调用者

    变量:

    1. 定义:关联一个对象的标识
    2. 命名:必须为字母,数字或者下划线,后面跟着字母,数字,下划线,不能使用保留关键字,
    3. 建议命名:见面知意字母小写,多个单词用下划线隔开
    4. 语法:变量名 = 表达式 or 变量名1 = 变量名2 = 表达式 or 变量名1,变量名2 = 表达式1,表达式2

    数据类型:

    1. None:表示不存在的特殊对象
    2. 整形(int):整数包含整数,负数,0。
      • 有十进制,二进制,八进制,十六进制
      • 小整数对象池:cpython中整数-5到256,永远存在小整数对象池中,不会释放
      • 对象池:缓存的机制
    3. 浮点型(float)
      • 小数,包含正数,负数,0.0
      • 字面值1.5
      • 科学计数法:1.5e1 ,05e-1
    4. 字符串(str)
      • 用于记录文本信息
      • 字面值:单引号,双引号,三引号
    5. 布尔值(bool)
      • True表示真
      • False表示假
    6. 复数(complex)
      • 由实部和虚部组成的数字
      • 虚部以j或J结尾 5+3j     5j

    数据类型转换

    • 转为整形:int(数据)
    • 转为浮点型:float(数据)
    • 转为字符串: str(数据)
    • 转为布尔 : bool(数据)
      • False: 0 , 0.0 ,'',None
      • True:有值

    运算符

    1. 算数运算符
      • +
      • -
      • *
      • / 小数除结果为float类型
      • // 底板除:向下取整
      • %取余数
      • **幂运算
    2. 增强运算符:-=   +=  *=  /=  //=  %=  **=
    3. 比较运算符:>  <   ==  >=   <=  !=结果是bool类型
    4. 逻辑运算符
      • and: 一假具假
      • or:一真则真
      • not:取反
    5. 身份运算符
      • is:判断两个对象是否为一个对象
      • is not :与is相反

    range函数

      作用:可以生成一系列整数的可迭代对象。

      语法:range(开始点,结束点,间隔点)

    break语句:跳出循环体,后面的代码不在执行

    continue语句:跳过本次循环,继续下次循环

    容器

    1. 字符串(str):由一系列字符组成的不可变序列容器,存储的是字符编码值
    2. 列表(list):由一系列变量组成的可变序列容器
      • 列表推导式:变量= [表达式for变量in可迭代对象if条件]
      • 推导式镶嵌:[表达式for变量1 in可迭代对象1 for变量2 in可迭代对象2]
    3. 元组(tuple):由一系列变量组成的不可变序列容器
    4. 字典(dict):由一系列键值对组成的可变映射容器
      • 映射(哈希算法):通过键对应值,每条记录无序。
      • 键必须唯一且不可变对象(字符串,数字,元组),值没有限制
    5. 集合(set):由一些列不重复的变量组成的可变映射容器,相当于只有键没有值的字典
    6. 固定集合(frozenset):不可变的集合

    函数

      定义:用于封装一个特定的功能,表示一个行为,可以重复执行的语句块。

      作用:提供程序的复用性,可维护性(代码层次结构更清晰)

      返回值(return):方法定义着告诉调用的结果

    函数参数

    1. 实参传递方式argument
      • 位置传参:实参与形参的位置一次对应
      • 序列传参:实参用*将序列拆解后与形参的位置依次对应
      • 关键字传参:实参根据形参的名字进行对应
      • 字典传参:实参用**将字典蔡姐与形参的名字进行对应
    2. 形参传递方式 parameter
      • 默认(缺省)参数:参数 = 默认值
      • 位置形参:def函数名(参数)
      • 星号元组形参:*args
      • 命名关键字形参:强制实参使用关键字传递
      • 双星号字典形参 : **kwargs

    可变/不可变类型再传参时的区别:

    1. 不可变类型:字符串,元组,固定集合,整数。浮点数。复数
    2. 可变类型:列表,字典,集合
    3. 不可变类型的数据传参时,函数内部不会改变元数据的值
    4. 可变类型的数据传参时,函数内部可能改变原数据的值

    作用域LEGB

    1. local局部作用域:函数内部
    2. encolsing外部嵌套作用域:函数嵌套
    3. GLOBAL全局作用域:py文件内部
    4. Builtins内建模块作用域:builtins.py
    5. 变量名的查找规则:L-->E-->G--B

    局部变量:在方法体内部定义的变量调用函数时才被创建,函数结束后自动销毁

    全局变量:定义再.py文件中的变量函数体内部可以访问,但不能直接修改,需要先声明

    模块:包含一系列数据,函数,类的文件,通常以.py结尾

          作用:让一些相关的数据,函数,类的逻辑的组织再一起,使逻辑结构更加清晰,有利于多人合作开发。

          导入

      • import 模块名:将某模块整体导入到当前模块中
      • from 模块名 import 成员名:将模块内的一个或多个成员导入到当前模块的作用域中
      • from 模块名import *:将模块的所有成员导入到挡墙模块

         加载过程:在模块导入时,模块的所有语句会执行。如果一个模块已经导入,则再次导入时不会执行模块内的语句

       分类:

      1. 内置模块(builtins),在解析器的内部可以直接使用
      2. 标准库模块,安装Python时已安装且可直接使用
      3. 第三方模块,需要自己安装
      4. 用户自己编写的模块(可以作为其他人的第三方模块)

    迭代:每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值

    可迭代对象(iterable):具有__iter__函数的对象,可以返回迭代器对象

    迭代器对象(iterator):可以被next()函数调用并返回下一个值的对象

       说明:聚合对象通常是容器对象

       作用:使用者只需要通过一种方式,便可简洁明了的获取聚合对象中各个元素,而无需了解其内部结构

    生成器(generator):能够动态(循环一次计算一次返回一次)提供数据的可迭代对象

       作用:在循环过程中,按照某种算法推算数据,不必创建容器存储完整的结果,从而节省内存空间,数据量越大,优势越明显

    生成器函数:含有yield语句的函数,返回值为生成器对象

    函数式编程:用一系列函数解决问题

      • 函数可以赋值给变量,赋值后变量绑定函数
      • 允许将函数作为参数传入另一个函数
      • 允许函数返回一个函数

    高阶函数:将函数作为参数或返回值的函数

    函数作为参数:将核心逻辑传入方法体,使该方法的适用性更广,体现了面向对象的开闭原则 

    lambda表达式:是一种匿名方法

        作用:作为参数传递时语法简洁,优雅,代码可读性强,随时创建和销毁,减少程序耦合度

        语法:变量 = lambda形参:方法体 方法体只能有一条语句,且不支持赋值语句

    闭包:

      三要素

    1. 必须有一个内嵌函数
    2. 内嵌函数必须引用外部函数中变量
    3. 外部函数返回值必须是内嵌函数

      定义:再一个函数内部的函数,用时内部函数又引用了外部函数的变量

      本质:闭包是将内部函数和外部函数的执行环境绑定再一起的地下

      优点:内部函数可以使用外部变量

      缺点:外部变量一直存在于内存中,不会在调用结束后释放,占用内存

      作用:实现Python装饰器

    #看看教程 www.runoob.com

     

     

     

     

      

  • 相关阅读:
    前端工程师必备:前端的模块化
    1414. 和为 K 的最少斐波那契数字数目(贪心)
    62. 不同路径(经典dp问题简单路径)
    1051. 高度检查器(排序比较)
    1144. 递减元素使数组呈锯齿状(两次扫)
    面试题 16.04. 井字游戏(模拟即可)
    微信小程序 base64ToArrayBuffer
    人人商城手机端添加控制器
    微擎自定义回复规则
    JS 对浏览器相关的操作
  • 原文地址:https://www.cnblogs.com/Acekr/p/11272437.html
Copyright © 2011-2022 走看看