today:
第一天的python强化课,内容:
任务1 制作(成绩类)模块
背景:每一个成绩都是由科目和成绩组成的,成绩设定为100分值。现在需要做一个类能够很好的处理成绩的存储和判定。
任务书的内容
例:
程序目标:
类的属性:
# 成绩条目录:
class Score:
lesson_name = "课程名
score = 0 # 分数
完成以下类的方法:
# 0、初始化添加成绩
def __init__(self,lesson_name,score):
self.lesson_name = "课程名"
self.score = float(score)
# 1、获取当前成绩数据(以字典形式)
# 2、 仅获取成绩
def get_score_only(self):
# 3、 修改课程名
def edit_lesson_name(self, lesson_name):
# 4、 修改成绩
def edit_score(self, score):
# 5、 及格检测,假如及格返回 “及格”
def ok(self):
类的测试:
完成以下三个目标测试
具体完成方法参考 文件夹1-2
自己打的代码如下,:::
Score.py文件名
1 class Score: 2 lesson_name = "课程名" 3 score = 0 4 5 def __init__(self,lesson_name,score): 6 self.lesson_name = "课程名" 7 self.score = float(score) 8 9 def get(self): 10 re = {"lesson_name":self.lesson_name, 11 "score":self.score 12 } 13 return re 14 15 def get_score_only(self): 16 return self.score 17 18 def edit_lesson_name(self,lesson_name): 19 self.lesson_name = lesson_name 20 return "修改成功!" 21 22 def edit_score(self,score): 23 self.score = score 24 return "修改成功!" 25 26 def ok(self): 27 if self.score>=60: 28 return "及格"
test_Score.py文件
1 from Score import Score 2 3 4 #第一个测试: __init__ 5 def get(self): 6 re = {"less_name": self.lesson_name,"score":self.score} 7 return re 8 9 #第二个测试: 10 def unit_2(): 11 a = Score("网页设计",90) 12 print(a.edit_score(59)) 13 print("这个同学的成绩惨遭毒手后{}".format(a.get_score_only())) 14 a.edit_score(75) 15 print(a.ok()) 16 17 18 unit_2()
然后第二个是数据库
20180109新加入~
封装操作数据库user的方法
功能所示:
而数据库改变的是,:
在数据库删除数据:
更新 20180110
文件DbUser.py的更新
1 import sqlite3 2 3 4 #封装操作数据库user的方法 5 class DbUser: 6 conn = sqlite3.connect('db.db') 7 form_name = "user" 8 9 #0.用户表格 10 def menu(self): 11 print("/******** 主菜单 *********/") 12 print("| 1、增加用户 |") 13 print("| 2、删除用户 |") 14 print("| 3、修改用户权限 |") 15 print("| 4、查看所有用户 |") 16 print("| 5、通过关键字,搜索用户 |") 17 print("/*******************************/") 18 19 #1.增加用户 20 def add_user(self): 21 while True: 22 username = input("请输入用户名(-1停止输入)") 23 password = input("请输入密码") 24 right = input("请输入权限") 25 26 #判断当输入-1时,结束输入过程 27 if username == -1: 28 break 29 30 #添加账户之前查询数据的目的?为了防止添加2个相同的用户名的账号 31 sqlstr = "SELECT * FROM user WHERE username='{}'".format(username) 32 # 把查询到的结果,存储到cursor中 33 cursor = self.conn.execute(sqlstr) 34 35 36 if len(cursor.fetchall())>0: 37 #假如检测到查询数据大于0条,则说明该用户存在 38 print("你输入的用户名已经存在了") 39 40 else: 41 self.conn.execute("INSERT INTO user VALUES('{}','{}','{}')". 42 format(username,password,right)) 43 self.conn.commit()
运行数据库text_DbUser.py的代码
1 from DbUser import DbUser 2 3 a = DbUser() 4 5 a.menu() 6 7 8 a.add_user()
以上代码截图
# 4.修改密码
1 # 4.修改密码 2 def Mod_user(self): 3 while True: 4 username = input("请输入要【编辑】的用户名,(输入-1结束)") 5 6 7 # 判断当输入-1时,结束输入过程 8 if username == "-1": 9 break 10 11 # 添加账户之前查询数据的目的?为了防止添加2个相同的用户名的账号 12 sqlstr = "SELECT * FROM user WHERE username='{}'".format(username) 13 # 把查询到的结果,存储到cursor中 14 cursor = self.conn.execute(sqlstr) 15 16 if len(cursor.fetchall()) > 0: 17 edit_username = input("请输入你要修改后的用户名!") 18 edit_password = input("请输入你要修改后的密码!") 19 edit_right = input("请输入你要修改后的权限!") 20 print("修改成功!") 21 self.conn.execute("UPDATE user SET username ='{}',password ='{}',right ='{}' WHERE username='{}';" 22 .format(edit_username,edit_password,edit_right,username)) 23 self.conn.commit() 24 else: 25 print("查不到该用户!")
搜索关键字显示信息:
输入关键字显示消息的代码:
1 # 5.通过关键字搜索用户 2 def sea_user(self): 3 while True: 4 username = input("请输入你要输入的关键字:(输入-1结束)") 5 6 # 判断当输入-1时,结束输入过程 7 if username == "-1": 8 break 9 10 sqlstr = "SELECT * FROM user where username like '{}'".format(username) 11 12 cursor = self.conn.execute(sqlstr) 13 for row in cursor: 14 print("用户信息:{}:{}:{}".format(row[0],row[1],row[2]))
截图如下:
20180111更
改进了删除用户和关键字搜索用户,变得更加全面。
以下为代码和截图
删除用户代码截图
1 #2.删除用户 2 def delete_user(self): 3 while True: 4 username = input("请输入要【删除】的用户名,(输入-1结束)") 5 #判断当输入-1时,结束输入进程 6 if username == "-1": 7 break 8 #添加账户之前查询数据的目的?为了防止添加了2个相同多的用户名账号 9 sqlstr = "SELECT * FROM user WHERE username='{}'".format(username) 10 #把查询到的结果,存储到cursor中 11 cursor = self.conn.execute(sqlstr) 12 13 if len(cursor.fetchall())>0: 14 comfirm = input("你确定要删除?确定输入yes") 15 if comfirm == "yes": 16 print("删除成功!") 17 self.conn.execute('DELETE FROM user WHERE username="{}";'.format(username)) 18 self.conn.commit() 19 else: 20 print("放弃了删除!") 21 else: 22 print("查不到该用户!")
更新的搜索关键字的代码以及截图
1 # 5.通过关键字搜索用户 2 def sea_user(self): 3 while True: 4 username = input("请输入你要输入的关键字:(输入-1结束)") 5 6 # 判断当输入-1时,结束输入过程 7 if username == "-1": 8 break 9 10 sqlstr = "SELECT * FROM user WHERE username LIKE '%{}%'".format(username) 11 12 cursor = self.conn.execute(sqlstr) 13 for row in cursor: 14 print("用户信息:{}\t密码:{}\t权限:{}\t".format(row[0],row[1],row[2]))
老师给的截图:
增加一个新的输入账号密码的代码:
checkPW.py
1 import sqlite3 2 3 4 5 class checkPW: 6 conn = sqlite3.connect('db.db') 7 form_name = "user" 8 9 def check(self,username,password): 10 11 sqlstr = "SELECT * FROM user WHERE username='{}'".format(username) 12 cursor = self.conn.execute(sqlstr) 13 14 row = ["","",""] 15 row[0] = "" 16 row[1] = "" 17 18 for row in cursor: 19 correct_username = row[0] 20 correct_password = row[1] 21 correct_right = row[2] 22 23 if username == row[0] and password == row[1]: 24 return "登陆成功" 25 else: 26 return "登陆失败"
text_checkPW.py
1 from checkPW import checkPW 2 3 a = checkPW() 4 5 print(a.check(input("输入你的账号:"),input("输入你的密码:")))