0%

Python基础1:数据类型

1 字符串 String

1.1 定义

str = "sean"

1.2 独有功能

# 大小写
str_u = str.upper()
str_l = str.lower()

# 所有字符都是阿拉伯数字为True
str_isdecimal = str.isdecimal()

# 替换(count表示替换前几个符合条件的字符,省略表示全部替换)
str.replace(old, new, count)

# 去除空格
str_ls = str.lstrip()
str_rs = str.rstrip()
str_s = str.strip()

# 切割
str = '1234.mp4'
list = str.split('.')
print(list) #['1234', 'mp4']

# 拼接
str1 = "我"
str2 = "谁"
text = "{0}是{1}".format(str1, str2)
print(text)

str_list = ["我", "是", "谁"]
text = ''.join(str_list)
print(text)

# 字符串转换成字节类型
str = "我是谁"
str_encode = str.encode("utf-8")
print(str_encode)
str_decode = str_encode.decode("utf-8")
print(str_decode)

# 长度补足
str = "我是谁"
text = str.center(13, '*')
print(text) # *****我是谁*****
text = str.ljust(13, '*')
print(text) # 我是谁**********
text = str.rjust(13, '*')
print(text) # **********我是谁

2 列表 List

2.1 定义

有序,可变的容器,元素可以是多种不同的数据类型

data_list = [11, 22, "我是谁"True]

2.2 独有功能

# 追加
data_list = ["张", "王", "李"]
data_list.append("赵")
print(data_list) # ['张', '王', '李', '赵']

# 插入
data_list.insert(1, "刘")
print(data_list) # ['张', '刘', '王', '李', '赵']

# 删除(按元素)
if "李" in data_list:
    data_list.remove("李")
print(data_list) # ['张', '刘', '王', '赵']

# 随机获取
import random
data= random.choice(data_list)
print(data)

# 删除(按索引位置)
data_list =  ['张', '刘', '王', '李', '赵']
data_list.pop()
print(data_list) # ['张', '刘', '王', '李']
data = data_list.pop(1)
print(data_list) # ['张', '王', '李']
print(data) # 刘

# 排序
data_list = [1, 4, 3, 65, 23]
data_list.sort()
print(data_list) #[1, 3, 4, 23, 65]
data_list.sort(reverse=True)
print(data_list) #[65, 23, 4, 3, 1]

3 元组 Tuple

有序,不可变的容器,元素可以是多种不同的数据类型

4 字典 Dict

字典是一个无序,键不重复且元素只能是键值对的可变容器。
字典和数组不可hash

info = {
    "name": "liu",
    "gender": "male"
}

# 获取所有key
info.keys()

# 获取所有值
info.values()

# 获得键值元组
for item in info.items():
    print item

for key, value in info.items():
    print(key, value)

5 集合 Set

集合是一个无序,可变,元素必须可哈希,且元素不重复的容器

5.1 定义

v1 = {11, 22}
v1.add(33) # {11, 22, 33}
v1.add(22) # {11, 22, 33}

5.2 独有功能

# 添加元素
v1 = {11, 22}
v1.add(33) # {11, 22, 33}

# 删除元素
v1.discard(44) # 删除,没有元素不报错

# 交集
v1 = {11, 22, 33}
v2 = {22, 33, 44}
res = v1.intersection(v2) #{22, 33}
res = v1 & v2 #{22, 33}

# 并集
res = v1.union(v2) #{11, 22, 33, 44}
res = v1 | v2 #{11, 22, 33, 44}

# 差集
s1 = v1.difference(v2) #{11} v1有v2没有
s1 = v1 - v2
s2 = v2.difference(v1) #{44}
s2 = v2 - v1

6 None类型

None表示空值

7 布尔类型 BOOL

很多类型的值都可以转换成布尔值,下面转换成布尔值时为False

0, "", [], {}, (), set() -> False

8 浮点型 Float

浮点型的存储原理导致其不精确,如果要做到精确需要用到decimal

import decimal
v1 = decimal.Decimal("0.1")
v2 = decimal.Decimal("0.2")
v3 = v1 + v2
print(v3)

9 字节类型 Bytes

name = "我是谁"
data = name.encode("utf-8")
print(data) #b'\xe6\x88\x91\xe6\x98\xaf\xe8\xb0\x81'