Beginning day2:
1.基础数据类型宏观:
1.1.整型:int:1,2,3
1.2.字符串:str:‘anthony’
1.2.1:
索引:索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。
a = 'ABCDEFGHIJK'
print(a[0])
print(a[3])
print(a[5])
print(a[7])
切片:切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。
a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) #-1就是最后一个
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长
1.2.2:常用方法:
#captalize,swapcase,title
print(name.capitalize()) #首字母大写
print(name.swapcase()) #大小写翻转
msg='egon say hi'
print(msg.title()) #每个单词的首字母大写
# 内同居中,总长度,空白处填充
ret2 = a1.center(20,"*")
print(ret2)
#数字符串中的元素出现的个数。
# ret3 = a1.count("a",0,4) # 可切片
# print(ret3)
a2 = "hqw "
# 前面的补全
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
ret4 = a2.expandtabs()
print(ret4)
a4 = "dkfjdkfasf54"
#startswith 判断是否以...开头
#endswith 判断是否以...结尾
# ret4 = a4.endswith('jdk',3,6) # 顾头不顾腚
# print(ret4) # 返回的是布尔值
# ret5 = a4.startswith("kfj",1,4)
# print(ret5)
#寻找字符串中的元素是否存在
# ret6 = a4.find("fjdk",1,6)
# print(ret6) # 返回的找到的元素的索引,如果找不到返回-1
# ret61 = a4.index("fjdk",4,6)
# print(ret61) # 返回的找到的元素的索引,找不到报错。
#split 以什么分割,最终形成一个列表此列表不含有这个分割的元素。
# ret9 = 'title,Tilte,atre,'.split('t')
# print(ret9)
# ret91 = 'title,Tilte,atre,'.rsplit('t',1)
# print(ret91)
#format的三种玩法 格式化输出
res='{} {} {}'.format('egon',18,'male')
res='{1} {0} {1}'.format('egon',18,'male')
res='{name} {age} {sex}'.format(sex='male',name='egon',age=18)
#strip
name='*egon**'
print(name.strip('*'))
print(name.lstrip('*'))
print(name.rstrip('*'))
#replace
name='alex say :i have one tesla,my name is alex'
print(name.replace('alex','SB',1))
#####is系列
name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
1.3.布尔:bool:true,false
真 1 True。
假 0 False。
# 布尔值比较
同为数字,and去后,or去前
False 和 True与数字比较,大于都为false,小于都为true
1.4.列表:
list:['123','anthony']
a.增加:append
b.删除:
按索引删除:pop #有返回值
按元素删除:remove
直接删除:del:a.删除列表 b.删除索引 c.按照切片删除
c.修改:
按照索引修改:l[0] = 'anthony'
按照切片修改:1:[:3] =
按照步长修改:[1:2:2] =
d.查询:
# 按照索引、切片(步长):
a. for(有限循环)
e.其他方法:
print(len(l)) #总个数
print(l.count('WuSir'))
sort 排序:
ll = [1,2,3,6,5,7,9,2,5,4]
正序排序:sort
倒序排序:ll.sort(reverse=True)
翻转排序:ll.reverse()
f.list example:
li = [1,9,6,7, 2, 3, 4]
# 增加:
# li.insert(0,5)
# li.append('r')
# li.extend('fjsldjf')
# 删除:
# li.pop(1) # 按照位置删除,有返回值
# del li[0] # 按位置直接删除,没有返回值
# li.remove('a') # 按照元素删除
# li.clear() # 清空列表
# 修改
# li[0] = 'aaa'
# # 查询:
# li[0] #切片查
# print(li[0])
# 其他方法:
# print(len(li)) #总个数
# print(li.count(1)) #每个元素出现的次数
# li.sort() # 正向排序
# li.sort(reverse=True) #反向排序
# li.reverse() #翻转排序
print(li)
1.5.元祖:
l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]
l1[2] = l1[2].capitalize()
l1[3][0] = l1[3][0].upper()
l1[3][2] = str(l1[3][2]+1)
print(l1)
1.6.列表嵌套:
遍历range:
l1 = [1, 2, 3, 4, 5, 'alex']
for i in range(len(l1)):
print(i)
常见入坑:
# ll = [11,22,33,44,55]
#
# for i in range(len(ll)-1,-1,-1):
# if i % 2 == 1:
# del ll[i]
# print(ll)
# del ll[1::2]
1.7.字典:
含义:
a.字典:key-values存储,可以存储大量的的关系型数据,查询速度非常快。
b.字典的键 必须是唯一的,不可重复,value 可以为任意数据类型或者对象。
c.字典的键只能是不可变的数据类型:
d.数据类型的分类:
不可变(可哈希的)得数据类型:int str tuple bool
可变的(不可哈希的)数据类型:dict,list,set
e. 3.5版本包括3.5之前都是无序的。
增加:
dic['name'] = 'anthony'
删除:
pop:
pop:根据键(key)删除
popitem:随机删除,有返回值。
del:删除整个字典或按照键值对删除
clear:清空字典
修改:
dic['name'] = 'anthony' #无责增加,有责改之
update:
查询:
# value1 = dic["name"] # 没有会报错
# print(value1)
#
# value2 = dic.get("djffdsafg","默认返回值") # 没有可以返回设定的返回值
# print(value2)
其他方法:
dic.keys()
dic.values()
dic.items()
常见入坑:
dic = {'k1': 'v1', 'k2': 'v2', 'k3':'v3', 'name':'alex'}
lists = []
for key in dic:
if 'k' in key:
lists.append(key)
for i in lists:
del dic[i]
print(dic)
字典嵌套: