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
 
 

 

原文地址:https://www.cnblogs.com/jiangshitong/p/6635512.html