标签:首字母 style key值 put 用法 span pre 输入验证 一个
主要用于计算
# bit_length() 当十进制数用二进制表示时,最少使用的位数 v = 17 data = v.bit_length() print(data)
用于判断,只有两种:True,False
真 1 True
假 0 False
# int、bool、str之间转换
# int --> str
i = 1
s = str(i)
print(i,type(i))
print(s,type(s))
# str --> int 只有纯数字字符串才能转化成int
s = ‘123‘
i = int(s)
print(i,type(i))
print(s,type(s))
# int --> bool int非0 为True
i = 3
b = bool(i)
print(b)
# bool --> int
i = int(True)
i1 = int(False)
print(i,type(i),i1)
# str --> bool 非空字符串都是True
s = ‘‘
print(bool(s))
s = ‘ ‘
print(bool(s))
s = ‘0‘
print(bool(s))
b = False
s = str(b)
print(s,type(s))
print(b,type(b))
while True:
pass
while 1: #效率高
pass
存储少量数据,进行操作
所有引号引起来的都是字符串
1、字符串的索引与切片
# 索引 从0开始
s = ‘ABCDEFG‘
s1 = s[0]
print(s1)
s2 = s[2]
print(s2)
s21 = s[-1]
print(s21)
s22 = s[-3]
print(s22)
# 切片: 顾头不顾尾
s3 = s[0:4]
print(s3) #ABCD
s4 = s[0:-1]
print(s4) #ABCDEF
s5 = s[0:]
s51 = s[:]
print(s5,s51) #ABCDEFG
s6 = s[0:0]
print(s6) #空
s7 = s[0:5:2] # s[首:尾:步长]
print(s7) #ACE
s8 = s[0:4:-1] #空 错误用法
s81 = s[4:0:-1] #EDCB
s82 = s[4::-1] #EDCBA
s83 = s[4::-2] #ECA 反向加步长
print(s8)
print(s81,s82,s83)
s9 = s[-1:0:-1] #GFEDCB
s91 = s[-1::-1] #GFEDCBA
s92 = s[::-1] #GFEDCBA
print(s9,s91,s92)
2、字符串的操作
# 通用方法
s = ‘tian*he_LING sha5yong气ziying‘
l = len(s) #长度
print(l)
c = s.count(‘h‘) #数元素出现次数
print(c)
#
s = ‘tian*he_LING sha5yong气ziying‘
s1 = s.capitalize() #首字母大写
print(s1)
s2 = s.upper() #全大写
s21 = s.lower() #全小写
print(s2,s21)
s3 = s.swapcase() #大小写翻转
print(s3)
s4 = s.title() #每个隔开(特殊字符或数字)的单词首字母大写(汉字也可以。。。)
print(s4)
s = ‘tian_He‘
s5 = s.center(20) #居中,长度,空白填充
s51 = s.center(20,‘*‘) #居中,长度,填充其他字符
print(s5)
print(s51)
s = ‘ling\tsha‘
s6 = s.expandtabs() # \t前面的补全 默认将一个Tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个;多于则补全8的倍数
print(s6)
s = ‘tian_He‘
s7 = s.startswith(‘tia‘) #以什么开头结尾 可切片
s71 = s.startswith(‘a‘,2,5)
s72 = s.endswith(‘2e‘)
s73 = s.endswith(‘n‘,1,4)
print(s7)
print(s71,s72,s73)
s = ‘tian*he_LING sha5yong气ziying‘
s8 = s.find(‘h‘) #通过元素找索引,找不到返回-1
s81 = s.find(‘LI‘)
s82 = s.find(‘Li‘)
s83 = s.find(‘h‘,6,)
s831 = s.find(‘h‘,6)
print(s8,type(s8),s81,s82,s83,s831)
s88 = s.index(‘h‘) #通过元素找索引,找不到会报错
print(s88,type(s88))
s = ‘ tian he ‘
s9 = s.strip() #默认删除前后空格
print(s9)
s = ‘***tian*he****‘
s91 = s.strip(‘*‘) #还可以删其他字符 或删左右 lstrip rstrip
s92 = s.lstrip(‘*‘)
s93 = s.rstrip(‘*‘)
print(s91)
print(s92)
print(s93)
s = ‘tianhe lingsha yongqi‘
l = s.split() #以什么分割,形成一个不含有这个分割元素的列表 默认空格
print(l) #int --> list
s = ‘:tianhe:lingsha:yongqi‘
l1 = s.split(‘:‘)
l2 = s.split((‘a‘))
print(l1)
print(l2)
# format()的三种用法,格式化输出
s = ‘我叫{},今年{},爱好{},重复一下我叫{}‘.format(‘天河‘,18,‘shanzhu‘,‘天河‘)
print(s)
s = ‘我叫{0},今年{1},爱好{2},重复一下我叫{2}‘.format(‘天河‘,‘18‘,‘shanzhu‘,‘天河‘)
print(s)
s = ‘我叫{name},今年{age},爱好{hobby},重复一下我叫{name}‘.format(hobby = ‘shanzhu‘,name = ‘天河‘,age = 18,)
print(s)
s = ‘的方法的官方给个说法巅峰时代vd 的方法的方法‘
s10 = s.replace(‘方法‘,‘天河‘) #替换 (old, new, count)
print(s10)
s101 = s.replace(‘方法‘,‘天河‘,2)
print(s101)
# is系列
s = ‘tianhe123‘
print(s.isalnum()) #字符串由字母或数字组成
print(s.isalpha()) #字符串只由字母组成
print(s.isdigit()) #字符串只由数字组成
#
s = ‘tianhe‘
for i in s: #for循环 可查询字符串中是否含有某元素
print(i)
s = ‘tian苍井空he‘
if ‘苍井空‘ in s:
print(‘您的评论有敏感词。。。‘)
# 使用范例
s_str = ‘asDF23‘
you_input = input(‘请输入验证码,不区分大小写:‘)
if you_input.upper() == s_str.upper():
print(‘输入成功‘)
else:
print(‘请重新输入‘)
user = input(‘请输入用户名:‘)
if user.strip() == ‘天河‘:
print(‘恭喜天河发财‘)
储存大量数据,储存不同的数据类型
以[]括起来,每个元素之间以逗号隔开;列表有序,有索引值,可切片
1、列表的索引和切片
li = [‘tianhe‘,[1,2,3],‘lingsha‘,‘勇气‘,1,2,3,‘shanzhu‘]
l1 = li[0]
print(l1)
l2 = li[1]
print(l2)
l3 = li[1:5]
print(l3)
2、增 append insert extend
li = [‘tianhe‘,[1,2,3],‘lingsha‘,‘勇气‘,1,2,3,‘shanzhu‘]
li.append(‘梦璃‘) #增加到最后
print(li.append(‘梦璃‘)) #None
print(li)
li.append(1)
print(li)
li.insert(1,‘mengli‘) #按照索引增加
print(li)
li.extend(‘梦璃‘) #迭代的增
li.extend([1,2,3,4])
print(li)
3、删 pop remove clear del
li = [‘tianhe‘,[1,2,3],‘lingsha‘,‘勇气‘,1,2,3,‘shanzhu‘]
print(li.pop(1)) #有返回值 返回删除元素
print(li.pop()) #默认删除最后一个
print(li)
li.remove(‘tianhe‘) #按元素删除
print(li)
li.clear() #清空 剩余空列表
print(li)
del li #删除列表 li列表不存在
print(li)
del li[1] #切片删
print(li)
del li[1:3]
print(li)
4、改 索引 切片
li = [‘tianhe‘,[1,2,3],‘lingsha‘,‘勇气‘,1,2,3,‘shanzhu‘]
li[0] = ‘天青‘ #改
li[0] = [1,2,4]
li[0:2] = ‘紫英‘ #切片
li[0:2] = ‘紫英asd‘
li[0:3] = [1,2,3,‘xuanxiao‘,‘suyu‘]
print(li)
5、查 for 切片
li = [‘tianhe‘,[1,2,3],‘lingsha‘,‘勇气‘,1,2,3,‘shanzhu‘]
for i in li: #循环查
print(i)
print(li[0:2]) #切片查
6、其他操作
li = [‘tianhe‘,[1,2,3],‘lingsha‘,‘勇气‘,1,2,3,‘shanzhu‘]
l = len(li) #列表长度
print(l)
num = li.count(‘lingsha‘) #数某个元素在列表中出现次数
print(num)
i = li.index(‘lingsha‘) #从列表中找出某个值第一个匹配项的索引位置
i2 = li.index(‘lingsha‘,3,5) #可切片 找不到报错
print(i,i2)
li = [2,4,8,5,9,3,5]
li.sort() #排序 纯数字才行 无返回值
print(li)
li.sort(reverse=True) #反向排序
print(li)
li.reverse() #反转 无返回值
print(li)
7、列表的嵌套
li = [‘tianhe‘,‘梦璃‘,[1,2,3,‘lingsha‘],1,2,3,‘shanzhu‘]
print(li[1][1])
name = li[0].capitalize()
print(name)
li[1] = ‘林夕璃‘
print(li[1].replace(‘梦‘,‘meng‘))
li[1] = li[1].replace(‘梦‘,‘meng‘)
li[2][3] = li[2][3].upper()
print(li)
8、列表与字符串之间转换
S.join(iterable) --> str
str --> list split()
li = [‘tianhe‘,‘lingsha‘,‘勇气‘,‘shanzhu‘]
s = ‘‘.join(li)
s1 = ‘++‘.join(li)
print(s)
print(s1)
s = ‘tianhe‘
s1 = ‘_‘.join(s)
li = s1.split(‘_‘)
print(s1)
print(li)
只读列表,可循环查询,可切片
儿子不能改,孙子可能可以改
tu = (1,2,3,‘tianhe‘,[2,3,4,‘mengli‘],‘lingsha‘)
print(tu[3])
print(tu[1:4])
for i in tu:
print(i)
tu[4][3] = tu[4][3].upper()
tu[4].append(‘yongqi‘)
tu[3] = tu[3].upper() #报错
print(tu)
如果元组里面只有一个元素且不加逗号,那此元素是什么类型就是什么类型
tu1 = (1)
tu2 = (1,)
print(tu1,type(tu1))
print(tu2,type(tu2))
tu1 = ([1])
tu2 = ([1],)
print(tu1,type(tu1))
print(tu2,type(tu2))
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据
dict key : 必须是不可变数据类型,可哈希 int str tuple
value: 任意数据类型
dict 优点 :二分查找去查询
存储大量的关系型数据
特点 :无序的 (3.5及以前无序)
1、增
dic1 = {‘name‘:‘tianhe‘,‘age‘:18,‘sex‘:‘male‘}
dic1[‘high‘] = 185 #没有键值对,添加
dic1[‘age‘] = 16 #有键值对,value覆盖
print(dic1)
dic1.setdefault(‘hobby‘,‘shanzhu‘) #有键值对,不做任何改变,没有则添加
dic1.setdefault(‘hobby‘) #如果只有key 对应value 为 none
dic1.setdefault(‘name‘,‘ziying‘)
print(dic1)
2、删
dic1 = {‘name‘:‘tianhe‘,‘age‘:18,‘sex‘:‘male‘}
print(dic1.pop(‘age‘)) #有返回值 按key删除 返回value
# print(dic1.pop(‘hobby‘)) #key 不存在 报错
print(dic1.pop(‘hobby‘,None)) #可设置返回值
print(dic1.pop(‘hobby‘,‘没有此键‘))
print(dic1)
print(dic1.popitem()) #随机删除 返回元组(key,value)删除的键值对
print(dic1)
dic1.clear() #清空字典
print(dic1)
del dic1[‘name‘] #按key删除 key不存在 报错
del dic1 #删除字典
print(dic1)
3、改
dic1 = {‘name‘:‘tianhe‘,‘age‘:18,‘sex‘:‘male‘}
dic1[‘age‘] = 16 #覆盖
print(dic1)
dic2 = {‘name‘:‘lingsha‘,‘high‘:170}
dic2.update(dic1) #将dic1所有的键值对覆盖添加(key相同覆盖,没有的添加)到dic2中
print(dic2)
4、查
dic1 = {‘name‘:‘tianhe‘,‘age‘:18,‘sex‘:‘male‘}
print(dic1.keys(),type(dic1.keys())) #<class ‘dict_keys‘> 就是dict_keys类型,可迭代的
print(dic1.values(),type(dic1.values()))
print(dic1.items(),type(dic1.items()))
for i in dic1: #默认key
print(i)
for i in dic1.keys():
print(i,type(i)) #str
for i in dic1.values():
print(i)
for i in dic1.items():
print(i,type(i)) #元组
for k,v in dic1.items():
print(k,v)
print(dic1[‘age‘]) #按键查询
# print(dic1[‘age1‘]) #报错
print(dic1.get(‘age‘)) #按键查询
print(dic1.get(‘age‘,‘没有此键‘))
print(dic1.get(‘age1‘)) #没有返回None 可设定返回值
print(dic1.get(‘age1‘,‘没有这个键‘))
5、嵌套
dic = {
‘name‘:[‘tianhe‘,‘lingsha‘,‘yongqi‘],
‘xian4‘:{
‘time‘:‘2007‘,
‘money‘: 50,
‘owner‘:‘ruanxing‘
},
‘age‘:11
}
dic[‘age‘] = 18
print(dic)
print(dic[‘name‘])
dic[‘name‘].append(‘mengli‘)
print(dic)
dic[‘name‘][1] = dic[‘name‘][1].upper()
print(dic)
dic[‘xian4‘][‘type‘] = ‘RPG‘
print(dic)
可变的数据类型,他里面的元素必须是不可变的数据类型,无序,不重复
1、创建
set1 = set({1,2,3})
print(set1)
# set2 = {1,2,[2,3],{‘name‘:‘tianhe‘}} #错误
set2 = {1,2,‘tianhe‘,}
print(set2)
2、增
set1 = {‘tianhe‘,‘lingsha‘,‘yongqi‘,‘yongqi‘,‘mengli‘}
set1.add(‘ziying‘) #按元素
print(set1)
set1.update(‘ziying‘) #迭代的增
print(set1)
3、删
set1 = {‘tianhe‘,‘lingsha‘,‘yongqi‘,‘yongqi‘,‘mengli‘,‘ziying‘}
set1.remove(‘ziying‘) #按元素删除
print(set1)
print(set1.pop()) #随机删 有返回值
print(set1)
set1.clear() #清空集合
print(set1)
del set1 #删除集合
print(set1)
4、查
set1 = {‘tianhe‘,‘lingsha‘,‘yongqi‘,‘yongqi‘,‘mengli‘,‘ziying‘}
for i in set1:
print(i)
5、交差并补等
# 交集 & intersection
set1 = {1,2,3,4}
set2 = {3,4,5,6}
print(set1 & set2)
print(set1.intersection(set2))
# 并集 | union
set1 = {1,2,3,4}
set2 = {3,4,5,6}
print(set1 | set2)
print(set1.union(set2))
# 差集 - difference
set1 = {1,2,3,4}
set2 = {3,4,5,6}
print(set1 - set2)
print(set1.difference(set2))
# 对称差集 ^ symmetric_difference
# print(set1 ^ set2 == (set1 | set2) - (set1 & set2))
set1 = {1,2,3,4}
set2 = {3,4,5,6}
print(set1 ^ set2)
print(set1.symmetric_difference(set2))
# 子集与超集
set1 = {1,2,3,4}
set2 = {1,2,3,4,5,6}
print(set1 < set2)
print(set1.issubset(set2)) # set1是set2的子集
print(set2 > set1)
print(set2.issuperset(set1)) # set2是set1的超集
6、不可变集合,让集合变成不可变类型 frozenset
s1 = {1,2,3}
print(s1,type(s1))
s = frozenset(‘tianhe‘)
print(s,type(s))
7、去重
li = [1,2,3,3,23,34,5,3,2,7,33,34]
set1 = set(li)
print(set1)
li = list(set1)
print(li)
按储存空间的占用分(从低到高)
数字
字符串
集合:无序,无需存索引相关信息
元组:有序,需要存索引相关信息
不可变
列表:有序,需要存索引相关信息
可变,需要处理数据的增删改
字典:无序,需要存key与value映射的相关信息
可变,需要处理数据的增删改
按存值个数区分
标量/原子类型: 数字,字符串
容器类型: 列表,元组,字典
按可变不可变区分
可变: 列表,字典,集合 不可哈希
不可变: 数字,字符串,元组,bool 可哈希
按访问顺序区分
直接访问: 数字
顺序访问(序列类型): 字符串,列表,元组
key值访问(映射类型): 字典
标签:首字母 style key值 put 用法 span pre 输入验证 一个
原文地址:https://www.cnblogs.com/wuyinglianjianjue/p/10117906.html