使用Python完成移动嗖嗖小项目
这是我学python第三个星期写的一个小项目,代码看起来很繁冗(主要是链接数据库然后对数据库增删改查的代码多了一点,对于数据库的操作我觉得应该另外写一个.py文件)。希望大家谅解一哈?
开发工具 PyCharm、navicat
项目需求
数据库内容
套餐表
用户表
嗖嗖的主菜单
# 主菜单
def menu(self):
while True:
print('*' * 5, '欢迎使用嗖嗖移动业务大厅', '*' * 5)
print('1、用户登录\n2、用户注册\n3、使用嗖嗖\n4、话费充值\n5、资费说明\n6、退出系统')
num = int(input('请选择:'))
self.select(num)
def select(self, num):
if num == 1:
print('>' * 10, '用户登录')
self.register()
elif num == 2:
print('>' * 10, '用户注册')
self.login()
elif num == 3:
print('>' * 10, '使用嗖嗖')
self.use_sousou()
elif num == 4:
print('>' * 10, '话费充值')
self.recharge()
elif num == 5:
print('>' * 10, '资费说明')
self.explain()
elif num == 6:
print('谢谢使用!')
exit()
else:
print('选择错误,请重新选择')
二级菜单
# 子菜单
def sonMenus(self, tel):
while True:
print('*' * 5, '嗖嗖移动用户大厅', '*' * 5)
print('1、本月账单查询\n2、套餐余量查询\n3、打印消费详单\n4、套餐变更\n5、办理退网')
num = int(input('请选择(输入1~5选择功能,其他键返回上一级):'))
self.sonSelect(num, tel)
def sonSelect(self, num, tel):
if num == 1:
print('>' * 5, '本月账单查询')
self.son.find(tel)
elif num == 2:
print('>' * 5, '套餐余量查询')
self.son.balance(tel)
elif num == 3:
print('>' * 5, '打印消费详单')
self.son.print_bill(tel)
elif num == 4:
print('>' * 5, '套餐变更')
self.son.change(tel)
elif num == 5:
print('>' * 5, '办理退网')
self.son.delete(tel)
else:
self.menu()
登录
// An highlighted block
# 正则判断
isTel = re.compile('^1[3-9]\d{9}$')
isPwd = re.compile('^[A-Z]|[a-z]*\d{0,}$')
# 登录
def register(self):
# 链接数据库
db = pymysql.connect('localhost', 'root', 'root', 'sousou', charset='utf8')
# 创建游标对象
cursor = db.cursor()
# 执行sql
sql = 'select * from users'
cursor.execute(sql)
# 获取返回信息
re = cursor.fetchall()
telephone = input('请输入手机卡号:')
pwd = input('请输入密码:')
if self.isPwd.match(pwd) and self.isTel.match(telephone):
for row in re:
tel = row[1]
password = row[2]
if telephone == tel and pwd == password:
self.sonMenus(tel)
return
else:
print('卡号或密码错误!')
else:
print('手机号码或密码格式不正确!')
注册
# 注册
def login(self):
flag = False
tel = []
# 利用for循环来生成电话号码
for i in range(0, 9):
str1 = '139'
for j in range