数据类型
3.1 整型(int)
3.1.1 整型的长度
py2中有:int/long
py3中有:int (int/long)
3.1.2 整除
py2和py3中整除是不一样。
3.2 布尔(bool)
布尔值就是用于表示真假。True和False。
其他类型转换成布尔值:
-
str
-
...
对于:None / "" / 0 .... -> false
3.3 字符串(str)
字符串是写代码中最常见的,python内存中的字符串是按照:unicode 编码存储。对于字符串是不可变。
字符串自己有很多方法,如:
-
大写: upper
v = 'ALEX'
v1 = v.upper()
print(v1)
v2 = v.isupper() # 判断是否全部是大写
print(v2) -
小写:lower
v = 'alex'
v1 = v.lower()
print(v1)
v2 = v.islower() # 判断是否全部是小写
print(v2)
############ 了解即可
v = 'ß'
# 将字符串变小写(更牛逼)
v1 = v.casefold()
print(v1) # ss
v2 = v.lower()
print(v2) -
判断是否是数字: isdecimal
v = '1'
# v = '二'
# v = '②'
v1 = v.isdigit() # '1'-> True; '二'-> False; '②' --> True
v2 = v.isdecimal() # '1'-> True; '二'-> False; '②' --> False
v3 = v.isnumeric() # '1'-> True; '二'-> True; '②' --> True
print(v1,v2,v3)
# 以后推荐用 isdecimal 判断是否是 10进制的数。
# ############## 应用 ##############
v = ['alex','eric','tony']
for i in v:
print(i)
num = input('请输入序号:')
if num.isdecimal():
num = int(num)
print(v[num])
else:
print('你输入的不是数字') -
去空白+\t+\n + 指定字符串
v1 = "alex "
print(v1.strip())
v2 = "alex\t"
print(v2.strip())
v3 = "alex\n"
print(v3.strip())
v1 = "alexa"
print(v1.strip('al')) -
替换:replace
a = 'kn,ig,ht'
b = a.replace(',','') #'knight' -
开头 / 结尾 :startswith / endswith
a = 'knight'
if a.startswith('k'): #前几位也可以
print(a) #endswith用法相同 -
编码,把字符串转换成二进制 :encode
a = 'knight'
b = a.encode('utf-8')
print(b) -
格式化:format
info = {'name':'骗子','age':18,'gender':'性别'}
a = []
for k,v in info.items():
a.append('{}|{}'.format(k,v))
print(a) #append只能追加一个值,使用格式化 可以追加俩甚至更多-
使用'{name}.format{name:'alex'}的格式
v1 = "我是{0},年龄{1}".format(('alex',19,))print(v1)
v2 = "我是{name},年龄{age}".format(**{'name':'alex','age':18})print(v2) -
-
以字符连接目标每个字符:join
a = 'kngi'
b = '_'.join(a)
print(b) # b ='k_n_g_i' -
分割 :split
a = 'kn|ig|ht'
b = a.split('|') #['kn','ig','ht'] 字符串分割得到列表类型 -
其他【可选】
3.4 列表(list)
-
append(追加)
a = ['kngiht','kevin','qaz',1,2,3]
a.append('hello')
print(a) #直接追加到a后 -
insert(插入)
a = ['kngiht','kevin','qaz',1,2,3]
a.insert(0,'nb')
print(a) #['nb', 'kngiht', 'kevin', 'qaz', 1, 2, 3] 0表示在哪个索引位置之前插入 -
remove(删除元素,按元素删除)
a = ['kngiht','kevin','qaz',1,2,3]
a.remove('qaz')
print(a) #['kngiht', 'kevin', 1, 2, 3] -
pop(删除元素,按索引删除)
a = ['kngiht','kevin','qaz',1,2,3]
a.pop(2)
print(a) #['kngiht', 'kevin', 1, 2, 3] -
del(按索引删除,可以切片删除)
a = ['kngiht','kevin','qaz',1,2,3]
del a[2:4]
print(a) #['kngiht', 'kevin', 2, 3] 按索引切片删除 -
clear(清楚)
a = ['kngiht','kevin','qaz',1,2,3]
a.clear()
print(a) # [] 空字符串 -
reverse(反转)
a = ['kngiht','kevin','qaz',1,2,3]
a.reverse()
print(a) #反转 -
sort(排序)
a = ['kngiht','kevin','qaz']
a.sort()
print(a) #sort无法同时对字符串和整型进行排序 -
extend(拼接)
a = ['kngiht','kevin','qaz',1,2,3]
a.extend(['wsx','edc'])
print(a) #extend一般完成列表与列表的拼接, 如果目标是字符串,则会将字符串拆解拼接
3.5 字典(dict)
-
info/ info.keys()
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
for key i info:#info.keys()
print(key) -
Info.values()
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
for v in info.values():
print(v) -
info.items()
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
for pair in info.items():
print(pair) #键值对的类型是元组 -
Info.get(key, 666)
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
print(info.get(1, 666))
print(info.get(4, 666))
# 有key则取出, 没有则返回指定 值
# 如果没有指定值,则返回 None -
info.pop(key)
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
print(info.pop(1))
print(info.pop(4)) -
info.update(info1)
info = {}
info1 = {1: 'henry', 2: 'echo', 3: 'eliane'}
info.update(info1)
print(info) -
info.setdefalut(key, value)
# 查询key,有则取出,没有则添加
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
info.setdefault(4, 'hello')
print(info)
# 取出需要赋值给其他变量
val = info.setdefault(4, 'i hate you')
print(val) -
info.popitem()
# 不能加参数,删除最后一个key值对
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
v = info.popitem()
print(v,info) # v是tuple -
info.clear()
# 清空所有元素
info = {1: 'henry', 2: 'echo', 3: 'eliane'}
info.clear()
print(info) -
{}.fromkeys([1,2,3],'uu')
#制造新的字典,注意当第二个参数是可变类型的时候,所有的键引用的同一个内存地址 dic = {} dic1 = dic.fromkeys(['a','b','c'],['你好']) print(dic1) # 结果 {'a': ['你好'], 'b': ['你好'], 'c': ['你好']} ''' fromkeys里第一个参数是可迭代的对象,里边的每个元素就是字典中的健,第二个参数就是值 现在创建的字典中后边的值用的是同一个 ''' dic1['a'].append('我好') print(dic1) # 结果 {'a': ['你好', '我好'], 'b': ['你好', '我好'], 'c': ['你好', '我好']}
3.6 集合 (set)
-
s.add('a')
s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.add(5) print(s) -
s.update(s1)
# 可以用str , list, tuple, dict, set, 也可以混合多种类型放入update中 s = {1, 'henry', 2, 'echo', 3, 'eliane'} s1 = {5, 6, 7, 8, 1, 2, 3} s2 = [5, 6, 7, 8, 1, 2, 3] s3 = (5, 6, 7, 8, 1, 2, 3) s4 = {5: 6, 7: 8, 1: 2} s.update(s1) print(s) s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.update(s2) print(s) s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.update(s3) print(s) s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.update(s4) print(s) #字典只会加入键 -
s.pop()
# 随机删除,此时pop中不能有任何参数 s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.pop() # 默认删除第一个元素/随机 print(s) -
s.discard() 删除
# 必须有一个参数,没有不报错, 不会返回值 s = {1, 'henry', 2, 'echo', 3, 'eliane'} val = s.discard(3) print(s) print(val)-
s.remove('a')
# 必须有一个参数,没有会报错 s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.remove(3) print(s) -
-
s.clear()
s = {1, 'henry', 2, 'echo', 3, 'eliane'} s.clear() print(s) -
s.intersection(s1)
# 取v1 和v2 的交集 v1 = {1, 'henry', 2, 'echo', 3, 'eliane'} v2 = {1, 3, 5, 7} v = v1.intersection(v2) print(v) -
v.union(v1)
# 取并集 v1 = {1, 'henry', 2, 'echo', 3, 'eliane'} v2 = {1, 3, 5, 7} v = v1.union(v2) print(v) -
v.difference(v1)
v1 = {1, 'henry', 2, 'echo', 3, 'eliane'} v2 = {1, 3, 5, 7} v = v1.difference(v2) print(v) -
v.symmetric_difference(v1)
v1 = {1, 'henry', 2, 'echo', 3, 'eliane'} v2 = {1, 3, 5, 7} v = v1.symmetric_difference(v2) print(v)
3.7 元组(tuple)
-
除步长,索引,切片,for循环,len无特殊功能
3.8 公共功能
-
len
-
索引
-
切片
-
步长
-
for循环
int bool str list tuple dict set len — — ✓ ✓ ✓ ✓ ✓ index — — ✓ ✓ ✓ ✓ — 切片 — — ✓ ✓ ✓ — — step — — ✓ ✓ ✓ — — for循环/ iterable — — ✓ ✓ ✓ ✓ ✓ 修改 — — — ✓ — ✓ ✓ 删除 — — — ✓ — ✓ ✓
3.9 嵌套
-
可嵌套的数据类型
-
所有的容器类例如:list,tuple, dict,set 都可以嵌套,但set(), 只能嵌套可hash(int, bool, str, tuple 4种)的数据类型。
3.10 复数
-
表示复数的语法是real+imag
-
虚部的后缀必须是j,且必须是小写
a = 1 + 2j
b = 1 - 2j
print(a.imag,a.real)
print(a.conjugate()) #求共轭复数

浙公网安备 33010602011771号