python2.0 s12 day2

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 = 258

      >>> i4 = 258

      >>> id(i3)

      140348026351544

      >>> id(i4)

      140348026351520

          >>>

       这个缓冲区的作用是提高内存的利用率和执行效率。i1 = 7 ,i2 = 7理论上需要分配到两块内存块中,python为了提高效率做了一个优化指向同一块内存,将一些常用类型的数据的值放到缓冲区,提供了这么一个缓冲机制。把python认为常用的放到缓冲池中。

  3.输入输出

    input()

  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()

完结!!!

时间: 2024-11-03 03:46:56

python2.0 s12 day2的相关文章

python2.0 s12 day4

python2.0 s12 day404 python s12 day4 TengLan回顾上节内容 05 python s12 day4 迭代器原理及使用 本节大纲介绍: 1.迭代器&生成器 2.装饰器 1.基本装饰器 2.多参数装饰器 3.递归 4.算法基础:二分查找 二维数组转换 5.正则表达式 6.常用模块学习 7.作业 1.迭代器&生成器 1)迭代器 定义: 就是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束. 优点: 不需要事先准备好整

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

堡垒机前戏 开发堡垒机之前,先来学习Python的paramiko模块,该模块机遇SSH用于连接远程服务器并执行相关操作 paramiko模块是做主机管理的,他模拟了一个ssh. 有两种形式连接形式, 一种通过用户名密码: ssh -p 22 [email protected] 一种是通过密钥的方式: ssh -p 22 -i ~/.ssh/dongjing-shanghai.pem [email protected]_pro01 再连接的的语法上,有两种: 一种是直接将连接的主机地址和端口直接

python2.0 s12 day8 _ python线程

1.进程.与线程区别2.cpu运行原理3.python GIL全局解释器锁4.线程 1.语法 2.join 3.线程锁之Lock\Rlock\信号量 4.将线程变为守护进程 5.Event事件 6.queue队列 7.生产者消费者模型 8.Queue队列 9.开发一个线程池5进程 1.语法 2.进程间通讯 3.进程池 进程与线程 什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中

python s12 day2

python s12 day2 入门知识拾遗 http://www.cnblogs.com/wupeiqi/articles/4906230.html 基本数据类型 注:查看对象相关成员 var,type,dir 一.整数 如: 18.73.84 每一个整数都具备如下功能: class int(object): """ int(x=0) -> int or long int(x, base=10) -> int or long Convert a number o

python2.0 和python3.0区别

python2.0 和python3.0区别 1.官方解释:    python2.0是过去的遗产:      python3.0是未来使用的.  (去繁从简) 2.语法区别:    python2.0    print "hello"    python3.0    print ("hello")    3.编码不同:    python2.0    不能直接写中文:必须先声明utf-8  如:#-*- coding:utf-8 -*-    python3.0

linux下升级python2.0到python3.0

升级python cd /home/sanlang/tools wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz  gunzip  Python-2.7.6.tgz  tar  xf Python-2.7.6.tar  cd Python-2.7.6  mkdir   -p  /application/python2.7.6  ./configure  --prefix=/application/python2.7.6 --

python 2.0 s12 day5

模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个函数才能完成(函数又可以在不同的.py文件中),n个 .py 文件组成的代码集合就称为模块. 如:os 是系统相关的模块:file是文件操作相关的模块 模块分为三种: 自定义模块 内置模块 开源模块 自定义模块 1.定义模块 情景一: 情景二: 情景三: 2.导入模块 Python之所以应用越来越广泛,在

小Y的Python学习日志--Python2.0和3.0的一些区别(转)

#本文仅为个人学习过程的整理和记录,如有从他人博客.网站摘录的内容,本人会明确标明,如有涉及侵权,请联系本人,本人会在第一时间删除. 参考资料网址:http://www.cnhonkerarmy.com/thread-58029-1-1.html 1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2.5慢15%,还有很大的提升空间.2.编码 Py3.

vim编辑下Python2.0自动补全

Python自动补全有vim编辑下和python交互模式下,下面分别介绍如何在这2种情况下实现Tab键自动补全. 一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 简单python关键词补全 python 函数补全带括号 python 模块补全 python 模块内函数,变量补全 from module import sub-module 补全 想为vim启动自动补全需要下载插件,地址如下:http://vim.sourceforge.net/s