冒泡排序法
a=[23,626,2672,234,263,2345,452,262346,245,243,245,263,245]
def px(list1,b=1):
for j in range(1, len(list1)):
for i in range(len(list1) - j):
if list1[i] < list1[i + 1] and b==1:
list1[i], list1[i + 1] = list1[i + 1], list1[i]
if list1[i] > list1[i + 1] and b==0:
list1[i], list1[i + 1] = list1[i + 1], list1[i]
return list1
print(px(a))
快速排序法
def quickSort(L, low, high):
i,j = low,high
if i >= j:
return L
key = L[i]
while i < j:
while i < j and L[j] >= key:
j = j-1
L[i] = L[j]
while i < j and L[i] <= key:
i = i+1
L[j] = L[i]
L[i] = key
quickSort(L, low, i-1)
quickSort(L, j+1, high)
return L
a=[34,16,12,17,324,236,784,2732,2446,32,24526,23445]
print(quickSort(a,0,len(a)-1))
列表综合练习
score = []
for i in [68,87,92,100,76,88,54,89,76,61]:
score.append(i)
print("列表中第三个元素的值:",score[2])
print("列表中第1~6个元素的值:",score[:6])
score.insert(2,59)
num = 76
print("列表中76出现的次数:",score.count(num))
print("列表中是否有num值的成绩:",num in score)
print("列表中满分成绩的位置:",score.index(100))
score[score.index(59)]+=1
del score[0]
print("列表中元素数量:",len(score))
score.sort()
print("最低分:",score[0],"最高分:",score[-1])
score.reverse()
print(score.pop())
score.append(88)
print(score)
score.remove(88)
score1 = [80,61]
score2 = [71,95,82]
score2 = score1 + score2
print(score2)
score1 = [80,61]
score2 = score1*5
print(score2)
通讯录管理系统
import json
import os
import re
ui = """
=======通讯录管理系统=======
1.增加姓名和手机号
2.删除姓名
3.修改手机
4.查询所有用户
5.根据姓名查找手机号
6.退出
==========================
"""
txl={"name":[],"sjh":[]}
def dq():
with open('txl.json', 'r') as f:
return json.load(f)
def xr():
with open('txl.json', 'w') as f:
json.dump(txl, f)
def 增加姓名和手机号(name,sjh):
if re.match(".{1,18}",name)!=None and len(sjh)<=18 \
and name.isdigit()==False and name not in txl["name"]:
if re.match("[1]\d{10}",sjh)!=None and len(sjh)==11:
txl["name"].append(name)
txl["sjh"].append(sjh)
xr()
return "成功添加"+name+"的通讯方式"
else:
return "手机号格式不正确"
else:
return "姓名输入错误或者重复"
def 查询通讯录(b=True):
print("通讯录:")
for i, j in enumerate(txl["name"]):
if b==True:
print(i, j, "号码:" + txl["sjh"][i])
else:
print(i, j)
def 查询姓名(name):
if name in txl["name"]:
inpa=txl["name"].index(name)
return inpa
if name.isdigit():
name=int(name)
if len(txl)>name:
return name
else:
return -1
return -1
def 删除姓名():
查询通讯录(False)
inpa = input("请输入要删除的姓名(可输入编号):")
inpa = 查询姓名(inpa)
if inpa != -1:
str=txl["name"][inpa]
del txl["name"][inpa]
del txl["sjh"][inpa]
xr()
return "已经删除"+str+"的联系方式"
if inpa == -1:
return "姓名或编号不存在!"
return "输入错误!"
def 修改手机():
查询通讯录()
inpa = input("请输入要修改手机号的姓名(可输入编号):")
inpc = 查询姓名(inpa)
if inpc==-1:
return "未找到此人!"
else:
print("姓名:"+txl["name"][inpc],"手机号:"+txl["sjh"][inpc])
inpb = input("请输入新手机号:")
if re.match("[1]\d{10}", inpb) != None and len(inpb)==11:
txl["sjh"][inpc]=inpb
xr()
return "成功修改"+txl["name"][inpc]+'的手机号'
else:
return "输入的手机号格式不正确!"
def 查询手机号(name):
if name in txl["name"]:
return "姓名:"+name+" 手机号:"+txl["sjh"][txl["name"].index(name)]
else:
return "未找到此联系人!"
if os.path.exists("txl.json"):
txl = dq()
else:
xr()
while True:
print(ui,end="")
ina = input("请选择:")
if ina=="1":
print(增加姓名和手机号(input("输入姓名:"),input("输入手机号:")))
if ina=="2":
print(删除姓名())
if ina=="3":
print(修改手机())
if ina=="4":
查询通讯录()
input("按任意键返回首页")
if ina=="5":
print(查询手机号(input("请输入要查询的姓名:")))
if ina=="6":
break
xr()
print("退出通讯录管理系统!")