day02_final

1、功能要求:

用户输入河北,则打印河北省下的市,用户输入市,则显示该河北省的这个市下的县

## 功能:
北京: 昌平、海淀
河北: 邯郸、石家庄
山西: 太原、大同

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
dic = {
    "河北": {
        "石家庄": ["鹿泉", "藁城", "元氏"],
        "邯郸": ["永年", "涉县", "磁县"],
    },
    "山西": {
        "太原":["清徐县","平遥县","交城县"],
        "大同":["大同县","天镇县","灵丘县"]
    },
    "北京": {
        "昌平":["沙河","回龙观","龙泽"],
        "海淀":["中关村","四季青","知春路"]
    },
}

while True:
    city=input("请输入想要查看的city:")
    print(city)
    if city not in dic:
        print("输入错误,请重新输入:")
        continue
    print(dic[city])
    xiancheng=input("请输入想要查看的xiancheng:")
    if xiancheng not in dic[city]:
        print("输入错误,请重新输入")
        continue
    print(dic[city][xiancheng])

 2、功能要求:

购物车

要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]

#!/usr/bin/env python3
# -*- conding:utf-8 -*-

shoping=[]

goods = [
    {"name": "电脑", "price": 1999},
    {"name": "鼠标", "price": 10},
    {"name": "游艇", "price": 20},
    {"name": "美女", "price": 998},
]

while True:
    salary=input('Plz input your salary : ')
    if salary.isdigit():
        int(salary)
        break
    else:
        continue
while True:
    print(goods)
    for index , i in enumerate(goods):           #enumerate函数遍历索引及元素。index作为商品编号,i作为商品元素.
        print(index , ',' , i["name"],i["price"] )
    choice = input('请选择要购买的商品编号:')
    salary=int(salary)
    if choice.isdigit():
        choice=int(choice)
        if choice >=0 and choice < len(goods):
            p=goods[choice]
            # print(p)
            if salary >=p['price']:
                salary -= p["price"]
                shoping.append(p)
                print("Added \033[32;1m[%s]\033[0m into you shopping cars,and you current balance is \033[31;1m%s\033[0m " % (
                    p['name'], salary))
            else:
                print("你的钱不够")
                chongzhi=input('是否需要充值 Y/N:')
                if chongzhi == "Y" or chongzhi == 'y' :
                    salary_chongzhi=input("请输入充值的金额:")
                    if salary_chongzhi.isdigit():
                        salary_chongzhi=int(salary_chongzhi)
                    salary=salary_chongzhi+salary
                else:
                    continue
    elif choice == 'delete':
        for index, i in enumerate(shoping):
            print(index, '.', i['name'], i['price'])
        delete = input('请输入你想要删除的商品编号:')
        if delete.isdigit():
            delete=int(delete)
            # if delete >=0 and delete < len(shoping):
            salary+=shoping[delete]['price']
            shoping.pop(delete)
    elif choice == 'shop':
        print(shoping)

    elif choice=="quit":
        print("你购买的商品列表:",shoping)
        exit()

 

 

转载于:https://www.cnblogs.com/zhangray/p/7530381.html

为啥只连接不运行我的数据啊,我数据库第一次运行没数据阿,咋整 2025-07-31 08:47:01,432 - Colion.DatabaseManager - INFO - 已连接到数据库: d:\Programs\新框架\Colion_frame\Colion\data\colion.db (线程: Dummy-4) 2025-07-31 08:47:01,436 - Colion.model.output_plan - INFO - 从 daily_output_plan_final 获取到 0 条记录。 import os import sqlite3 from datetime import datetime import logging from pathlib import Path from Colion.model.database.db_manager import DatabaseManager # 修复导入问题 from Colion.core.path_helper import get_application_path, get_project_root logger = logging.getLogger(__name__) class OutputPlanModel: def __init__(self, db_manager: DatabaseManager = None): self.db_manager = db_manager if db_manager else DatabaseManager() self.sql_script_path = os.path.join(get_project_root(), 'process_daily_output.sql') self._ensure_final_table_exists() def _ensure_final_table_exists(self): """ 确保 daily_output_plan_final 表存在。 这个表结构需要与 process_daily_output.sql 中 INSERT INTO 的列保持一致。 """ create_table_sql = """ CREATE TABLE IF NOT EXISTS daily_output_plan_final ( "批次" TEXT, "指令" TEXT, "线体" TEXT, "单板代码" TEXT, "单板名称" TEXT, "计划数量" REAL, "产出数量" REAL, "剩余数量" REAL, "计划开始时间" TEXT, "计划结束时间" TEXT, "实际开始时间" TEXT, "修正后计划开始时间" TEXT, "修正后计划结束时间" TEXT, "主工序" TEXT, "工序序号" INTEGER, "入库工序" TEXT, "入库时间" TEXT, "产品大类" TEXT, "工厂" TEXT, "责任人" TEXT, "day_1_output" REAL, "day_2_output" REAL, "day_3_output" REAL, "day_4_output" REAL, "day_5_output" REAL, "day_6_output" REAL, "day_7_output" REAL ); """ try: self.db_manager.execute(create_table_sql) logger.info("daily_output_plan_final 表已存在或已成功创建。") except Exception as e: logger.error(f"创建 daily_output_plan_final 表失败: {e}") raise def process_and_save_daily_output_plan(self): """ 读取 SQL 脚本并执行,生成产出计划数据到 daily_output_plan_final 表。 """ if not os.path.exists(self.sql_script_path): logger.error(f"SQL 脚本文件未找到: {self.sql_script_path}") raise FileNotFoundError(f"SQL script not found at {self.sql_script_path}") try: with open(self.sql_script_path, 'r', encoding='utf-8') as f: sql_script = f.read() logger.info(f"开始执行 SQL 脚本: {self.sql_script_path}") self.db_manager.execute_script(sql_script) logger.info("产出计划数据已成功生成并保存到 daily_output_plan_final 表。") return True except Exception as e: logger.error(f"执行 SQL 脚本失败: {e}", exc_info=True) return False def get_output_plan_data(self, filters: dict = None): """ 从 daily_output_plan_final 表获取产出计划数据。 """ query = "SELECT * FROM daily_output_plan_final WHERE 1=1" params = [] if filters: if 'factory' in filters and filters['factory']: query += " AND 工厂 = ?" params.append(filters['factory']) if 'line' in filters and filters['line']: query += " AND 线体 = ?" params.append(filters['line']) if 'item_no' in filters and filters['item_no']: query += " AND 单板代码 LIKE ?" params.append(f"%{filters['item_no']}%") if 'start_date' in filters and filters['start_date']: query += " AND 修正后计划开始时间 >= ?" params.append(filters['start_date']) if 'end_date' in filters and filters['end_date']: query += " AND 修正后计划结束时间 <= ?" params.append(filters['end_date']) try: data = self.db_manager.query(query, params) logger.info(f"从 daily_output_plan_final 获取到 {len(data)} 条记录。") return data except Exception as e: logger.error(f"获取产出计划数据失败: {e}", exc_info=True) return []
08-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值