python使用笔记14--商品管理小练习
1 import json
2 import pymysql
3 IP = '127.0.0.1'
4 PORT = 3306
5 USER_NAME = 'root'
6 PASSWORD = '123456'
7 DB = 'db001'
8 def connect_mysql():#创建mysql连接
9 connect = pymysql.connect(host=IP,
10 port=PORT,
11 user=USER_NAME,
12 password=PASSWORD,
13 db=DB,
14 charset='utf8',
15 autocommit=True
16 )
17 return connect
18
19 def select_all_products(pro_name=None):#查询数据,商品名称为空,查询所有数据;商品名称不为空,查询指定商品数据
20 connect = connect_mysql()
21 cur = connect.cursor(pymysql.cursors.DictCursor)#建立游标
22 select_sql = "select * from tb_product "
23 if pro_name:
24 select_sql += "where pro_name = '%s' ;"%pro_name
25 else:
26 select_sql += ";"
27 cur.execute(select_sql)
28 result = cur.fetchall()
29 cur.close()
30 connect.close()
31 return result
32
33
34 def insert_product(pro_name,price,count,color):#新增商品信息
35 connect = connect_mysql()
36 cur = connect.cursor(pymysql.cursors.DictCursor) # 建立游标
37 insert_sql = "insert into tb_product(pro_name,price,count,color) VALUES ('%s',%f,%d,'%s') ;"\
38 %(pro_name,price,count,color)
39 print(insert_sql)
40 cur.execute(insert_sql)
41 result = cur.fetchall()
42 cur.close()
43 connect.close()
44
45 def update_product(pro_name,price,count,color):#修改商品信息
46 connect = connect_mysql()
47 cur = connect.cursor(pymysql.cursors.DictCursor) # 建立游标
48 update_sql = "update tb_product set price = %f , count = %d, color = '%s' where pro_name ='%s' ;" \
49 % (price, count, color, pro_name)
50 print(update_sql)
51 cur.execute(update_sql)
52 result = cur.fetchall()
53 cur.close()
54 connect.close()
55
56 def delete_product(pro_name):#删除商品信息
57 connect = connect_mysql()
58 cur = connect.cursor(pymysql.cursors.DictCursor) # 建立游标
59 delete_sql = "DELETE FROM tb_product where pro_name = '%s' ;"%pro_name
60 print(delete_sql)
61 cur.execute(delete_sql)
62 result = cur.fetchall()
63 cur.close()
64 connect.close()
65
66 def get_product_name():
67 for i in range(3):
68 name = input("请输入商品名称:").strip()
69 if name:
70 return name
71 else:
72 print('商品名称不能为空')
73 else:
74 quit("错误次数过多")
75
76 def show():
77 name = get_product_name()
78 if name == 'all':
79 print(select_all_products())
80 elif select_all_products(name):
81 print("商品信息是%s"%select_all_products(name))
82 else:
83 print('商品不存在!')
84
85 def delete():
86 name = get_product_name()
87 if select_all_products(name):
88 delete_product(name)
89 print("商品已经被删除")
90 else:
91 print('商品不存在!')
92
93 def check_count(count:str):
94 if count.isdigit():
95 if int(count)>0:
96 return int(count) #1
97 #None
98
99 def check_price(price:str):
100 count = check_count(price)
101 if count:
102 return count
103 else:
104 if price.count('.')==1 and price.replace('.','').isdigit():
105 return float(price) if float(price)>0 else None
106
107 def add():
108 name = get_product_name()
109 if select_all_products(name):
110 print('无法添加')
111 else:
112 price, count, color = input_product()
113 if price and count and color:
114 insert_product(name, price, count, color)
115 print("添加成功!")
116 else:
117 print("价格/数量/颜色不合法")
118
119
120 def modify():
121 name = get_product_name()
122 if select_all_products(name): # 商品存在可以修改
123 price, count, color = input_product()
124 if price and count and color:
125 update_product(name, price, count, color)
126 print("修改成功!")
127 else:
128 print("价格/数量/颜色不合法")
129 else:
130 print('商品不存在!')
131
132
133 def input_product():
134 price = input("price:").strip()
135 count = input("count:").strip()
136 color = input("color:").strip()
137 price = check_price(price)
138 count = check_count(count)
139 return price,count,color
140
141
142 choice = input("请输入:1、添加2、修改、3、查看4、删除、other、退出:").strip()
143 func_map = {'1':add,'2':modify,'3':show,'4':delete}
144 if choice in func_map:
145 func_map.get(choice)()
146 else:
147 quit("退出程序!")
python使用笔记14--商品管理小练习的更多相关文章
- Linux实战教学笔记14:用户管理初级(下)
第十四节 用户管理初级(下) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,用户查询相关命令id,finger,users,w,who,last,lastlog,gr ...
- Linux实战教学笔记14:用户管理初级(上)
第十四节 用户管理初级(上) 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,账号管理 1.1 管理用户命令汇总 命令 注释说明(特殊颜色的必须掌握) useradd增 ...
- Python入门笔记(14):Python的字符编码
一.字符编码中ASCII.Unicode和UTF-8的区别 点击阅读:http://www.cnblogs.com/kingstarspe/p/ASCII.html 再推荐一篇相关博文:http:// ...
- python学习笔记14(多态、封装、继承)
创建自已的对象(尤其是类型或者被称为类的对象)是python非常核心的概念. 多态: 可对不同类的对象使用同样的操作. 封装:对外部世界隐藏对象的工作细节. 继承:以普通的类为基础建立专门的类对象. ...
- Python学习笔记14—模块
在python中所有的模块都被加入到了sys.path中,用下面的方法可以看见模块的位置. >>> import sys >>> import pprint > ...
- Python学习笔记14:标准库之信号量(signal包)
signal包负责在Python程序内部处理信号.典型的操作包含预设信号处理函数,暂停并等待信号,以及定时发出SIGALRM等. 要注意,signal包主要是针对UNIX平台(比方Linux, MAC ...
- python学习笔记(14):可视化分析
一.Matplotlib 1.用于创建出版质量图表的绘图工具库 2.目的的为Python构建一个Matlab式的绘图接口 3.import matplotlib.pyplot as plt:pyplo ...
- Python使用笔记20--网络操作小练习
1 ''' 2 2.自己抓取qq群的接口,传入一个群号,然后把群成员的头像下载到本地,头像用群备注来命名,如果没有 3 群备注,那么取昵称. 4 ''' 5 import requests 6 imp ...
- python使用笔记13--清理日志小练习
1 ''' 2 写一个删除日志的程序,删除5天前或为空的日志,不包括当天的 3 1.删除5天前的日志文件 4 2.删除为空的日志文件 5 ''' 6 import os 7 import time 8 ...
随机推荐
- Step By Step(Lua环境)
Step By Step(Lua环境) Lua将其所有的全局变量保存在一个常规的table中,这个table被称为"环境".它被保存在全局变量_G中. 1. 全局变量声明: ...
- modelMapper使用,将数据库查询对象直接转成DTO对象
1.pom引入 <dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmap ...
- RISC-V与DSA计算机架构
RISC-V与DSA计算机架构 相信所有和计算机体系结构打过交道的朋友们都看过David Patterson与John Hennessy的煌煌巨作,<计算机体系架构:量化研究方法>.两位在 ...
- AI芯片加速图像识别
AI芯片加速图像识别 AI chip accelerates image recognition 法国研究机构CEA-Leti和LIST在2020年VLSI研讨会上展示了一种概念验证芯片,该芯片集成了 ...
- Redis系列(二):常用操作
一.数据类型 如果学过数据结构就会知道,操作往往是在特定的数据结构上的,不同的数据结构就会有不同的操作,Redis支持以下的数据类型: 字符串(Strings),列表(Lists),集合(Sets), ...
- springMVC异常处理(自定义异常)HandlerExceptionResolver
注:本篇的异常主要指的是controller.service和dao层中执行方法抛出的异常. 一.为什么要处理异常? 因为如果我们不处理异常,异常信息就会直接抛出给浏览器,于是浏览器页面就直接显示异常 ...
- 【VBA】返回指定范围内的随机整数
返回指定范围内的随机整数: Sub main() Randomize Debug.Print 随机整数(1, 2) End Sub Function 随机整数(a As Integer, b As I ...
- RobotFramework + Python 自动化入门 四 (Web进阶)
在<RobotFramwork + Python 自动化入门 一>中,完成了一个Robot环境搭建及测试脚本的创建和执行. 在<RobotFramwork + Python 自动化入 ...
- 第11章 PADS功能使用技巧(1)-最全面
一.如何走蛇形线? 蛇形线是布线过程中常用的一种走线方式,其主要目的是为了调节延时满足系统时序设计要求,但是设计者应该有这样的认识:蛇形线会破坏信号质量,改变传输延时,布线时要尽量避免使用,因此一块P ...
- centos7 安装最新的 wiki confluence
41.1 下载confluence Confluence是一个企业级的Wiki,可用于企业.部门.团队内部进行信息共享和协同编辑. 下载地址: https://www.atlassian.com/so ...