zoukankan      html  css  js  c++  java
  • python笔记18(复习)

    今日内容

    • 复习

    内容详细

    1.Python入门

    1.1 环境的搭建

    mac系统上搭建python环境。

    环境变量的作用:方便在命令行(终端)执行可执行程序,将可执行程序所在的目录添加到环境变量,那么以后无需再输入路径。

    1.2 变量命名

    • 变量

      name = 'alex'
      
    • 全局变量

      NAME = "oldboy"
      
    • 函数

      def func_list():
          pass 
      
    • 常量

      不允许修改的值,Python中执行约定。
      

    1.3 运算符

    v = 1 or 2 
    v = 0 or 2 
    v = 1 and 2 
    v = 0 and 2 
    
    val =  v  if v else 666
    val = v or 666 # 源码
    

    is和==的区别?

    1.4 数据类型

    • int

      • 整型
      • 其他进制转换十进制 int('0b11011',base=2)
      • int / long
      • 除法
    • bool

      • 0 None 空
    • str,字符串类型,一般用于内存中做数据操作。

      v = 'alex' # unicode编码存储在内存。
      
    • bytes,字节类型,一般用于数据存储和网络传输。

      v = 'alex'.encode('utf-8')  # 将字符串转换成字节(由unicode编码转换为utf-8编码)
      v = 'alex'.encode('gbk')    # 将字符串转换成字节(由unicode编码转换为gbk编码)
      
    • list

    • tuple

    • dict

    • set

    • None

    1.5 编码

    • py默认解释器编码

      • py2
      • py3
    • 以什么编码存储就要以什么编码打开(建议Pycharm设置成UTF-8编码)。

    • 常见的编码

      • ascii
      • unicode
      • utf-8
      • gbk
      • gb2312

    1.6 深浅拷贝

    针对可变类型,将其重新创建一份。

    • 浅拷贝:第一层
    • 深拷贝:所有层。
    import copy
    
    v = [11,22,33,[11,22,3]]
    v1 = copy.copy(v1)
    v2 = copy.deepcopy(v)
    

    1.7 py2和py3区别

    • 字符串类型不同
      • py3: str bytes
      • py2: unicode str
    • 默认解释器编码
    • 输入输出
    • int
      • int long
      • 除法
    • range和xrang
    • 模块和包
    • 字典
      • keys
        • py2:列表
        • py3:迭代器,可以循环但不可以索引
      • values
        • py2:列表
        • py3:迭代器,可以循环但不可以索引
      • items
        • py2:列表
        • py3:迭代器,可以循环但不可以索引
    • map/filter
      • py2:返回列表
      • py3:返回迭代器,可以循环但不可以索引

    2.函数

    2.1 内置函数

    • 常用内置函数:open / id / type / len / range ...
    • is 和 == 的区别? 通过id来进行检查

    2.2 自定义函数

    • 函数式编程:增加代码的可读性和重用性。

    • 函数基本格式:

      def show(name,age):
          """
          函数是干什么的...
          :param name: 
          :param age: 
          :return: 
          """
          return None
      
    • 函数做参数

    • 函数做变量

    • 函数做返回值

      • 闭包
      • 装饰器
    • 生成器

      def func():
          print(123)
          yield 1
          yield 3
          
      # 生成器
      v = func()
      # 循环v时或v.__next__() 时。
      
      def base():
          yield 88
          yield 99
      
      def func():
          yield 1
          yield 2
          yield from base()
          yield 3
      
      result = func()
      
      for item in result:
          print(item)
      

      生成器推导式

      # def func():
      #     result = []
      #     for i in range(10):
      #         result.append(i)
      #     return result
      # v1 = func()
      v1 = [i for i in range(10)] # 列表推导式,立即循环创建所有元素。
      print(v1)
      
      # def func():
      #     for i in range(10):
      #         yield i
      # v2 = func()
      v2 = (i for i in range(10)) # 生成器推导式,创建了一个生成器,内部循环为执行。
      
      # 面试题:请比较 [i for i in range(10)] 和 (i for i in range(10)) 的区别?
      
      # 示例一
      # def func():
      #     result = []
      #     for i in range(10):
      #         result.append(i)
      #     return result
      # v1 = func()
      # for item in v1:
      #    print(item)
      
      # 示例二
      # def func():
      #     for i in range(10):
      #         def f():
      #             return i
      #         yield f
      #
      # v1 = func()
      # for item in v1:
      #     print(item())
      
      # 示例三:
      v1 = [i for i in range(10)] # 列表推导式,立即循环创建所有元素。
      v2 = (lambda :i for i in range(10))
      for item in v2:
          print(item())
      
    • 迭代器

    3.模块

    3.1 内置模块

    • 常见内置模块:json / datetime / time / os / sys

    3.2 第三方模块

    • requests
    • xlrd,xlwd

    3.3 自定义模块

    • 文件
    • 文件夹 / 包

    3.4 使用模块

    • 导入

      • import 模块

      • from 模块.模块 import 模块

      • from 模块.模块.模块 import 函数

      • 相对导入【不推荐】

        from . import xxx
        from .. import xxx
        

      注意:文件和文件夹的命名不能是导入的模块名称相同,否则就会直接在当前目录中查找。

    • 调用模块内部元素

      • 函数()
      • 模块.函数()
  • 相关阅读:
    Java实现HttpClient发送GET、POST请求(https、http)
    解决.net core 3.1 json日期带T的问题
    Java验证身份证号码的格式
    c++20新特性concept
    位图
    Linux内核 hlist_head/hlist_node结构解析
    linux将c++程序制作成.deb
    应用程序或动态库中与加载的其他动态库的类或者函数重名问题
    vue props 属性值接受多个类型
    异步循环
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/12309768.html
Copyright © 2011-2022 走看看