鸽了这么久终于来补上了。。。
依旧是字符串的基操
1.replace:替代
将$599 替换成#599的方法
price = "$599"
price = price.replace('$','# ')
print(price)
replace里有三个参数(原字符,替换成的字符,替换的数量)
2.split:分离分割符
name = 'hello world haha'
name_list =name.split(" ")
print(name_list)
['hello', 'world', 'haha']
直接将句子按单词分离了
name_list1 = name.split(" ",1)
print(name_list1)
['hello', 'world haha']
这个1是指定分割的最大个数字符串,所以这里只分割出了一个单词
3.capitalize:首字母大写
my_str = 'hello world neuq'
my_str2 = my_str.capitalize()#首字母大写
print(my_str2)#Hello world neuq
4.title:标题格式
my_str3 = my_str.title()#每个单词的首字母大写,相当于标题格式
print(my_str3)#Hello World Neuq
5.startswith:判断是否以xx为开头
my_str4 = my_str.startswith('hello')#是否以“hello”作为开头
print(my_str4)#True
my_str5 = my_str.startswith('Hello')
print(my_str5)#False
6.endswith:判断是否以xx为结尾
my_str6 = my_str.endswith('neuq')#是否以“neuq”结尾
print(my_str6)#True
7.upper:把字符串的所有字母变为大写
my_str7 = my_str.upper()
print(my_str7)#HELLO WORLD NEUQ
8.lower:把字符串的所有字母变为小写
my_str8 = my_str7.lower()
print(my_str8)#hello world neuq
9.rjust:返回一个原字符串右对齐并用空格填充
my_str_space = 'hello'
new_my_str_space = my_str_space.rjust(10)#用10个空格填充,原字符在空格右边(右对齐)
print(new_my_str_space)# hello
10.ljust:返回一个原字符串左对齐并用空格填充
new_my_str_space2 = my_str_space.ljust(10)
print(new_my_str_space2)#hello
11.center()
new_my_str_space3 = my_str_space.center(20)
print(new_my_str_space3)# hello
12.lstrip/rstrip:清除字符串左边/右边的空格
new_my_str_space4 = new_my_str_space3.lstrip()
print(new_my_str_space4)#hello
13.strip():清除两端的空白字符
new_my_str_space6 = new_my_str_space3.strip()
print(new_my_str_space6)#hello
14.find---->rfind:从左往右查找字符串的位置
index = my_str.rfind('neuq')
print(index)#12
15.partition: 把mystr以str分割成三部份 str前,str,str后
print(my_str)
t_mystr = my_str.partition('neuq')
print(t_mystr)#('hello world ', 'neuq', '')注意neuq后面还有一个空字符串
16.splitlines :按照行分割,返回一个包含各行作为元素的列表
line = 'hello\nworld'
print(line)#hello\world
line_line = line.splitlines()
print(line_line)#['hello', 'world']
17.isalpha :判断字符串是否都是字母
alpha =my_str.isalpha()
print(alpha)#False(有空格)
注意这里说的是“都是”,有空格都是不行的
isdigit:判断字符串是否都是数字
isalnum 判断是否只有字母或数字
18.join
str1 = " "#用空格将这几个字符串连起来
list1 = ['my','name','is','lubanqihao']
my_name = str1.join(list1)
print(my_name)#my name is lubanqihao
my_name2 = ",".join(list1)
print(my_name2)#my,name,is,lubanqihao
这里可以看到直接用“,”.join就可以直接连接
某价值一亿(?)的一行代码
while True:
print('AI说: '+input().strip('吗?')+'!')
在吗?
AI说: 在!
你是sb吗?
AI说: 你是sb!
用replace也可以写
while Ture:
print(input(' ').replace('吗',' ').replace('?','!'))
也就是用空格代替“吗”,用感叹号代替问号
下面是列表的知识
1.列表 list可以存储不同类型的数据
name_list = ['鲁班','xiaoming',2019]
print(name_list)#['鲁班', 'xiaoming', 2019]
print(type(name_list))#<class 'list'>
2.访问
print(name_list[0])#鲁班
3.遍历
for name in name_list:
print(name)
#鲁班
#xiaoming
#2019
i=0
while i < len(name_list):
print(name_list[i])
i+=1#鲁班
#xiaoming
#2019
上面这种遍历方法很好用,可以将列表中的每个元素遍历
i=0
while i < len(list):
print(list[i])
i+=1
4.添加:append
str = input('请输入您要添加的内容')
name_list.append(str)
print(name_list)#诸葛亮
['鲁班', 'xiaoming', 2019, '诸葛亮']
向一个空集合添加0-9的十个数
list1 = []
for i in range(10):
list1.append(i)
print(list1)#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
5.insert 在指定位置index前插入 元素object
a =[0,1,2]
a.insert(1,10)
print(a)#[0, 10, 1, 2]
6.extend:可以将另外一个集合添加到列表中
a =[1,2]
b =[3,4]
a.append(b)
print(a)#[1, 2, [3, 4]]
a.extend(b)
print(a)#[1, 2, [3, 4], 3, 4]
7.update:修改
name_list[1] = '小明'
print(name_list)#['鲁班', '小明', 2019]将字符xiaoming改成了小明
8.查找 in notin
find_name = '小明'
if find_name in name_list:
print('小明在列表中')#小明在列表中
else:
print('不在')
9.index count
a = ['a','b','c','a','b']
index1 =a.index('c')
print(index1)#2(代表c出现的位置)
counts = a.count('b')
print(counts)#2
10.删除
del :根据下标进行删除
pop :删除最后一个元素
remove 根据元素的值进行删除
del name_list[0]
print('删除后',name_list)#删除后 ['小明', 2019](把鲁班删除了)
name_list.pop()
print('删除后',name_list)#删除后 ['小明']
11.列表的排序
from modename import name1,name2
from random import randint#加入随机数指令
num = randint(-10,10)
print(num)#-2
num_list = []
for _ in range(10):
num_list.append(randint(1,20))
print(num_list)
num_list.sort()
print('正序排序',)
12.列表转换成字符串
my_list = ['welcome','to','ML','world']
my_list_to_str = str(my_list)
print(my_list_to_str)#['welcome', 'to', 'ML', 'world']
print(' '.join(my_list))#welcome to ML world
13.列表和字符串的*(相乘)
str1 = 'hehe'*3
print(str1)#hehehehehehe
list4 = ['6',9,0,3]*5
print(list4)#['6', 9, 0, 3, '6', 9, 0, 3, '6', 9, 0, 3, '6', 9, 0, 3, '6', 9, 0# , 3]
筛选出偶数的办法
number = [i for i in range(11)]
print(number)
for x in number:
if x%2==0:
print(x)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
0
2
4
6
8
10
列表小训练
一个学校有三个办公室,有8个老师等待分配
import string
from random import randint
定义三个办公室
offices = [[],[],[]]
定义8位老师
names =list(string.ascii_uppercase[:8])
names = list(names)
print(names)
产生一个随机数0~2
for name in names:
index = randint(0,2)
offices[index].append(name)
print(offices)
i=0
for tempnames in offices:
print('办公室{}的人数为{}'.format(i,len(tempnames)))
i += 1
for name in tempnames:
print('{}'.format(name),end='')
print('-'*30)
运行结果
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
[['A', 'C', 'F', 'G'], [], ['B', 'D', 'E', 'H']]
办公室0的人数为4
A------------------------------
C------------------------------
F------------------------------
G------------------------------
办公室1的人数为0
办公室2的人数为4
B------------------------------
D------------------------------
E------------------------------
H------------------------------
同时遍历两个列表
zip()
用于将可迭代对象作为参数,将对象中的对应的元素打包成一个元组,
然后返回这些元组对象,节约内存
a =[1,2,3]
b =[4,5,6]
c =[4,5,6,7,8]
zipped = zip(a,b)
print(list(zipped))#[(1, 4), (2, 5), (3, 6)]
zipped1 = zip(a,c)
print(list(zipped1))#[(1, 4), (2, 5), (3, 6)]
长度不一致时以最短的对象相同,所以这个地方省略了7和8
定义两个列表
heros = ['后羿','安其拉']
skill = ['惩戒','闪现']
for hero ,skill in zip(heros,skill):
print(hero,'----->',skill)
#后羿 -----> 惩戒
#安其拉 -----> 闪现
接下来是字典相关知识
info = {}
print(type(info))#<class 'dict'>说明这个info是字典
info = {'name':'刘强东','sex':'男','age':45,'id':56164156186,'addr':'北京'}
1.访问 根据空格键进行访问
print(info['name'])#刘强东
所以当我们不确定字典中是否存在某个key,而且还要获得其value,可以使用get
age = info.get('age')
print(age)#45
mail = info.get('mail')
print(mail)#None
不会报错,会显示该值不存在
mail =info.get('mail','122@jingdong.com')
print(mail)#122@jingdong.com
修改
info['name'] ='马云'
print(info)#{'name': '马云', 'sex': '男', 'age': 45, 'id': 56164156186, 'addr': '北京'}
添加
info['mail'] = '122@jingdongcom'
print('添加后',info)#添加后 {'name': '马云', 'sex': '男', 'age': 45, 'id': 56164156186, 'addr': '北京', 'mail': '122@jingdongcom'}
删除
del 根据key删除
del info['name']
print('删除后',info)#删除后 {'sex': '男', 'age': 45, 'id': 56164156186, 'addr': '北京', 'mail': '122@jingdongcom'}
clear:清除整个词典
info.clear()
print('afterclear',info)#空文件
字典的常用操作
- len:长度
print(len(info))# 6 代表key 的个数
2.key :关键词
keys = info.keys()
print(keys)#dict_keys(['name', 'sex', 'age', 'id', 'addr', 'mail'])
3.value :数值
values = info.values()
print(values)#dict_values(['马云', '男', 45, 56164156186, '北京', '122@jingdongcom'])
4.items :项目(关键词加数值)
items = info.items()
print(items)#dict_items([('name', '马云'), ('sex', '男'), ('age', 45), ('id', 56164156186), ('addr', '北京'), ('mail', '122@jingdongcom')])
创建一个班级的分数
from random import randint#导入随机数功能
grades = {'student{}'.format(i):randint(50, 100) for i in range(1,21)}
print(grades)
筛选出高于90分的人
d = {k: v for k,v in grades.items() if v>=90}
print(d)
然后是集合的内容
集合 无序的,元素是唯一的
一般用于元组或列表的元素去重
定义一个集合
set1 = set()
print(type(set1))#<class 'set'>集合
set1 = {1,2,3,4,5,6}
print(type(set1))#<class 'set'>是集合而不是字典
添加 add
set1.add(8)
print(set1)#{1, 2, 3, 4, 5, 6, 8}
删除 remove
set1.remove(1)
print(set1)#{2, 3, 4, 5, 6, 8}删掉了数字1
pop 随机删除集合中的元素
set1.pop()
print(set1)#{3, 4, 5, 6, 8}
discard 存在直接删除,不存在不做任何操作
set1.discard(4)
print(set1)#{3, 5, 6, 8}
set1.discard(9)
print(set1)#{3, 5, 6, 8}