利用python3完成移动嗖嗖

这是一个Python初学者在第三周完成的项目,利用Python实现了移动嗖嗖的多个功能,包括登录、注册、套餐说明、话费充值、消费模拟等。通过PyCharm作为开发工具,navicat进行数据库管理。项目涉及数据库操作,如套餐表和用户表的管理,以及用户账单、套餐余量、消费详单和套餐变更的查询。在退网功能中,还需增加用户话费余额判断。
摘要由CSDN通过智能技术生成

使用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
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值