Python数据类型
基本数据类型 Number String Tuple List Dictionary Set
三种不可变 Number String Tuple
三种可变 List Dictionary Set
is 是判断两个标识符是不是引用自一个对象
is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等。
# 基本数据类型 Number String Tuple List Dictionary Set
# 三种不可变 Number String Tuple
# 三种可变 List Dictionary Set
# Number 类型 -------------------------------
# type()不会认为子类是一种父类类型。
# isinstance()会认为子类是一种父类类型。
# python3中 True为1 FALSE为0
x = 2
print(type(x))
print(isinstance(x, int)) # True
print(True + 1) # 2
print(False + 1) # 1
print(type(True)) # <class 'bool'>
print(isinstance(True, bool)) # True
# 2 // 4 # 除法,得到一个整数
# 17 % 3 # 取余
# 2 ** 5 # 乘方
# String 类型 -------------------------------
# 可用 \ 进行转译,字符串开头加上r表示不转译,\ 表示转译换行
str = 'abc\nbcd'
print(str)
str1 = r'abc\nbcd'
print(str1)
str1 = '123' \
'456'
print(str1)
# 字符串切割 从右往左是负数 从左往右为正数
str2 = '123456'
print(str2[0:3])
print(str2[:-1])
# 字符串不可改变 向自付出中牟一位赋值会报错
# str2[0] = 8
# list 类型 -------------------------------
# 类似于数组,可进行切割修改。列表中元素可为不同类型
l = [1, 2, 3, 'a', True]
print(l)
print(l[0:3])
l[1:3] = []
l[2] = False
print(l)
# 翻转字符串
s = '123456'
s_reverse = s[-1::-1]
s_reverse = ''.join(s_reverse)
print(s_reverse)
# Tuple 类型 -------------------------------
# 与list类型相似,但是Tuple格式中的元素不能修改,但是可以包含可变对象
# 可以索引切片等
tup = (1, 2, 3, '45', [1, 2, 3])
print(tup)
tup[4][0] = 11 # 修改Tuple中的list
print(tup)
# Set 类型 -------------------------------
# 重复的自动删掉
set1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2}
print(set1)
# 可进行集合运算,用()可自动拆解
set2 = set('123456') # {'1', '4', '3', '6', '2', '5'}
print(set2)
set3 = set('456789')
# set2 = {'123456'}
# set3 = {'456789'}
print(type(set2))
print(set2 - set3) # 差集
print(set2 | set3) # 交集
print(set2 & set3) # 并集
print(set2 ^ set3) # 不同时在二者中
# Dictionary 类型 -------------------------------
# 无序的 键(key) : 值(value) 的集合
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
print(dict)
tinydict = {'name': 'runoob', 'code': 1, 'site': 'www.runoob.com'}
print(tinydict)
tinydict['name'] = 'test' # 修改键值对
print(tinydict)
# 获取键值对和值
print(dict.keys())
print(dict.values())
list类型
# 删除list中某个元素
list1 = [1, 2, 3, 4, 5]
del list1[0]
print(list1)
# count 返回某个元素出现多少次
list2 = [1, 1, 1, 2, 2, 3]
print(list2.count(1))
# 遍历多个序列
question = ['name', 'age', 'gender']
answer = ['tom', 20, '男']
for q, a in zip(question, answer):
print(q, ':', a)
# 反向遍历序列 reversed 翻转
for x in reversed(question):
print(x)
# 正向遍历序列,先排序
for x in sorted(question):
print(x)
字典类型
# 遍历字典
knights = {'gallahad': 'the pure', 'robin': 'the brave'}
for k, v in knights.items():
print(k, v)
for k in knights.keys():
print(k, knights[k])
类型进制转化
# 类型转换,int(x[,base])转化为十进制数字,默认为十进制,可传入第二个参数base表示第一个参数进制
# 传入第二个参数时第一个参数以字符形式传入
print(int(12.0))
print(int('12', 16)) # 12的十六进制转为十进制
# 整数转八进制 十六进制 chr(97)转相应字符
print(chr(97))
print(oct(17)) # 转八进制
print(hex(17)) # 转十六进制
print(float(12))
# 复数, complex(real[,imag])创建一个复数,第一个参数为实部,第二个参数为虚部
print(complex(1, 2)) # (1+2j)
# 只有实部的时候可以字符串形式传入实部,虚部为0
print(complex('1')) # complex(1) complex(1, 0)
# 传入字符串 1+2j 中间不能有空格否则报错
print(complex('1+2j'))
#