• Python基础(二)


    Python基础(二)

        一.字符串和编码

          (一)ASCII   Unicode

               ASCII 一个字节,占8位,只能存256个

               Unicode 最少2个字节  统一编码,万国码

                 utf -32 = 4字节

                 utf -16 = 2字节

               utf -8 = 1字节 = 8bits 可变长编码  最少3个中文字节

               gbk 两个中文字节

               二进制位=bit=8bits

                (英文1个字节,所有的中文3个字节,欧洲2个字节)

                (一个二进制位是计算机里的最小表示单元,1个字节是计算机里的最小存储单元)

          (二)字符串

              最新的python3中,字符串是以Unicode编码的。

     

    ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符

    计算 str 包含多少个字符,可以用len()函数

    >>> ord('A')
    65
    >>> ord('')
    20013
    >>> chr(66)
    'B'
    >>> chr(25991)
    ''

     

    >>> len('ABC')
    3
    >>> len('中文')
    2

    ps:纯英文的str可以用ASCII编码为bytes,含有中文的str可以用UTF-8编码为bytes.含有中文的str无法用ASCII编码。

              

    (单引号和双引号没有任何区别,只适用于单行,三个单或双引号,适用于多行字符串,或多行注释)

     

    从网上读取了字节流

    
    
    >>> b'ABC'.decode('ascii')
    'ABC'
    >>> b'xe4xb8xadxe6x96x87'.decode('utf-8')
    '中文'

    格式化    %

    >>> 'Hello, %s' % 'world'
    'Hello, world'
    >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
    'Hi, Michael, you have $1000000.'

    常用占位符:  

          %d 整数

          %f 浮点数

          %s 字符串

          %x 十六进制整数

            二.list和tuple

            (一)字符串和list

              字符串         

                  classmates = "mike,jack,rose,lucy"

                  list  

                  classmates = ["mike","jack","rose","lucy"]

                  这里切片切的每个索引出的元素是mike

                   

                列表list 

                len(s)

             print (len(s))  

             左---右从0开始

             右---左从-1开始

            list为一个可变,有序的表

             

            名字.count("aa")   统计次数

            名字.append(添加的内容)

            名字.insert(位置,数据)

            名字.pop()

               删除最后一个元素

               名字.pop(位置)

               名字[位置]=新换的数据      a[1]="bbbb"

              

              list中的元素也可以是另一个元素

              list中的排序     list.sort()  一般按字母的字典排序,数字的大小排序

     

              增删改查可用于列表,字符串不行。

              切片都可以

              print(a.index("h"))  索引

              print(a[-1]) 

              print(a[0:4])

              print(a[-6:])    顾头不顾尾

              print(a[0::2])   隔一个切一个  步长

     

    for和enumerate区别

     

    第一种,稍微看起来比较累赘

    range(start, top, step)

    start 代表在哪个索引号开始

    stop 代表在哪个索引号结束

    没有start则默认从0开始

    如下面的例子:

    默认从0开始

    srr = [4,5,6,7]
    for i in range(len(arr)):
        print (i, arr[i])
    i代表索引号

    输出结果:
    (0, 4)
    (1, 5)
    (2, 6)
    (3, 7)

    str='i love you'
    for i in range(len(str)):
        print i
    输出结果:

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    第二种方法:enumerate()

    下面的i不再代表索引号,而是索引号和值的组合,你可以看成整体,看运行结果

    str='i love you'
    for i in enumerate(str):
        print i

    运行结果:

    (0, 'i')
    (1, ' ')
    (2, 'l')
    (3, 'o')
    (4, 'v')
    (5, 'e')
    (6, ' ')
    (7, 'y')
    (8, 'o')
    (9, 'u')

    注意:空格它也会遍历上

    下面是另一种:index代表索引号,item代表索引号对应的值

    arr1=[4,5,6,7,8]
    for index, item in enumerate(arr1):
        print index, item

    输出结果:

    0 4
    1 5
    2 6
    3 7
    4 8
     
     

     

  • 相关阅读:
    java_29打印流
    java_26 缓冲流
    java-27 Properties类的使用
    java_24.1文件流的应用--复制文件
    java_25 FileReader类和FileWriter类
    java_25.1字节转为字符OutputStreamWriter
    java_23 File类
    java_24 FileOutputStream类和FileInputStream类
    java_21 Set接口、HashSet类、LinkedSet类
    随机数Random和静态函数Math
  • 原文地址:https://www.cnblogs.com/jiangshitong/p/6635512.html
Copyright © 2020-2023  润新知