Python基础小项目

今天给大家写一期特别基础的Python小项目,欢迎大家支持,并给出自己的完善修改
(因为我写的都是很基础的,运行速率不是很好的

目录

  • 1. 地铁票价
    • 题目
    • 程序源码
    • 运行截图
  • 2. 购物车
    • 题目
    • 程序源码
    • 运行截图
  • 3. 名片管理器
    • 题目
    • 程序源码
    • 运行截图
  • 4. 用户交换显示
    • 题目
    • 程序源码
    • 运行截图
  • 总结

1. 地铁票价

题目

地铁票价
地铁交通价格调整为:6公里(含)内3元;6公里至12公里(含)4元;12公里至22公里(含)5元;22公里至32公里(含)6元;32公里以上部分,每增加1元可乘坐20公里。
使用市政交通一卡通刷卡乘坐轨道交通,每自然月内每张卡支出累计满100元以后的乘次,价格给予8折优惠;满150元以后的乘次,价格给予5折优惠;
支出累计达到400元以后的乘次,不再享受打折优惠。

要求:
假设每个月,小明都需要上20天班,每次上班需要来回1次,即每天需要乘坐2次同样路线的地铁;
每月月初小明第一次刷公交卡时,扣款5元;
编写程序,从键盘获取距离,帮小明计算,如果不使用市政交通一卡通的每月总费用,和使用市政交通一卡通的每月总费用。

这个我写的时候用了巨多的if嵌套,效率巨低

程序源码

# 使用巨多if嵌套,效率很低
while True:
    day = 1
    j = 1
    money = 0
    print("== 请输入距离 或 按'q'退出 ==")
    distance = input(">>> ")   # 设置距离
    if distance.isdecimal():
        distance = int(distance)
        if distance > 0:
            print("\n== 是不是一卡通? 'y'是 'n'不是==")
            yikatong = input(">>>[y/n] ")
            if yikatong.lower() == "y":     #把输入的字母变成小写
                while day <= 20:
                    j = 1
                    while j <= 2:
                        if money < 100:
                            if distance <= 6:
                                money += 3
                            if distance > 6 and distance <= 12:
                                money += 4
                            if distance > 12 and distance <= 22:
                                money += 5
                            if distance > 22 and distance <= 32:
                                money += 6
                            if distance > 32:
                                money += ((distance - 33) // 20) + 6 + 1
                        elif money >= 100 and money < 150:
                            if distance <= 6:
                                money += 3 * 0.8
                            if distance > 6 and distance <= 12:
                                money += 4 * 0.8
                            if distance > 12 and distance <= 22:
                                money += 5 * 0.8
                            if distance > 22 and distance <= 32:
                                money += 6 * 0.8
                            if distance > 32:
                                money += (((distance - 33) // 20) + 6 + 1) * 0.8
                        elif money >= 150 and money < 400:
                            if distance <= 6:
                                money += 3 * 0.5
                            if distance > 6 and distance <= 12:
                                money += 4 * 0.5
                            if distance > 12 and distance <= 22:
                                money += 5 * 0.5
                            if distance > 22 and distance <= 32:
                                money += 6 * 0.5
                            if distance > 32:
                                money += (((distance - 33) // 20) + 6 + 1) * 0.5
                        elif money > 400:
                            if distance <= 6:
                                money += 3
                            if distance > 6 and distance <= 12:
                                money += 4
                            if distance > 12 and distance <= 22:
                                money += 5
                            if distance > 22 and distance <= 32:
                                money += 6
                            if distance > 32:
                                money += (((distance - 33) // 20) + 6 + 1)
                        j += 1
                    day += 1
                money += 5
                print("\n你的总花费为:%.4f元\n" % money)
            elif yikatong.lower() == "n":   #把输入的字母变成小写
                while day <= 20:
                    j = 1
                    while j <= 2:
                        if distance <= 6:
                            money += 3
                        if distance > 6 and distance <= 12:
                            money += 4
                        if distance > 12 and distance <= 22:
                            money += 5
                        if distance > 22 and distance <= 32:
                            money += 6
                        if distance > 32:
                            money += ((distance - 33) // 20) + 6 + 1
                        j += 1
                    day += 1
                money += 5
                print("你的总花费为:%.4f元" % money)
            else:
                print("\nXX 输入有误请重新输入 XX")
        else:
            print("必须大于0,请从新输入")
    elif distance.lower() == "q":
        break
    else:
        print("必须是数字,而且大于0,请从新输入")

运行截图

在这里插入图片描述

2. 购物车

题目

购物车

如下商品列表
goods = [
{“name”: “电脑”, “price”: 1000},
{“name”: “Iphone”, “price”: 1200},
{“name”: “豪车”, “price”: 3280},
{“name”: “别墅”, “price”: 6500},
{“name”: “游艇”, “price”: 5800},
{“name”: “美女”, “price”: 2500},
]

完成以下要求:
要求用户输入总资产,列入:15000
判断驶入的金额能否购买价格最低的商品,如果不能让用户重新输入
显示商品列表,让用户根据序号选择商品,加入购物车
查看购物车,购物车内如果有相同的产品不要重复显示,以产品后面加数字形式表示此产品在购物车有两个或两个以上
结算时,判断购物车是否为空,如果为空则提示填充购物车
可以让用户删除购物车内的产品,或清空购物车
结算时如果余额不足,则提示账户余额不足

程序源码


goods = [
    {"name": "电脑", "price": 1000},
    {"name": "Iphone", "price": 1200},
    {"name": "豪车", "price": 3280},
    {"name": "别墅", "price": 6500},
    {"name": "游艇", "price": 5800},
    {"name": "美女", "price": 2500},
]
while True:
    q = 0
    money = []
    shopping_cart = []
    for i, v in enumerate(goods, 1):
        money.append(v["price"])
    print("请输入您的总金额")
    salary = input(">>> ")
    if salary.isdecimal():  # 判断只让输入十进制数字
        salary = int(salary)
        money.sort()
        if salary <= 0:
            print("\n你玩我呢,没钱还来买\n")
            print("直接退出")
            break
        elif salary > 0 and salary < money[0]:  # 判断输入的金额能否购买价格最低的商品
            print("你的金额买不起任何一个东西\n")
        elif salary > money[0]:
            while True:
                all_price = 0
                print("\33[36;1m商品列表\33[1m".center(40, "="))
                for i, v in enumerate(goods, 1):
                    print("%d %s \33[34;1m%d\33[1m" % (i, v["name"].ljust(4, " "), v["price"]))
                print("请输入产品\33[31;1m序号\33[1m添加到购物车、返回上一层请按 \33[31;1mP \33[1m、完全退出请按 \33[31;1mQ\33[1m")
                seq_num = input(">>> ")
                if seq_num.lower() == "p":
                    break
                if seq_num.lower() == "q":
                    q = 1
                    break
                if seq_num.isdecimal():
                    seq_num = int(seq_num)
                    if seq_num > 0 and seq_num <= len(goods):
                        shopping_cart.append(goods[seq_num - 1])
                        for y in shopping_cart:
                            all_price += y["price"]
                        print("\33[33;1m%s\33[1m 已添加到购物车\n" % (goods[seq_num - 1]["name"]))
                        while True:
                            print("继续添加产品请按 \33[31;1mC\33[1m 、结算请按 \33[31;1mB\33[1m 、查看购物车请按 \33[31;1mS\33[1m 、完全退出请按 \33[31;1mQ\33[1m")
                            final_cho = input(">>> ")
                            if final_cho.lower() == "c":
                                break
                            elif final_cho.lower() == "b":
                                while True:
                                    print("您的余额为:\33[34;1m%d\33[1m 您购买的商品总价为:\33[34;1m%d\33[1m 确定购买吗? 确定 \33[31;1mY\33[1m 取消 \33[31;1mN\33[1m" % (salary, all_price))
                                    confirm_bill = input(">>> ")
                                    if confirm_bill.lower() == "y":
                                        if shopping_cart != []:
                                            if salary >= all_price:
                                                salary = salary - all_price
                                                print("购买成功\n")
                                                all_price = 0
                                                shopping_cart = []
                                                break
                                            elif salary < all_price:
                                                print("-_-!余额不足\n")
                                                break
                                        elif shopping_cart == []:
                                            print("购物车空空如也,填充后再来吧\n")
                                            break
                                    elif confirm_bill.lower() == "n":
                                        break
                                    else:
                                        print("输入有误,请重新输入\n")
                            elif final_cho.lower() == "s":
                                while True:
                                    print("\33[35;1m购物车\33[1m".center(40, "="))
                                    temp_cart = []
                                    for y in shopping_cart:
                                        if y not in temp_cart:
                                            temp_cart.append(y)
                                    for m, z in enumerate(temp_cart, 1):
                                        print("%d %s \33[34;1m%d\33[1m %d个" % (m, z["name"].ljust(4, " "), z["price"], shopping_cart.count(z)))
                                    print("\n购物车商品总金额为:\33[34;1m%d\33[1m" % all_price)
                                    print("您的余额为:\33[34;1m%d\33[1m" % salary)
                                    print("按\33[31;1m序号\33[1m可删除商品 、继续请按 \33[31;1mC\33[1m 、清空购物车请按 \33[31;1mE\33[1m")
                                    ctrl_shop_cart = input(">>> ")
                                    if ctrl_shop_cart.lower() == "c":
                                        break
                                    elif ctrl_shop_cart.lower() == "e":
                                        all_price = 0
                                        shopping_cart = []
                                        print("以清空购物车")
                                        break
                                    elif ctrl_shop_cart.isdecimal():
                                        ctrl_shop_cart = int(ctrl_shop_cart)
                                        if ctrl_shop_cart > 0 and ctrl_shop_cart <= len(temp_cart):
                                            all_price = all_price - temp_cart[ctrl_shop_cart - 1]["price"]
                                            shopping_cart.reverse()
                                            shopping_cart.remove(temp_cart[ctrl_shop_cart - 1])
                                            shopping_cart.reverse()
                                            print("删除成功\n")
                                        else:
                                            print("输入超出范围,请重新输入")
                                    else:
                                        print("输入有误,请重新输入\n")
                            elif final_cho.lower() == "q":
                                q = 1
                                break
                            else:
                                print("输入有误,请重新输入\n")
                    else:
                        print("数字超出范围,请重新输入\n")
                else:
                    print("请输入数字\n")
                if q == 1:
                    break

    else:
        print("\n只能输入数字,请重新输入\n")

    if q == 1:
        break

运行截图

在这里插入图片描述
在这里插入图片描述

3. 名片管理器

题目

名片管理器
需要完成的基本功能:
添加名片
删除名片
修改名片
查询名片
退出系统
程序运行后,除非选择退出系统,否则重复执行功能。

程序源码

print("=" * 20)
print("==\t学生名片管理系统")
print("1:添加名片")
print("2:删除名片")
print("3:修改名片")
print("4:查找名片")
print("5:显示名片")
print("6:退出")
print("=" * 20)
all_li = []
while True:
    print("\n==请输入序号==")
    first_num = input(">>> ")
    if first_num.isdecimal():
        first_num = int(first_num)
        if first_num == 1:
            dic_one = {}
            print("请输入要添加的名字")
            name = input(">>> ")
            print("请输入%s的年龄" % name )
            age = input(">>>")
            print("请输入%s的学号" % name)
            stu_num = input(">>> ")
            print("请输入%s的微信" % name)
            weixin = input(">>> ")

            dic_one["name"] = name
            dic_one["age"] = age
            dic_one["stu_num"] = stu_num
            dic_one["weixin"] = weixin
            all_li.append(dic_one)
            print("==添加成功==")
        elif first_num == 2:
            while True:
                print("\n==请输入要删除的名字==")
                del_name = input(">>> ")
                count = 0
                f = 0
                for i in all_li:
                    count += 1
                    if i["name"] == del_name:
                        count -= 1
                        f = 1
                        break
                if f == 0:
                    print("找不到你要找的名字,请重新输入")
                    continue
                del all_li[count]
                print("删除成功")
                break
        elif first_num == 3:
            while True:
                print("请输入要修改的名字")
                mod_name = input(">>> ")
                count = 0
                f = 0
                for i in all_li:
                    count += 1
                    if i["name"] == mod_name:
                        count -= 1
                        f = 1
                if f == 0:
                    print("找不到你要找的名字,请重新输入")
                    continue
                print("\n==名字已找到,想修改对应此名的哪项选项==")
                print("1:名字 2:年龄 3:学号 4:微信")
                while True:
                    print("== 请输入对应的序号 ==")
                    mod_num = input(">>> ")
                    if mod_num.isdecimal():
                        mod_num = int(mod_num)
                        if mod_num == 1:
                            print("\n请输入你要修改的名字")
                            mod_name2 = input(">>> ")
                            all_li[count]["name"] = mod_name2
                            print("修改成功")
                            break
                        if mod_num == 2:
                            print("\n请输入%s的新年龄" % all_li[count]["name"])
                            mod_age = input(">>> ")
                            all_li[count]["age"] = mod_age
                            print("修改成功")
                            break
                        if mod_num == 3:
                            print("\n请输入%s的新学号" % all_li[count]["name"])
                            mod_stu_num = input(">>> ")
                            all_li[count]["stu_num"] = mod_stu_num
                            print("修改成功")
                            break
                        if mod_num == 3:
                            print("\n请输入%s的新微信" % all_li[count]["name"])
                            mod_weixin = input(">>> ")
                            all_li[count]["weixin"] = mod_weixin
                            print("修改成功")
                            break
                    else:
                        print("输入有误,重新输入")
                break
        elif first_num == 4:
            while True:
                print("\n==请输入要查找的名字==")
                c = 0
                find_name = input(">>> ")
                for i in all_li:
                    if i["name"] == find_name:
                        print("名字\t\t年龄\t\t学号\t\t微信")
                        print("%s\t\t%s\t\t%s\t\t%s"%(i["name"],i["age"],i["stu_num"],i["weixin"]))
                    else:
                        print("找不到你要找的名字请重新输入")
                        c = 1
                if c == 1:
                    continue
                break
        elif first_num == 5:
            result = "名字\t年龄\t学号\t微信"
            print(result.expandtabs(20))
            for i in all_li:
                result2 = "%s\t%s\t%s\t%s"%(i["name"],i["age"],i["stu_num"],i["weixin"])
                print(result2.expandtabs(20))
        elif first_num == 6:
            break
        else:
            print("输入超出范围,请重新输入")
    else:
        print("输入有误,请重新输入")

运行截图

在这里插入图片描述

4. 用户交换显示

题目

比如有如下形式的字典

city = {“北京”: {“朝阳”: [“望京”, “大望路”], “昌平”: [“沙河”, “小昌平”]},
“延边”: {“延吉”: [“北大”, “铁南”], “龙井”: [“图们”, “珲春”]},
“上海”: {“新上海”: [“浦东”, “浦西”], “老上海”: [“上海滩”, “不夜城”]}}
完成以下要求:
允许用户增加内容
允许用户查看某一个级别的内容
即可查看内容也可修改内容
也可删除内容
每一级的循环嵌套必须包含返回上一层,也包含全部退出

程序源码

city = {"北京": {"朝阳": ["望京", "大望路"], "昌平": ["沙河", "小昌平"]},
        "延边": {"延吉": ["北大", "铁南"], "龙井": ["图们", "珲春"]},
        "上海": {"新上海": ["浦东", "浦西"], "老上海": ["上海滩", "不夜城"]}}

while True:
    p = 0
    q = 0
    print("\33[35;1m一级列表\33[1m".center(50,"="))
    for i,v in enumerate(city,1):
        print(i,v)
    print("添加请按\33[31;1m A\33[1m 、查看请按\33[31;1m 序号\33[1m 、退出请按\33[31;1m Q\33[1m")
    init_cho = input(">>> ")
    if init_cho.lower() == "q":
        break
    elif init_cho.isdecimal():
        init_cho = int(init_cho)
        if init_cho > 0 and init_cho <= len(city):
            while True:
                first_li = []
                for i, v in enumerate(city, 1):
                    first_li.append(v)
                print("删除\33[31;1m%s\33[1m请按\33[31;1m Y\33[1m 、修改请按\33[31;1m M\33[1m 、返回上一级请按\33[31;1m P\33[1m 、进入下一级请按\33[31;1m N\33[1m 、全部退出请按\33[31;1m Q\33[1m"% first_li[init_cho-1])
                deci_cho = input(">>> ")
                if deci_cho.lower() == "y":
                    del city[first_li[init_cho-1]]
                    print("删除成功,自动跳回上一级")
                    break
                elif deci_cho.lower() == "q":
                    q = 1
                    break
                elif deci_cho.lower() == "p":
                    break
                elif deci_cho.lower() == "m":
                    print("您要改成什么名字?")
                    mod_sheng_name = input(">>>")
                    if mod_sheng_name.isalpha():
                        city[mod_sheng_name] = city.pop(first_li[init_cho-1])
                        print("修改成功")
                elif deci_cho.lower() == "n":
                    while True:
                        p2 = 0
                        second_li = []
                        print("\33[34;1m二级列表\33[1m".center(50,"="))
                        for x, y in enumerate(city[first_li[init_cho-1]], 1):
                            print(x, y)
                            second_li.append(y)
                        print("请按\33[31;1m序号\33[1m选择、返回上一级请按\33[31;1m P\33[1m 、全部退出请按\33[31;1m Q\33[1m")
                        sec_cho = input(">>> ")
                        if sec_cho.lower() == "p":
                            p = 1
                            break
                        elif sec_cho.lower() == "q":
                            q = 1
                            break
                        elif sec_cho.isdecimal():
                            sec_cho = int(sec_cho)
                            if sec_cho > 0 and sec_cho <= len(city[first_li[init_cho - 1]]):
                                while True:
                                    print("删除\33[31;1m%s\33[1m请按\33[31;1m Y\33[1m 、修改请按\33[31;1m M\33[1m 、返回上一级请按\33[31;1m P\33[1m 、进入下一级请按\33[31;1m N\33[1m 、全部退出请按\33[31;1m Q\33[1m"% second_li[sec_cho-1])
                                    third_cho = input(">>> ")
                                    if third_cho.lower() == "y":
                                        del city[first_li[init_cho-1]][second_li[sec_cho-1]]
                                        print("删除成功,自动跳回上一级")
                                        break
                                    elif third_cho.lower() == "m":
                                        print("您要改成什么名字?")
                                        mod_shi_name = input(">>>")
                                        city[first_li[init_cho - 1]][mod_shi_name] = city[first_li[init_cho - 1]].pop(second_li[sec_cho-1])
                                        print("修改成功,自动跳回上一级")
                                        break
                                    elif third_cho.lower() == "p":
                                        break
                                    elif third_cho.lower() == "q":
                                        q = 1
                                        break
                                    elif third_cho.lower() == "n":
                                        while True:
                                            print("\33[36;1m三级列表\33[1m".center(50, "="))
                                            for t, n in enumerate(city[first_li[init_cho - 1]][second_li[sec_cho - 1]], 1):
                                                print(t, n)
                                            print("请按\33[31;1m序号\33[1m选择删除或修改、添加请按 \33[31;1mA\33[1m 、返回上一级请按\33[31;1m P\33[1m 、全部退出请按\33[31;1m Q\33[1m")
                                            last_cho = input(">>> ")
                                            if last_cho.isdecimal():
                                                last_cho = int(last_cho)
                                                while True:
                                                    if last_cho > 0 and last_cho <= len(city[first_li[init_cho - 1]][second_li[sec_cho - 1]]):
                                                        print("删除请按 \33[31;1mD\33[1m 、修改请按 \33[31;1mM\33[1m 、返回上一级请按\33[31;1m P\33[1m 、全部退出请按\33[31;1m Q\33[1m")
                                                        one_more_cho = input(">>> ")
                                                        if one_more_cho.lower() == "d":
                                                            del city[first_li[init_cho - 1]][second_li[sec_cho - 1]][last_cho - 1]
                                                            print("删除成功,自动跳回上一层")
                                                            break
                                                        elif one_more_cho.lower() == "m":
                                                            print("您要改成什么名字?")
                                                            mod_last = input(">>> ")
                                                            city[first_li[init_cho - 1]][second_li[sec_cho - 1]][last_cho - 1] = mod_last
                                                            print("修改成功,自动跳回上一层")
                                                            break
                                                        elif one_more_cho.lower() == "p":
                                                            break
                                                        elif one_more_cho.lower() == "q":
                                                            q = 1
                                                            break
                                                        else:
                                                            print("输入有误,请重新输入\n")
                                                    else:
                                                        print("输入超出范围,请重新输入\n")
                                            elif last_cho.lower() == "a":
                                                print("请输入添加的名")
                                                add_last = input(">>> ")
                                                city[first_li[init_cho - 1]][second_li[sec_cho - 1]].append(add_last)
                                                print("添加成功")
                                            elif last_cho.lower() == "p":
                                                p2 = 1
                                                break
                                            elif last_cho.lower() == "q":
                                                q = 1
                                                break
                                            if q == 1:
                                                break
                                    else:
                                        print("输入有误,请重新输入\n")
                                    if q == 1:
                                        break
                                    if p2 == 1:
                                        break
                            else:
                                print("输入超出范围,请重新输入\n")
                        else:
                            print("输入有误请重新输入\n")
                        if q == 1:
                            break
                if q == 1:
                    break
                if p == 1:
                    break
        else:
            print("输入超出范围,请重新输入\n")
    elif init_cho.lower() == "a":
        while True:
            print("\33[36;1m添加信息\33[1m".center(50, "="))
            print("请输入省/直辖市、返回上一级请按\33[31;1m P\33[1m 、全部退出请按\33[31;1m Q\33[1m")
            add_sheng = input(">>> ")
            if add_sheng.lower() == "p":
                break
            elif add_sheng.lower() == "q":
                q = 1
                break
            elif city.get(add_sheng,0) == 0:
                city.update({add_sheng:{}})
            print("添加成功\n")
            print("请输入市/州、返回上一级请按\33[31;1m P\33[1m 、全部退出请按\33[31;1m Q\33[1m")
            add_shi = input(">>> ")
            if add_shi.lower() == "p":
                break
            elif add_shi.lower() == "q":
                q = 1
                break
            elif city[add_sheng].get(add_shi,0) == 0:
                city[add_sheng].update({add_shi:[]})
                print("添加成功\n")
                while True:
                    print("请输入县/街道、可多次写入、返回上一级请按\33[31;1m P\33[1m 、全部退出请按\33[31;1m Q\33[1m")
                    add_xian = input(">>> ")
                    if add_xian.lower() == "p":
                        break
                    if add_xian.lower() == "q":
                        q = 1
                        break
                    city[add_sheng][add_shi].append(add_xian)
                    print("添加成功")
            if q == 1:
                break
    elif init_cho == "5":
        print(city)
    else:
        print("输入有误,请重新输入\n")
    if q == 1:
        break

运行截图

在这里插入图片描述

总结

目前这四个小程序写的都是很简单的,用基础的循环嵌套,实现基础的效果,希望对大家有所帮助,同时也是欢迎大家交流探讨,继续优化完善这个程序。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/70524.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

opencv实战项目 实现手势跟踪并返回位置信息(封装调用)

OpenCV 是一个基于 Apache2.0 许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库&#xff0c;可以运行在Linux、Windows、Android和Mac OS操作系统上。 需要提前准备opencv 和 mediapipe库 pip --default-timeout5000 install -i https://pypi.tuna.tsi…

nodejs+vue+elementui社区流浪猫狗救助救援网站_4a4i2

基于此背景&#xff0c;本研究结合管理员即时发布流浪猫狗救助救援信息与用户的需求&#xff0c;设计并实现了流浪猫狗救助救援网站。系统采用B/S架构&#xff0c;java语言作为主要开发语言&#xff0c;MySQL技术创建和管理数据库。系统主要分为管理员和用户两大功能模块。通过…

【Linux取经路】进程的奥秘

文章目录 1、什么是进程&#xff1f;1.1 自己写一个进程 2、操作系统如何管理进程&#xff1f;2.1 描述进程-PCB2.2 组织进程2.3 深入理解进程 3、Linux环境下的进程3.1 task_struct3.2 task_struct内容分类3.3 组织进程3.4 查看进程属性 4、结语 1、什么是进程&#xff1f; 在…

FreeRTOS

FreeRTOS官网&#xff1a;www.freertos.org 调度 实时操作系统 特点&#xff1a;如果有一个任务需要执行&#xff0c;实时操作系统会马上&#xff08;在较短时间内&#xff09;执行该任务&#xff0c;不会有较长的延时。这种特性保证了各个任务的及时执行。 实现方式&#…

web前端之CSS操作

文章目录 一、CSS操作1.1 html元素的style属性1.2 元素节点的style属性1.3 cssText属性 二、事件2.1 事件处理程序2.1.1 html事件2.1.2 DOM0事件&#xff08;适合单个事件&#xff09;2.1.3 DOM2事件&#xff08;适合多个事件&#xff09; 2.2 事件之鼠标事件2.3 事件之Event事…

详解Kafka分区机制原理|Kafka 系列 二

Kafka 系列第二篇&#xff0c;详解分区机制原理。为了不错过更新&#xff0c;请大家将本号“设为星标”。 点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;优质资源及时送达 上一篇文章介绍了 Kafka 的基本概念和术语&#xff0c;里面有个概念是 分区(Part…

计算机竞赛 opencv python 深度学习垃圾图像分类系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; opencv python 深度学习垃圾分类系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这是一个较为新颖的竞…

pytest结合 allure 打标记之的详细使用

前言 前面我们提到使用allure 可以生成漂亮的测试报告&#xff0c;下面就Allure 标记我们做详细介绍。 allure 标记 包含&#xff1a;epic&#xff0c;feature, story, title, testcase, issue, description, step, serverity, link, attachment 常用的标记 allure.feature…

Mysql中如果建立了索引,索引所占的空间随着数据量增长而变大,这样无论写入还是查询,性能都会有所下降,怎么处理?

索引所占空间的增长确实会对MySQL数据库的写入性能和查询性能造成影响&#xff0c;这主要是由于索引数据过多时会导致磁盘I/O操作变得非常频繁&#xff0c;从而使性能下降。为此&#xff0c;可以采取以下几种方式来减缓这种影响&#xff1a; 1. 限制索引的大小&#xff1a;可以…

PHP8定义字符串的方法-PHP8知识详解

字符串&#xff0c;顾名思义&#xff0c;就是将一堆字符串联在一起。字符串简单的定义方法是使用英文单引号&#xff08; &#xff09;或英文双引号&#xff08;" "&#xff09;包含字符。另外&#xff0c;还可以使用定界符定义字符串。本文还介绍了字符串的连接符。…

数据结构和算法三(排序)

列表排序 排序类型&#xff1a; 一、冒泡排序&#xff1a; 屏幕录制2023-07-25 13.05.12 def bubble_sort(li):exchangeFalseif len(li)<1:return lifor i in range(len(li)-1):for j in range(len(li)-i-1):if li[j]>li[j1]:li[j],li[j1]li[j1],li[j]print(li)exchangeT…

mac harbor的安装

harbor的安装 为什么要整这个呢&#xff0c;因为我在学习k8s&#xff0c;但是需要一个自己的镜像仓库。于是&#xff0c;最开始想到的就是在本地直接部署一个&#xff0c;还比较安全、快速。 直接下载了官方的项目&#xff0c;运行脚本发现出了异常&#xff0c;这种异常我已经…

项目知识点记录

1.使用druid连接池 使用properties配置文件&#xff1a; driverClassName com.mysql.cj.jdbc.Driver url jdbc:mysql://localhost:3306/book?useSSLtrue&setUnicodetrue&charsetEncodingUTF-8&serverTimezoneGMT%2B8 username root password 123456 #初始化链接数…

LiveNVR监控流媒体Onvif/RTSP功能-视频流水印如何叠加视频水印叠加动态图片叠加视频流时间示例

LiveNVR视频流水印如何叠加视频水印叠加动态图片叠加视频流时间示例 1、介绍2、摄像头OSD设置水印3、前端页面叠加4、视频流水印4.1、图片水印示例4.2、时间戳水印示例 5、RTSP/HLS/FLV/RTMP拉流Onvif流媒体服务 1、介绍 监控视频平台播放视频监控的时候&#xff0c;除了满足正…

SpringMVC的架构有什么优势?——控制器(三)

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

CentOS 7中,配置了Oracle jdk,但是使用java -version验证时,出现的版本是OpenJDK,如何解决?

1.首先&#xff0c;检查已安装的jdk版本 sudo yum list installed | grep java2.移除、卸载圈红的系统自带的openjdk sudo yum remove java-1.7.0-openjdk.x86_64 sudo yum remove java-1.7.0-openjdk-headless.x86_64 sudo yum remove java-1.8.0-openjdk.x86_64 sudo yum r…

STM32单片机蓝牙APP宠物自动喂食器定时语音提醒喂食系统设计

实践制作DIY- GC00162---蓝牙APP宠物自动喂食器 一、功能说明&#xff1a; 基于STM32单片机设计---蓝牙APP宠物自动喂食器 二、功能说明&#xff1a; STM32F103C系列最小系统板LCD1602显示器DS1302时钟模块5个按键语音播报模块ULN2003步进电机模块LED灯板HC-05蓝牙模块&#x…

XML方式AOP快速入门XML方式AOP配置详解

目录 1.XML方式AOP快速入门 1&#xff1a;导入AOP相关坐标 2&#xff1a;准备目标类&#xff0c;准备增强类&#xff0c;并配置给Spring管理 3&#xff1a;配置切点表达式&#xff08;那些方法要被增强&#xff09; 4&#xff1a;配置织入&#xff08;切点被哪些方法增强&…

C++初阶语法——类和对象

前言&#xff1a;C语言中的结构体&#xff0c;在C有着更高位替代者——类。而类的实例化叫做对象。 本篇文章不定期更新扩展后续内容。 目录 一.面向过程和面向对象初步认识二.类1.C中的结构体2.类的定义类的两种定义方式 3.类的访问限定符及封装访问限定符说明 4.类的实例化对…

Python中的诡异事:不可见字符!

文章目录 前言1. 起因2. 调查3. 高能4. 释惑 前言 今天分享一件很诡异的事情&#xff0c;我写代码的时候遇到了不可见的字符&#xff01;&#xff01;&#xff01; 1. 起因 今天在使用pipreqs导出项目中所依赖的库时突然报错了&#xff1a; pipreqs . --encodingutf-8 --forc…