今日内容

  • 复习

内容详细

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

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

  • 调用模块内部元素

    • 函数()
    • 模块.函数()

python笔记18(复习)的更多相关文章

  1. Python笔记 #18# Pandas: Grouping

    10 Minutes to pandas 引 By “group by” we are referring to a process involving one or more of the foll ...

  2. python笔记 - day8

    python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...

  3. python笔记 - day5

    python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...

  4. s21day05 python笔记

    s21day05 python笔记 一.昨日内容回顾及补充 回顾 补充 列表独有功能 extend:循环添加到一个列表中 1.users = ['张三',66],people = ['王五',99] ...

  5. s21day01 python笔记

    s21day01 python笔记 一.计算机基础 计算机的初步认识 用户:人 软件:QQ.浏览器等 解释器/编译器/虚拟机:java解释器.python解释器等 操作系统 硬件:CPU.内存.硬盘. ...

  6. python笔记-1(import导入、time/datetime/random/os/sys模块)

    python笔记-6(import导入.time/datetime/random/os/sys模块)   一.了解模块导入的基本知识 此部分此处不展开细说import导入,仅写几个点目前的认知即可.其 ...

  7. python笔记(2)--字符串

    一.字符串 字符串是不可变序列,具有序列的公共操作方法,具体操作见python笔记(1)--序列(列表 元组 range) 1.创建字符串 单引号:'Hello , I am Logan ! ' 双引 ...

  8. python笔记05

    python笔记05 数据类型 上个笔记知识点总结: 列表中extend特性:extend,(内部循环,将另外一个列表,字符串.元组添加到extend前的列表中) li.extend(s),将s中元素 ...

  9. Python笔记之不可不练

    如果您已经有了一定的Python编程基础,那么本文就是为您的编程能力锦上添花,如果您刚刚开始对Python有一点点兴趣,不怕,Python的重点基础知识已经总结在博文<Python笔记之不可不知 ...

随机推荐

  1. 机器学习之路--Numpy

    常用代码 ndarray.dtype 数据类型必须是一样的 常用代码 import numpy #numpy读取文件 world_alcohol = numpy.genfromtxt("wo ...

  2. 啊哈!C语言课后参考答案下

    最近看到一本好评量很高的的C语言入门书,课本真的很好,入门的话.专业性没有那么强,但入门足够了!!好评!看着看着就想把这本书的题课后习题都写出来,最后就有了这个小结.可能有的不是最好,不那么专业,但主 ...

  3. 关于AWD线下攻防的经验

    备份:     1.备份源码,使用图像化工具连接ssh后,我喜欢用winscp,         找到根目录后,直接右键后台下载就行.           找根目录这里,有时候比赛不给根目录位置,上次 ...

  4. java序列化(一)

    今天我们来探讨一下java的序列化与反序列化.之前对此一直有概念,但是并没有真正的去测试.大家都知道,所谓的序列化就是把java代码读取到一个文件中,反序列化就是从文件中读取出对象.在网络传输过程中, ...

  5. Linux学习_菜鸟教程_3

    我是在UBANTO上运行Linux的,开机启动时按下shift或者Esc都不能进入到grub,没有百度到可靠的教程. 暂时先这样吧.免得我把系统搞坏了,先学点实用的知识~~ Next Chapter

  6. 低副瓣阵列天线综合2 matlab HFSS

    接着继续研究阵列天线设计,得到了电流幅度分布或功率分布之后,就可以进行阵列设计或馈电网络设计了,之前利用HFSS仿真过单列的串馈天线,后面会继续复习熟悉一下,本次我找了一篇硕士论文利用威尔金森功分器来 ...

  7. 基于Arduino的红外遥控

    1.红外接收头介绍  一.什么是红外接收头?  红外遥控器发出的信号是一连串的二进制脉冲码.为了使其在无线传输过程中免受其他红外信号的干扰,通常都是先将其调制在特定的载波频率上,然后再经红外发射二极管 ...

  8. VMware显示错误:“未能锁定文件 无法打开磁盘 ..\*.vmdk 或者某一个快照所依赖的磁盘。”解决办法

    问题描述: 使用VMware时遇到错误:“未能锁定文件 无法打开磁盘 ..\*.vmdk 或者某一个快照所依赖的磁盘.” 问题出现的原因: 虚拟磁盘(.vmdk)本身有一个磁盘保护机制,为了防止多台虚 ...

  9. 【转】ArcGIS Server 站点架构-Web Adaptor

    GIS 服务器内置了Web服务器,如果我想用我自己企业内部的服务器,该怎么做? 多个GIS服务器集群又如何做? …… 有问题,说明我们在思考,这也是我们希望看到的,因为只有不断的思考,不断的问自己为什 ...

  10. 通过例子进阶学习C++(六)你真的能写出约瑟夫环么

    本文是通过例子学习C++的第六篇,通过这个例子可以快速入门c++相关的语法. 1.问题描述 n 个人围坐在一个圆桌周围,现在从第 s 个人开始报数,数到第 m 个人,让他出局:然后从出局的下一个人重新 ...