s12 day2 视频每节的内容

05 python s12 day2 python编码
 
  1.第一句python代码
    python 执行代码的过程
    文件读到内存 分析内容 编译字节码  转换机器码 cpu调用
 
  2.python解释器 
    执行时加python  python hello.py
    或者在文件头写入#/usr/bin/env python3.5
    ./hello.py
 
  3.python的版本
    cpy
    jpy
    pypy 这个和其他的不同之处,在于编译时先编译成字节码,转换成机器码是在编译时做的,执行时cpu直接调用机器码。
    其他python是编译时,只编译成字节码,执行时先转换成机器码,然后cpu调用。所以pypy同其他版本的py,程序运行时要快。
 
  4.python内容编码问题
    字符编码的种类,8位表示1个字符 (8位一个字节)
    asicii码 8位表示1个字符,可以表示256个字符
    unicode  至少16位(至少2个字节) 表示一个字符
    utf-8 是对unicode的 一个优化,如果字符属于以前ascii码表示的字符,都按照8位存,如果是欧洲一些字符用16位存(2个字节),汉字用24位存(3个字节)
 
06 python s12 day2 接收执行参数
 
  1注释
    单行注释
    多行注释
  2.执行脚本传入参数
    使用sys模块
    import sys  
    sys.argv
 
07 python s12 day2 Python字符串原理剖析
 
  1.pyc文件
    执行python代码时,如果导入了其他的.py文件,那么,执行过程中会自动生成一个与其同名的.pyc文件(字节码文件),该文件就是python解释器编译后的字节码文件。.pyc文件存在了,把原文件删掉了,程序也可以执行,因为python优先找.pyc文件,如果没找到先生成在执行。python内部有检测源文件与.pyc文件的一致性。
    注释:代码经过编译可以产生字节吗;字节码通过反编译也可以得到代码
 
  2.变量
    变量命名
    变量的作用
    缓冲池:python内部有缓冲机制。减少内存负担
    缓冲池:python中对数字和字符串的一个机制,当数字小于257时(大于或等于就超出了),多个变量引用这个数字时,python指引到一个内存块,当超过257时,python将不指向这个内存块。字符串同样有一个临界值。(这个值怎么定义的,不清楚。知道有临界就行。)
      数字举例:
      >>> i1 = 7
      >>> i2 = 7
      >>> id(i1)
      140348026316520
      >>> id(i2)
      140348026316520
      >>> i3 = 257
      >>> i4 = 257
      >>> id(i3)
      140348026351544
      >>> id(i4)
      140348026351520
          >>>
        这个缓冲区的作用是提高内存的利用率和执行效率。i1 = 7 ,i2 = 7理论上需要分配到两块内存块中,python为了提高效率做了一个优化指向同一块内存,将一些常用类型的数据的值放到缓冲区,提供了这么一个缓冲机制。把python认为常用的放到缓冲池中。
 
  3.输入输出
    input()
    #当我们输入密码时,不希望显示出来,可以导入python的getpass模块来实现
    import getpass

    pwd = getpass.getpass(“请输入您的密码:”)
    print(pwd)
 
  4.流程控制
    if...else...
    while 
 
  5.基本的数据类型
    1)数字
      int(整型)
      long 长整型
      float 浮点型
      complex 复数 (基本用不到)
    2)布尔值
      真或假
      1或0
    3)字符串
      字符串原理
 
08 python s12 day2 基本数据类型常用方法
      字符串的3种格式化方法
      万恶的+
      字符串常用功能:
      移除空白 .strip()
      分割 str.split()
      长度 len(str)
      索引 str[0]
      切片
    4)列表
      创建列表的2种方法:
        a = [‘x’,’y']
        a = list(('x','y’))
      列表的常见方法:
        索引
        切片
        追加 list.append()
        删除 list.pop() list.remove() del
        长度 len(str)
        循环 for,while
          continue;break;pass;return;exit(0,1,2..)
        包含  x in list
    5)元祖
      元祖的元素不可修改,
        (11,22,33)
        (11,22,{’k1’:’v1'})
      元祖的元素如果是一个字典,字典是可以修改,但不能删除
        a = (11,22,{'k1':'v1’})
        a[2]['k2'] = ‘v2’
        a
        (11, 22, {'k2': 'v2', 'k1': 'v1’})
      其他的功能和列表一样
    6)字典
      创建字典的两种方式:
        a = {‘k1’:’v1’,’k2’:’v2'}
        a = dict(‘k1’=‘v1’,’k2’=‘v2’)
      字典的常用方法:
        索引 d[key]
        新增 d[key] = xx
        删除 del d[key]
        键、值、键值对
          keys values items
        循环
          for k,v in dic.items()
        长度
  6.运算符
09 python s12 day2 上周作业实例分析
直播里看过了,此节跳过
 
10 python s12 day2 Python主文件判断
 
  1.主入口文件
    使用文件的__name__ == ‘__main__’ 属性判断,如果不是主程序文件则显示 文件名是不带.py
 
11 python s12 day2 一切事物都是对象
  1.类的简单介绍
    1)对于python ,一切事物都是对象,对象基于类创建
    创建对象,对象中有很多方法。创建对象时,并不是在对象中同时 创建了方法。而是实例化类时创建了对象,并告诉这个对象,你是我这个 类的儿子老子这里有很多功能,你记住这些功能集合的列表的内存地 址,回头就根据这个内存地址首先找到功能集合列表,根据集合的内容去 找里面的方法。    
  还可以这样理解:

类创建对象:创建了对象和给对象一个指引到类的指引标志。告诉类,如果用类的某些功能,通过这个指引标记找到类,类来执行。

    2)python来说所有事物都是对象:
      对象是基于类创建的
      对象具有的所有的功能都是根据内存地址去类中找的。调用类里面的成员。
    3)查看类的方法
      type()方法查看类型
      dir()查看有哪些方法
      help()查看详细的方法
 
12 python s12 day2 int内部功能介绍
  按照类的方式来看看数据类型
    type()查看对象的类型
    如果是内置的类,直接显示对象类型
    如果是安装的外部包,查看对象类型显示的是那个类在什么位置
    >>> from twisted.internet import reactor
    >>> print type(reactor)
    <class 'twisted.internet.selectreactor.SelectReactor'>
  1.整数类 int
    a = 18
    bit_length()二进制位的长度s
    a.__abs__()绝对值,因为是比较常用的功能,并且方法又是带下划线的,python就把这个功能放到内置函数里面里了。所以就有了abs()
    abs(-19) abs()内部做两件事,先是拿到这个数字创建int对象,然后调用这个对象的.__abs__()
    a.__add__() 同__abs__,而且python在语法堂中定义成1+1,内部就是拿前面一个数字创建对象,然后调用__add__()
    a.__cmp__ 比较,python3.5里就没有了
    a.__and__
    a.__bool__
    a.__divmod__这个有用,用于得到商和余数
      >>> divmod(8,2) 
      (4, 0)
    a.__eq__()是否相等
    a.__flot__()转换成浮点型 
    a.__floordiv__()地板除,语法堂 5//6
      >>> a.__floordiv__(6) 
      0
    a.__ge__() 大于等于返回True,>=
    a.__hash__()创建对象时有一个哈西值
 
13 python s12 day2 float和long内部功能介绍
  2.flot浮点型和int类似 
    .as_integer_ratio 就这一个怪异的,把浮点型转化成最简比的分数比如0.5转成1/2
    long长整型 和int类似的
14 python s12 day2 str内部功能介绍一
  3.字符串
    1)所有语言百分之八十都是对字符串和集合的操作
    2)str的常用操作:
      a = ‘eric’
        使用dir(a)查看字符串有哪些成员。
        这里我们首要关注成员里的方法
        用到模块的时候用vars()不仅列出成员,成员值也列出来
      a.__contains__(‘er’) 包含返回true 语法堂 ‘er’ in a
      a.__eq__() 字符串的相等 语法堂 ==
      __format__ 字符串的格式化,
        >>>a = ‘eric{0}’
        >>>a.__format__(‘alex’)
        >>> a.format('alex’) 
        ‘alexalex'
      __getattribute__() 反射的时候会用到它,暂时到这这个方法 
      __getitem__() 类的时候用到。这个方法暂时到这 语法堂 str[0]
      a.capitalize()首字符大写了
        >>> a.capitalize()
         ‘Alex’
      a.casefold() 将大写字符变小些
        >>> a = 'alExV5'
        >>> a.casefold()
        ‘alexv5'
      a.center这个有用
        >>> print(8*'*',a,8*'*')
        ******** alExV5 ********用center可以实现
        >>> a.center(20) 
        '         alExV5         ‘ 
        >>> a.center(20,'*’)
         '*******alExV5*******’
      a.count(‘a')计算字符出现的次数。还可以定义起始位置和结束位置
      a.count(‘a’,0,10) 从位置0到为止10统计
      a.encode()将字符串转编码
        >>> a = '李杰’ 
        >>> a.encode('gbk’)
           b'\xc0\xee\xbd\xdc'
      a.endswith() 判断是不是以什么结尾的,如果是返回true,也可以加起始位置和结束位置,判断子序列是不是以什么结尾的
 15 python s12 day2 str内部功能介绍二
      a.expandtabs()将tabs转换成空格,默认情况下将一个tabs转换成8个空格
        >>> a = 'a\tlex’ 
        >>> a.expandtabs() 
        'a lex’ 
      a.find() 找某个字符,返回这个字符的位置,可以设置找的起始位置和结束位置,如果找的字符不存在,返回-1
      a.index() 也是找,和find的不同,找不到的时候直接抛出异常报错
      a.format() 就是做字符串格式化的,内部调用__format__()
        两种写法:
        >>> a = "alex {0} as {1}” 
        >>> a.format('sb','eric’) 
        'alex sb as eric’ 
        >>> a ="alex {name} as {id}”
        >>> a.format(name='sb',id = 'eric’) 
        'alex sb as eric’ 
      isalnum()是否是字母或者数字
      isalpha()是否是字母
      isdecimal()是否是10进制小数
      isdigit()是否是数字
      isidentifier()是否是关键字
      islower()是否全部是小写
      isnumeric()是否是数字
      isprintable()是否可以打印,忽略
      isspace()是否是空格
      istitle()是否是标题,判断每一个字母首字母都是大写
      isupper()是否全部是大写
      ‘’,join(list) 拼接
      ljust() 和center功能相似,左对齐
      rjust()
      lower() 全部变成小写
      lstrip()
      maketrans()做一个对应表,和translate()结合使用,来做替换
      translate()
        >>> intab = 'abcde’ 
        >>> outtab = ‘12345'
        >>>trantab = ''.maketrans(intab,outtab)   
        >>> trantab
         {97: 49, 98: 50, 99: 51, 100: 52, 101: 53}
        >>> l_str = 'this is a ,that is bc'
        >>> l_str.translate(trantab)
        'this is 1 ,th1t is 23'
      partition() 做分割,把字符串分割成3部分
        >>> a = 'alexissb’ 
        >>> a.partition('is’)
         ('alex', 'is', 'sb’)
      replace()替换
      replace(‘old’,’new’,个数)
      rfind()从右向左找
      split()
      splitlines()根据行分割,没有它用split(‘\n')也能实现
      strip()
      startswith()以什么开头
      swapcase() 大小写转换
      title() 将字符串中所有的字母的首字母大写
      upper() 大写
      zfill() 
16 python s12 day2 上下文管理剖析
  2.with的用法
    with open(‘h.log’,’r’) as f_read:
      f_readlines
    with 的意思是执行完后继续调用函数,原理如下:下面的语句不能执 行 哦,只是原理展示
    def f():
      print(‘11111’)   1.先打印1111
      yield 2.碰到 yield了,记录函数的位置,并跳出函数
      print(‘333333’) 4.with语句块执行完后在打印这个
    with f():
      print(‘我插一杠子’)  3.紧接着打印这句
17 python s12 day2 list内部功能介绍
  3.列表
    1)列表的2种构建方式:
      li = list([1,2])
      li = [1,2,3]
    2)列表的常用方法:
      append() 尾部添加
      clear() 把列表清空
      copy() 拷贝浅拷贝
      count()  判断元素出现的次数
      extend() 扩展一个列表,参数可以是列表也可以是元组
        大家以后再写列表或者元组的时候一定在最后加一个逗号[1,2,3,] (1,2,3,)
      index() 查找返回下标,找不到抛异常,可以加查找起始位置 和结束位置
      insert() 插入指定位置,insert(0,’sb’)
      pop() 参数为下标位置,移除并返回元素值,下标位置不存在 时抛出异常,报错,
      remove() 参数为元素值,移除,不返回元素值,只返回执行状态,当参数 值不存在时,抛出异常
      reverse()反转,列表反转。
      sort() 按字符编码排序
18 python s12 day2 tuple和dict内部功能介绍
  4.元组
    1)元组的2种创建方式
      t1 = (1,2,) 
      t1 = tuple((1,2)) 或 tuple([1,2])
    2)元组的常用方法:
      (略)
19 python s12 day2 字典和列表课上练习题
  5.字典
    1)字典的2种创建方式
      a = {‘k1’,’v1’}
      a = dict(k1= 'v1’)
    2)字典的常用方法:
      clear()清空
      copy() 浅拷贝
      fromkeys()
        >>> a = a.fromkeys(['k1','k2'],'v1')
        >>> a
        {'k2': 'v1', 'k1': 'v1’}
      get()方法获得值,如果参数key不存在,返回空值
      a.values()
      a.keys()
      a.items()
      a.pop()删除,参数key,删除并获得value
      a.popitem() 删除随机删除键值对,没用
      setdefault(k,v) 两个参数,如果k键存在,则返回值,如果不存在将加入字典,并且值为’v’
      update() 
完结!!!

python2.0 s12 day2的更多相关文章

  1. python2.0 s12 day4

    python2.0 s12 day404 python s12 day4 TengLan回顾上节内容 05 python s12 day4 迭代器原理及使用 本节大纲介绍: 1.迭代器&生成器 ...

  2. python2.0 s12 day3

    s12 day3 视频每节的内容 03 python s12 day3 本节内容概要 第三天的主要内容 上节没讲完的: 6.集合 7.collections 1)计数器 2)有序字典 3)默认字典 4 ...

  3. python2.0 s12 day8 _ 堡垒机前戏paramiko模块

    堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 paramiko模块是做主机管理的,他模拟了一个ssh. 有两种形式连接形式, ...

  4. python2.0 s12 day8 _ python线程&python进程

    1.进程.与线程区别2.cpu运行原理3.python GIL全局解释器锁4.线程 1.语法 2.join 3.线程锁之Lock\Rlock\信号量 4.将线程变为守护进程 5.Event事件 6.q ...

  5. python2.0 s12 day8 _ socketserver学习

    Socket 概念 一个socket就是一个点对点的链接.当今,大多数的通信都是基于Internet Protocl,因此大多数的网络Socket都是Internet Protocl(互联网)的通信( ...

  6. python2.0 s12 day7

    开发的第二阶段 网络编程阶段 之所以叫网络编程,是因为,这里面就不是你在一台机器中玩了.多台机器,CS架构.即客户端和服务器端通过网络进行通信的编程了. 首先想实现网络的通信,你得先学网络通信的一个基 ...

  7. python s12 day2

    python s12 day2   入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var, ...

  8. Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项(转)

    Djang1.8+Python2.0迁移到Django2.0+Python3.6注意事项 参考:https://blog.csdn.net/weixin_40475396/article/detail ...

  9. python3.0与python2.0有哪些不同

    python3的语法跟python2哪里变了. 1. python3中1/2终于等于0.5 了 2. print "Hello World"变成了print("Hello ...

随机推荐

  1. Ribbon的配置

    1.注解配置 @RibbonClient(name = "xxx",configuration = XxxRibbonConfig.class) public class XxxR ...

  2. 原声js实现addClass removeClass toggleClass效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. 大数据之ETL工具Kettle的--1功能介绍

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了就是,很有必要去理解一般ETL工具必备的特性和功能,这样才更好的掌握Kettle的使用. ...

  4. 【ExtJS】各种获取元素组件方法

    1.get().getDom().getCmp().getBody().getDoc(): get(id/obj): get方法用来得到一个Ext元素,也就是类型为Ext.Element的对象, Ex ...

  5. 【C#】Queue的简单试用

    新建一个WPF项目,测试C#的Queue类的简单使用. 前台准备两个按钮 MainWindow.xaml <StackPanel VerticalAlignment="Center&q ...

  6. 【C#】List<T>对象的深复制

    一.List对象中的T是值类型的情况(int 类型等) 对于值类型的List直接用以下方法就可以复制: List<T> oldList = new List<T>(); old ...

  7. Java获取web项目路径

    File f = new File(WebPath.class.getResource("/").getPath()); String path = f.getParentFile ...

  8. linux 使用NSF 映射远程磁盘目录

    假设源目录在192.168.1.1机器上,目录为/data 客户端集群在192.168.1.2, 需要将192.168.1.1机器上的/data目录到本地的/data目录 1.在两台机器上安装nsf ...

  9. MS-SQL 删除数据库所有的表

    godeclare @tbname varchar(250)declare #tb cursor for select name from sysobjects where objectpropert ...

  10. 开源图形数据库Neo4j介绍与安装

    图形数据库是以图形结构形式存储数据的数据库. https://neo4j.com/ Java 编写 保存为节点以及节点之间的关系 Neo4j 的数据由下面几部分构成: 节点 边 属性 无论是顶点还是边 ...