python代码练习3

冒泡排序法

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("退出通讯录管理系统!")

猜你喜欢

转载自blog.csdn.net/u012420359/article/details/80613967