1.字符串
1.1 字符串相加
s1 = " ale x "
s2 = " sb "
print(s1 + s2) #识别空格
print(s1.strip() + s2.strip())
ale x sb
ale xsb
1.2 字符串相乘
s1 = "alex "
print(s1 * 5)
alex alex alex alex alex
note:str*int
1.3 字符串索引、切片
字符串索引,从0开始,空格也会输出
s = "chun tian lai le "
print(s[0],type(s[0]))
print(s[4],type(s[4]))
print(s[-1],s[-2]) -1是最后一个元素
字符串切片[起始索引:结束索引+1:步长],顾首不顾尾,所以结束索引+1
s = "chuntianlaile"
print(s[::2])
print(s[::-1])
cutalie
elialnaitnuhc
1.4 字符串常用方法
1.4.1 **capitalize 首字母大写其余字母小写
s = 'alexWUsir'
s1 = s.capitalize()
print(s1)
Alexwusir
1.4.2 **swapcase 大小写翻转
s = 'alexWUsir'
s2 = s.swapcase()
print(s2)
ALEXwuSIR
1.4.3 *title 非字母隔开的每个单词的首字母大写
s = 'alex wusir*taibai2ritian'
s3 = s.title()
print(s3)
Alex Wusir*Taibai2Ritian
1.4.4 **center 设置总长度,并居中
s = 'alex wusir*taibai2ritian'
s4 = s.center(30,)
s4 = s.center(50,'*')
print(s4)
*************alex wusir*taibai2ritian*************
1.4.5 *** upper() lower() 全部大写、全部小写
验证码忽略大小写
code = 'AwEqr'
username= input('请输入用户名:')
your_code = input('请输入验证码:')
if username == 'alex' and your_code.upper() == code.upper():
print('验证成功')
1.4.6 ***startswith endswith
s = 'alexWUsir'
s6 = s.startswith('a')
print(s6)
True
s7 = s.startswith('alex')
True
s8 = s.startswith('WU', 4,) 选择索引位置开始
True
1.4.7*** strip()、lstrip(),rstrip() 默认去除字符串前后的空格,换行符,制表符;去除的元素可自定制。
ss = 'abclaonanhaiq'
ss1 = ss.strip('abqc')
print(ss1)
laonanhai 首尾都删除,没有匹配到abqc中的任何一个,就停止。
username = input('>>>').strip()
password = input('>>>').strip()
if username == '老男孩' and password == '123':
print('登录成功')
1.4.8*** replace
s = 'alex 分甘共苦老地方 alex 风刀霜剑卡乐芙'
s8 = s.replace('alex', 'SB')
s9 = s.replace('alex', 'SB',1) 1是次数,替换一次。2 就是两个alex都替换了。
print(s9)
SB 分甘共苦老地方 alex 风刀霜剑卡乐芙
1.4.9 ***split() 分隔 str ---> list
s = " www.cctv.com,www.cntv.com,www.news.cn "
s1 = s.strip().split(',')
print(s1)
['www.cctv.com', 'www.cntv.com', 'www.news.cn']
l1 = s1.split() 默认以空格分隔
s1 = s.strip().split(',',1) 数字是分割次数,分割1次
1.4.10***join list---> str
li = ['www.cctv.com', 'www.cntv.com','www.news.cn']
a = '... '.join(li)
print(a)
www.cctv.com... www.cntv.com... www.news.cn
1.4.11***find index 通过元素找索引
find找不到会返回-1
index找不到会报错
s = 'alexwausir'
s11 = s.find('ex')
2
s = "123456789123456789123456789"
a = s.find("9",1,10)
print(a) 查找索引1开始到10之间的第一个出现的字符串9,后边重复的不算。
1.4.12***format
第一种用法
s = "我叫{},今年{},爱好{}"
s12 = s.format('太白', '25', '女')
print(s12)
第二种用法
s1 = "我叫{0},今年{1},爱好{2},我依然叫{0}"
s13 = s1.format('太白', '25', '女')
print(s13) 复用
第三种用法
s3 = "我叫{name},今年{age},爱好{hobby}"
s14 = s3.format(age=25,hobby='girl',name='太白')
print(s14) 乱序
公共方法
s = "aabbccdd"
print(len(s)) 长度
print(s.count("a")) 元素“a”出现的次数
8
2
is系列
name = '123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
True
False
True
int、str、bool转换
int --> str
s = 123
print(s,type(s))
s1 = str(s) 或者s1 = str(123)
print(s1,type(s1))
str --> int
s = "123"
print(s,type(s))
s1 = int(s)
print(s1,type(s1))
int --> bool
0是False,非0是True
bool --> int
True是1,False是0
str--> bool
空是False,非空是True,空格也是True
str ---> list
split
list --> str
join
格式化输出
利用三引号,实现表格形式
print("""
欢迎登陆{}
{}{}{}
{} {} {}
""".format("1","2","3","4","2","3","4"))
and or not
1,前后都是比较运算
优先级:() > not > and > or
print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)
2,前后都是数字
0 是False 非0 都是True
2 列表
2.1 取值
2.1.1 按照索引取值
按照索引取值,取出来的元素保持其原有的任何属性(与元素本身的数据类型一致)
2.1.2 按照切片取值
按照切片取值,取出来的是小列表
li = ["alex", "wusie","hou","22","33"]
l1 = li[::2]
print(l1)
['alex', 'hou', '33']
2.2 增
append() 最后追加
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l.append([1, 2, 3])
print(l)
['WuSir', 'alex', 'OldBoy', 'barry', [1, 2, 3]]
insert 根据索引插入
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l.insert(1, '葫芦')
print(l)
['WuSir', '葫芦', 'alex', 'OldBoy', 'barry
extend 将可迭代对象按最小元素添加
l.extend([1, '2122', 56])
print(l)
['WuSir', 'alex', 'OldBoy', 'barry', 1, '2122', 56]
2.3 删
pop 按照索引删除
l = ['WuSir', 'alex', 'OldBoy', 'barry']
print(l.pop(0))
print(l)
WuSir pop有返回值
['alex', 'OldBoy', 'barry']
remove 按照元素删除
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l.remove("alex")
print(l)
clear 清空列表
l.clear()
print(l)
del 删除列表;按照索引删除,按照切片删除
del l
print(l)
del l[1]
print(l)
del l[:3]
print(l)
l = [11, 22, 33, 44, 55]
del l[1::2]
print(l)
[11, 33, 55]
2.4 改
按照索引改
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l[0] = "houbinglei"
print(l)
按照切片去改,改的是那一片区域,有点类似extend,将新的最小元素插入。理解最小元素。
l = ['WuSir', 'alex', 'OldBoy', 'barry']
l[:2] = ["01","02","123",456,[123,456]]
print(l)
['01', '02', '123', 456, [123, 456], 'OldBoy', 'barry']
2.5 查
按照索引、切片、切片+不长查
for 循环遍历查
for i in l:
print(i)
2.6 列表其他方法
print(len(l)) 总个数
print(l.count('WuSir')) 某个元素出现的次数
l1 = [1, 9, 8, 4, 3, 2, 6,]
l1.sort() 正序排序
print(l1)
l1.sort(reverse=True) #倒叙排序
print(l1)
l1.reverse() 翻转
print(l1)
2.7 列表的嵌套
l1 = [1, 2, 'alex', ['WuSir', 'taibai', 99], 6]
l1[-2][0] = l1[-2][0].upper()
l1[-2][-1] = str(l1[-2][-1] + 1)
print(l1)
[1, 2, 'alex', ['WUSIR', 'taibai', '100'], 6]
2.8 元组(tuple)和range
元祖。只读的列表
tu1 = (1, 2, [1, 3,], 4)
tu1[2].append(666)
print(tu1)
只是不能修改元祖的最小元素。
tu = (1, 2, 33, 'alex')
print(tu[:-1])
(1, 2, 33) -1是不能取到alex,切片不顾尾
range,一种数字组成的特殊列表
for i in range(1,10,2):
print(i)
默认从0开始,不顾尾,2是步长
列表增删改查,3424
3 字典
3.1 增
根据key增加
dic['hobby'] = 'old_girl' 无责增加,有责修改。
dic['name'] = 'alex'
print(dic)
setdefault()方法增加
默认没有添加,有的话不修改,默认值是None
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
dic.setdefault("love",)
print(dic)
dic.setdefault('high', 169)
print(dic)
{'name': '老男孩', 'age': 10000, 'sex': '男', 'love': None}
{'name': '老男孩', 'age': 10000, 'sex': '男', 'love': None, 'high': 169}
3.2 删
pop 根据key删除
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
print(dic.pop("name1",'没有这个键'))
print(dic.pop("name"))
print(dic)
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
print(dic.pop("name1",'没有这个键')) 可以设定返回值
print(dic.pop("name"))
print(dic)
popitem() 3.6 之前是随机删除
clear
dic.clear()
print(dic)
del 删除整个字典; 按照键去删除键值对
del dic
print(dic)
del dic['name']
print(dic)
3.3 改
根据键改
update()方法
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
dic1 = {}
print(dic1)
dic1.update(dic)
print(dic1)
{}
{'name': '老男孩', 'age': 10000, 'sex': '男'}
3.4 查
根据key查,没有会报错
根据get()方法
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
dic1 = {}
print(dic["name"])
print(dic.get("name1","meiyou"))
老男孩
meiyou 不设置,默认返回None,不报错
for 循环 三种
dic = {
'name': '老男孩',
'age': 10000,
'sex': '男',
}
for k in dic.keys():
print(k)
name
age
sex
分别赋值原理:
a, b = 1 ,3
a, b = [22, 33]
print(a,b)
for k, v in dic.items():
print(k, v)
补充:
循环列表、字典是最好不要改变其本身得结构,比如删除操作;
fromkeys()方法,创建一个新得字典
seq = ('name', 'age', 'sex')
dict = dict.fromkeys(seq)
print "New Dictionary : %s" % str(dict)
dict = dict.fromkeys(seq, 10)
print "New Dictionary : %s" % str(dict)
New Dictionary : {'age': None, 'name': None, 'sex': None}
New Dictionary : {'age': 10, 'name': 10, 'sex': 10} 每个值都是10