编码和列表

一、字符编码

  总结: 

  1、ASCII  8bit  1个字节(byte)

  2、GBK  16bit  2个字节

  3、Unicode  32bit  4个字节

  4、Utf-8(针对Unicode的可变长度字符编码)

  (1)英文字符  8bit  1个字节

  (2)汉字  24bit  3个字节

  (3)生僻的字符  4-6字节

二、Python中的数据类型

1、int  整形

2、bool  布尔

3、str  字符串(不可变)

4、list  列表

5、tuple  元组(不可变)

6、dict  字典

7、set  集合

1. int 

 bit_length()  整形的二进制位数(长度)
a = 5
print(a.bit_length())

2. bool

bool(object)  # 返回对象的真假(True or False)

什么样的对象时False呢?

None,空对象('', [], (), {}, set()),即空的字符串、列表、元组、字典、集合都为False。这里需要注意 ' ' ,含有空格的字符串,值为True。

排除以上False的对象,其他都是True

3. 字符串

3.1 索引切片

    索引:下标从0开始

    切片:str[起始位置:结束位置:步长]  结果不包括结束位置索引处元素,步长可以是正数,可以是负数。

s = 'hello world'

print(s[0:5])
print(s[0:5:2])
print(s[5:0])
print(s[5:0:-1])
print(s[-1:-6:-1])

# 输出结果
hello
hlo
不能取
 olle
dlrow

3.2 字符串操作

1. capitalize   # 字符串首字母大写

2. title   # 字符串中被特殊字符分隔的部分,每部分首字母大写(中文也被当作特殊字符处理)

3. upper   # 字符串中小写字母变大写

4. lower  # 字符串中大写字母变小写

5. strip  # 去掉字符串首尾空格,也可以自己指定字符

6. replace  # 字符替换

7. split  # 使用字符串中的指定符号分割字符串,以列表形式返回结果

8. find  # 查找,返回匹配部分的第一个字符的索引位置;匹配不到,返回-1

9. len  # 返回字符串长度

s = 'say hEllo woRld'

print(s.capitalize()) #Say hello world
print(s.title())     #Say Hello World
print(s.upper())     #SAY HELLO WORLD
print(s.lower())       #say hello world
print('   hello world   '.strip())  #hello world
print(s.replace('say', 'speak'))  #speak hEllo woRld
print(s.split())  #['say', 'hEllo', 'woRld']
print(s.find('hE'))  #4
print(s.find('H'))  #-1
print(len(s))  #15

不常用:

1. swapcase  # 大小写互相转换,字符串中大写变小写,小写变大写

2. lstrip  # 去掉左边空格

3. rstrip  # 去掉右边空格

4. casefold  # 字符串中大写字母变小写,与lower类似(很少使用);lower对某些字符支持不够好,casefold对所有字符都有效

实例:

# 输出结果
SAY HeLLO WOrLD
hello world  
  hello world

 4.列表的介绍:

    表现形式:[ ],列表可以放大量数据,不限制数据类型,里边的内容用逗号隔开.

    列表和字符串一样也有索引和切片

  常用功能:

    增:

       append(): 给列表追加元素,添加的元素放在列表末尾

         insert(index,object): 把元素插入到列表的index位置,涉及到元素的移动

         extend(): 迭代添加,括号里可以是字符串也可以是一个列表,将字符串或列表里的每一个元素依次添加到原列表的末尾

append():

1 lst = ["周杰伦", "王力宏", "周润发"]
2 lst.append("伍佰")    # 向列表中添加一个元素, 元素放在末尾. 把一个元素追加到列表的末尾
3 print(lst)

 

insert():

1 lst = ["周杰伦", "王力宏", "周润发"]
2 lst.insert(1, "马化腾")    # 把元素插入到指定位置. 元素的移动
3 print(lst)

 

extend():

1 lst = ["周杰伦", "王力宏", "周润发"]
2 lst.extend(["马云", "王健林", "李嘉诚"])    # 迭代添加
3 print(lst)

 

    删:

      pop(): 删除列表的最后一个元素,可以用一个变量来接受被删除的元素

      pop(index): 删除列表index位置的元素

      remove(object): 删除指定元素,但只删除列表的第一个指定元素,其余的不删

      clear(): 清除列表里的全部元素,使之变成一个空列表

      del 列表名[index1 : index2 : 步长 ]: 切片删除,有固定的格式,删除index1到index2的内容,后边可以选择切片的方向

pop():

1 lst = ["盖伦", "大白梨", "提莫", "大白梨"]
2 e = lst.pop()   # 返回删除的元素, 删除最后一个
3 print(e)

 

remove():

1 lst = ["盖伦", "大白梨", "提莫", "大白梨"]
2 lst.remove("大白梨")
3 print(lst)

 

clear():

1 lst = ["盖伦", "大白梨", "提莫", "大白梨"]
2 lst.clear()
3 print(lst)

 

del():

1 lst = ["盖伦", "大白梨", "提莫", "大白梨"]
2 del lst[1:]
3 print(lst)

 

    改:

      1.索引修改  通过列表索引来拿到对应的值进行修改操作

      2.切片修改   迭代修改

索引修改:

1 lst = ["太白", "五色", "银王", "日天"]
2 lst[0] = "太黑"
3 print(lst)
4 lst[2] = "银角大王"
5 print(lst)

 

切片修改:

1 lst[1:3] = "马化腾"    # 迭代修改
2 print(lst)
3 lst[1:3] = ["周杰伦", "他媳妇", "王力宏媳妇"]
4 print(lst)

 

    查:

      列表是⼀一个可迭代对象, 所以可以进行for循环

1 lst = ["舒克贝塔", "黑猫警长", "熊大熊二", "葫芦娃", "吴佩琪"]
2 for el in lst:  #  element
3     print(el)

 

    常用操作:

      count():  查询字符出现次数

      sort():     把列表元素进行排序

      len():      计算长度

count():

1 lst = ["太白", "太黑", "五色", "银王", "日天", "太白"] 
2 c = lst.count("太白")     # 查询太白出现的次数 
3 print(c)

 

sort():

1 lst = [1, 11, 22, 2] 
2 lst.sort()          # 排序. 默认升序 
3 print(lst) 
4 lst.sort(reverse=True)  # 降序 
5 print(lst)

 

len():

1 l = len(lst) # 列表的长度

2 print(l) 

 列表的嵌套:

  采用降维操作.一层一层的看就好.

1 lst = [1, "太白", "wusir", ["马虎疼", ["可口可乐"], "王健林"]]
 2 
 3 # 找到wusir 
 4 print(lst[2])
 5 
 6 # 将wusir拿到. 然后首字母大写. 再扔回去
 7 lst[2] = lst[2].capitalize() 
 8 print(lst)
 9 
10 # 把太白换成太黑 
11 lst[1] = lst[1].replace("", "") 
12 print(lst)

四.元组的介绍:

 元组的介绍:

    不可变的列表. 只读列表. 有索引和切片.

    不可变的是它内部子元素. 如果子元素是列表. 列表中的元素是可以变的.

元组的基本操作:

复制代码
 1 tu = (1, "太白", "李白", "太黑", "怎么黑")
 2 print(tu)
 3 
 4 print(tu[0])
 5 print(tu[2]) 
 6 print(tu[2:5])  # 切片之后还是元组
 7 
 8 
 9 
10 # for循环遍历元组 
11 for el in tu:
12     print(el)
复制代码

>>>>>>小提示:元组也有count() , sort() , len() 等操作

 

三.range

  range介绍:

     作用:数数

     有一个参数:结束为止
          两个参数: 1. 起始位置, 2.结束位置
          三个参数: 1. 起始位置, 2. 结束位置. 3.步长

 

range基本应用:

复制代码
 1 #range() 应用:
 2 for i in range(10): # 从0开始. 到10结束
 3     print(i)
 4 
 5 for i in range(3, 7):   # 从3 开始. 打印到7结束. 不能到7
 6     print(i)
 7 
 8 for i in range(3, 10, 2):  # 从3 到 10 每2个取一个
 9     print(i)
10 
11 for i in range(10, -10, -1):  #从10 开始到-10结束. 倒着数
12     print(i)
复制代码

 

计算:

复制代码
1 # 求1-2+3-4...+99-100=?
2 sum = 0
3 for i in range(1, 101):
4     if i % 2 == 0:
5         sum = sum - i
6     else:
7         sum = sum + i
8 print(sum)

 

posted @ 2018-07-08 23:17  shuai1993  阅读(169)  评论(0编辑  收藏  举报