python 第一课,如何实现登录系统

课题: 制作一个登录系统,验证用户名及密码,输入密码三次错误后锁定该账户

难点:读取用户名、密码及锁定账户需要将数据保存于硬盘。

编写思路:通过for遍历用户名,while循环验证密码。

疑难: ture_or_error = sheet1.cell(num_excel,2).value#.encode('utf-8')  这里是否需要编码转换?

           写入已存在数据的excel 除了xlutils 是否还有其他办法?

 1 #-*-coding:utf-8-*-
 2 import xlrd
 3 from xlwt import 
 4 from xlutils.copy import copy 
 5 '''使用excel读写需要 xlrd xlwt xlutils这三个插件,我会另开一个博客分别叙述
 6 xlrd 读取excel的插件,仅能读取
 7 xlwt 写入excel的插件,仅能写入空白的sheet,如果写入已有数据的sheet会覆盖掉原有全部数据
 8 xlutils 写入excel插件,用法为先把原sheet全部读取并复制成sheet2,再把需要写入的数据写入到
 9 sheet2中,然后把sheet2粘贴到原sheet中全部覆盖。'''
10 account_excel = xlrd.open_workbook(r'D:\Meitu\1.xls')#打开用户名和密码的sheet表格
11 sheet1=account_excel.sheets()[0]#获取表格第一个sheet的数据存到sheet1中
12 cols = sheet1.col_values(0)#获得第一列用户名的全部值并存到数组cols中
13 len_cols=len(cols)#获得cols的长度也就是用户名的数量
14 len_num = 1#代表for遍历用户名时的计次变量
15 #print(cols)
16 input_num=0#密码输入错误三次的while 计次变量
17 name = input('enter account name:')
18 name=str(name)
19 flag = 1#遍历用户名时的判断用变量,如果不加会导致登录成功后仍需输入用户名
20 flag2 = 2#用户名输入错误后再次循环
21 while flag2==2:    
22     for name_account in cols:#开始遍历用户名
26         if name == name_account:#遍历过程中发现表格中的用户名同输入的相等时
27             num_excel = cols.index(name_account)#获得该用户名在数组中的位置,以此来读取同行下的锁定判断值
28             ture_or_error = sheet1.cell(num_excel,2).value#.encode('utf-8') 好像这里用utf-8编码前面会带个b' 不知道什么原因
29             if ture_or_error == 'no':
30                 print('your account has been locked')
31                 flag = 0
32                 flag2 = 1
33                 input_num =3
34                 break
35             while input_num <3:#开始3次判断密码是否输入正确
36                 password = input('enter password:')
37                 password_account = sheet1.cell(num_excel,1).value
38                 password_account=str(password_account)
39                 if password == password_account:
40                     print('enter suess')
41                     input_num=4
42                     flag = 0
43                     flag2 = 1
44                     break
45                 else:
46                     print('password error')
47                         
48                     
49                 input_num +=1
50                 if input_num == 3:
51                     print('your account is locked')#这段就是写入代码了
52                     sheet1_old = copy(account_excel)
53                     sheet_new = sheet1_old.get_sheet(0)
54                     sheet_new.write(num_excel,2,"no")
55                     sheet1_old.save(r'D:\Meitu\1.xls')
56                     flag = 0
57                     flag2 = 1            
58         if flag == 1:
59                         
60             len_num += 1
61             #print(len_num)
62             if len_cols == len_num:
63                         
64                 print('your name is not find')
65                 name = input('enter your name:')

 

posted on 2018-03-22 22:18  tonson9527  阅读(436)  评论(0)    收藏  举报