format使用
1.通过位置
print(’{0},{1}’.format(‘zhangsan’,20))
print(’{},{}’.format(‘zhangsan’,20))
print(’{0},{1},{0}’.format(‘zhangsan’,20))
2.通过关键字参数
print("{name},{age}".format(age=28,name=“zhangsan”))
3.通过映射list
list = [“zhangsan”,“中国”]
print(‘my name is {0[0]},from {0[1]}’.format(list))
切片
name = “abcdefg”
name[len(name)-1] g
name[-1] g
name[0:3] abc
name[3:5] de
name[2:] cdefg
name[1:-1] bcdef
name[2:0:-1] cb
name[2👎2] ce
name[-1::-1] gfedcba
name[::-1] gfedcba
下标和切片小结
[:] 提取从开头(默认位置0)到结尾的整个字符串
[start:] 从start 提取到结尾
[:end] 从开头提取到end - 1
[start:end] 从start 提取到end - 1
[start🔚step] 从start 提取到end - 1,每step 个字符提取一个
[::-1]逆序
字符串常见函数
mystr = “Hello world and my love”
结构mystr.find()
find():检测字符串是否存在,并显示出找到第一个的下标位置
不存在则显示-1
rfind():从右往左找
mystr.find(“xxxx”,0,100)从哪到哪
index():查找字符串,不存在报错
rindex():
replace():替换字符
mystr.replace(“xxxx”,“XXXXX”,1),1代表替换一个,不写则替换所有
split():分割
mystr.split(" ")以空格为分隔符{不包含空格},变为列表[]
parttion()
mystr.partition(“and”):以and为切割,包含and,生成的是元组()
rparttion()
splitlines():默认使用换行符切割,为列表[]
startswith():检测以什么开头,正确返回True,错误返回False
endswith():以什么结尾
lower():转换为小写
upper():转换为大写
center():居中显示,自己填写数字,例如(30)会生成30个空格
lstrip():删除左边空格,()不用填写
rstrip():删除右边空格
strip():删除所有空格
count():统计字符出现的次数
空格连接
mystr = " "
name = [“Hello”,“world”]
mystr.join(name)
就会变成字符串’Hello world’
_连接
mystr = “_”
mystr.join(name)
‘Hello_world’
将每个单词大写
mystr.title()
‘Hello World’
列表及循环遍历
name = ['张三','李四','赵武']
print(name[0])
print(name[1])
print(name[2])
也可以
i = 0
while i < len(name):
print(name[i])
i+=1
或
for i in name:
print(i)
列表中允许存放各种数据类型(这一点是Python中独有的)
test = [1,“a”,[1,2],(3,4),{“name”:“张三”}]
想要拿2
print(test[2][1])
列表增删改查
列表插入
#append
name = [‘张三’,‘李四’,‘赵武’]
name.append(xxxx)
print(name)
#extend:将两个列表合在一块,如果用append,会把列表加进去而不是元素
name = [‘张三’,‘李四’,‘赵武’]
a_name = [‘罗友’,‘添乱’]
name.extend(a_name)
print(name)
#insert
name.insert(0,“曹操”)
print(name)
列表删除
#del
names = []
del names[1]
#pop删除最后一个元素
names.pop()
print(names)
#remove根据元素的值进行删除
names.remove(“x”)
print(“names”)
更改元素中的值
names[1]=“xxx”
print(names)
#用户自定义更改内容
temp = input(“请输入您要修改的名字:”)
i = names.index(temp)
names[i]=input(“请输入您要修改为何人:”)
print(names)
查找元素内容
“”"
所谓的查找,就是看看指定的元素是否存在
in 和 not in
in 存在的 那么返回结果为True
not in 不存在 ,返回结果为False
“”"
names = [‘刘备’,‘曹操’,‘孙权’,“黄忠”,“魏延”]
find_name = input(“请输入要查找的姓名:”)
if find_name in names:
print(“已经找到:%s”%find_name)
else:
print(“没有找到:%s”%find_name)
print(names.index(“黄忠”))
排序
a = [1,4,7,8,2,3,9]
a.sort():升序
a.reverse():降序,需要先升序在降序
a.sort(reverse=False):升序
a.sort(reverse=True):降序
school_names = [[‘北京大学’,‘清华大学’],[‘南开大学’,‘天津大学’],[‘贵州大学’,‘青海大学’]]
print(school_names)
我想要获取到贵州大学
print(school_names[2][0])
#一个学校,有三个办公室,现在有8位老师等待分配工位,请编写程序,完成随机分配
import random
names = ['刘备','曹操','孙权',"黄忠","魏延","诸葛亮","庞统","周瑜"]
offices = [[],[],[]]
for name in names:
index = random.randint(0,2)
offices[index].append(name)
i=1
for office in offices:
print("办公室%s:共有%s人"%(i,len(office)))
i+=1
for name in office:
print("%s"%name,end="\t")
print("")
print("="*50)