宪章登陆系统,python编写登陆接口

By admin in 4858.com on 2019年3月30日

随老男孩学习python mark

python作业001:模拟登陆系统,python001

随老男孩学习python mark

老男孩Python互联网班-Day01作业-模拟登陆系统,python-day01

宪章登陆系统主要练习文件的操作、条件语句、循环等

知识点:

1.str.strip([chars]):

剔除字符串前面和前面包车型客车有所空格,chars参数可以定制供给删除的字符,可选。

input().strip()能够去除用户输入时指引的空格,幸免发生不供给的荒谬。

宪章登陆系统,python编写登陆接口。用法:

account = input(‘请输入账号:’).strip()

 

2.str.upper()

转换字符串中的全体小写字母为大写字母

command = input('请输入指令:').strip()
if command.upper() == 'A':
    add_user(database)
不管输入的指令给为A或a都会执行此项。

3.dict.get(key)
获取字典中的key对应的value,若key不存在则返回None,

if database.get(account) == None:

如果key不存在不会报错。

 

 

 

模拟登陆系统主要性练习文件的操作、条件语句、循环等 知识点:
1.str.strip([chars]):…

python之编写登陆接口(1),python编写登陆接口

学业:编写登陆接口 1.输入用户名密码 2.申明成功后显得欢迎消息3.输错三回后锁定 账号文件account.txt内容如下: zhangbin 123 zhb 456 jack
122 锁文件account_lock.txt私下认可为空 #coding:gbk #author:zhb import
getpass,os,sys os.system(‘cls’) i=0 while i<3:
name=raw_input(‘输入用户名:’)
lock_file=open(r’account_lock.txt’,’r+’) for lock_line in
lock_file.readlines(): lock_line=lock_line.strip(‘\n’) if
lock_line==name: sys.exit(‘用户 %s
存在于被锁定文件中!请重新登录运转平台!再见!’ %name) else: pass
user_file=open(r’account.txt’,’r’) for user_line in
user_file.readlines(): (user,password)=user_line.strip(‘\n’).split()
if user==name: j=0 while j<3: passwd=getpass.getpass(“input
password:”) if password==passwd: sys.exit(“热烈欢迎 %s 进入运行平台”
%name) else: if j!=2: print(“密码输入错误, 用户 %s 还有 %d 次输入机会”
%(name,2-j)) j+=1 else:#密码输错1次,锁定并追加到account_lock.txt里
lock_file.write(name+’\n’) sys.exit(“由于总是输入密码壹遍错误, 该账号
%s 已被锁定,请联系IT人士举行解绑” %name) else: pass i+=1 else:
sys.exit(‘系统中不设有用户 %s ,请重新登录’ %name)

作业:编写登陆接口1.输入用户名密码2.认证成功后出示欢迎新闻3.输错三遍后锁定账号文件ac…

学业供给及提示:编写登录接口

”’

勤学苦练程序:编写登录接口

  1. 输入用户名和密码

  2. 注解成功后展现欢迎新闻

  3. 输错3次后锁定

输入一回后脱离,下次同样用户名再登陆就展现用户已经被锁定,用户锁定消息能够保存在硬盘文件之中,跟硬盘文件进行互相

无法用shell命令,只好用Python的自带的文书调用的接口(能够对文件增加和删除改查),先学文件处理怎么弄

4.用户名和密码从文件里面读取,还有三个反省账户锁定的公文

”’

作业须求及提示:编写登录接口

”’

勤学苦练程序:编写登录接口

  1. 输入用户名和密码

  2. 表明成功后呈现欢迎音讯

  3. 输错贰遍后锁定

输入一次后退出,下次同样用户名再登陆就突显用户已经被锁定,用户锁定音信方可保存在硬盘文件之中,跟硬盘文件进行互动

不可能用shell命令,只可以用Python的自带的文件调用的接口(能够对文本增加和删除改查),先学文件处理怎么弄

4.用户名和密码从文件里面读取,还有3个反省账户锁定的文本

”’

学业知识点:

依傍登陆系统第1演练文件的操作、条件语句、循环等

1.str.strip([chars]):

去除字符串前面和后边的全数空格,chars参数能够定制要求删除的字符,可选。

input().strip()能够去除用户输入时指点的空格,制止生出不要求的一无所长。

用法:

account = input(‘请输入账号:’).strip()

 

2.str.upper()

更换字符串中的全部小写字母为大写字母

command = input(‘请输入指令:’).strip()

if command.upper() == ‘A’:

add_user(database)

任凭输入的指令给为A或a都会实施此项。

4858.com ,3.dict.get(key)

赢得字典中的key对应的value,若key不存在则赶回None,

if database.get(account) == None:

假如key不设有不会报错

作业知识点:

上行下效登陆系统首要性演习文件的操作、条件语句、循环等

1.str.strip([chars]):

除去字符串后面和后面包车型客车有着空格,chars参数能够定制须求删除的字符,可选。

input().strip()能够去除用户输入时辅导的空格,幸免发出不须要的不当。

用法:

account = input(‘请输入账号:’).strip()

 

2.str.upper()

转移字符串中的全体小写字母为大写字母

command = input(‘请输入指令:’).strip()

if command.upper() == ‘A’:

add_user(database)

甭管道输送入的吩咐给为A或a都会履行此项。

3.dict.get(key)

赢得字典中的key对应的value,若key不设有则赶回None,

if database.get(account) == None:

一经key不设有不会报错

流程图

4858.com 1

流程图

4858.com 2

代码示例1

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author : "David J"
##未利用文件,未实现持续锁定
import sys
users_list = {"jdw":"123","smz":"123"}
locked_count = 0
log_error_count = 0
#登录模块
while True:
    username = input("please input your username:").strip()
    password = input("please input your password:")
    #判断用户名和密码是否相同
    if username in users_list.keys():
        if password == users_list[username]:
            print("登录成功")
            sys.exit()
        else:
            log_error_count += 1
            if log_error_count < 3:
                print("用户名或密码错误,请重试!")
            else:
                locked_count = 1
                print("重试超过三次,已锁定!")
                sys.exit()
    else:
        log_error_count += 1
        if log_error_count < 3:
            print("用户名错误,请重试!")
        else:
            locked_count = 1
            print("重试超过三次,已锁定!")
            sys.exit()

代码示例1

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author : "David J"
##未利用文件,未实现持续锁定
import sys
users_list = {"jdw":"123","smz":"123"}
locked_count = 0
log_error_count = 0
#登录模块
while True:
    username = input("please input your username:").strip()
    password = input("please input your password:")
    #判断用户名和密码是否相同
    if username in users_list.keys():
        if password == users_list[username]:
            print("登录成功")
            sys.exit()
        else:
            log_error_count += 1
            if log_error_count < 3:
                print("用户名或密码错误,请重试!")
            else:
                locked_count = 1
                print("重试超过三次,已锁定!")
                sys.exit()
    else:
        log_error_count += 1
        if log_error_count < 3:
            print("用户名错误,请重试!")
        else:
            locked_count = 1
            print("重试超过三次,已锁定!")
            sys.exit()

代码示例2

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author : "David J"
#登录数据文件UserPassword.txt,实现用户三次错误后锁定
# 字典和列表的区别:列表是有顺序的,使用索引访问;而字典中的条目是用键keys来访问的
# 初始化空字典
user_dict = {}
# 初始化空列表list,有了空的列表之后,程序就可以向这个列表中增加元素
user_list = []
# 用户密码错误的初始值为0
login_error_count = 0
# 使用while开始无限制的循环
while True:
   # 交互式输入登录用户名和密码
   logon_name = input("Pls input your username:")
   pass_word = input("Pls input your password:")
   # 读取用户登录数据文件UserPassword.txt
   '''
   UserPassword.txt示例
   jdw,123456,0,0
   smz,123456,0,0
   root,123456,0,0
   cslc,123456,0,0
   '''
   users_data = open('UserPassword.txt','r')
   # 循环遍历打开的数据,对打开的数据进行格式化操作,然后把格式化以后的数据保存到创建好的user_dict字典当中
   for user_data in users_data:
       # 使用strip去除user_data数据行中的前后空格
       user_list = user_data.strip()
       # 将去除前后空格之后的数据行user_list使用逗号进行分割,并重新保存到user_datas中
       user_datas = user_list.split(',')
       # 将user_datas数据行中的第0个位置的数据(即用户名),去除前后空格后,赋给新的变量user_name
       user_name = user_datas[0].strip()
       # 将user_datas数据行中的第1个位置的数据(即密码),去除前后空格后,赋给新的变量user_passwd
       user_passwd = user_datas[1].strip()
       # 将user_datas数据行中的第2个位置的数据(即锁定状态,0代表未锁定,1代表锁定),去除前后空格后,赋给新的变量user_locked
       user_locked = user_datas[2].strip()
       # 将user_datas数据行中的第3个位置的数据(即密码输入错误次数),去除前后空格后,赋给新的变量user_error_count
       # 将user_datas[3]的数据类型强制转换为int
       user_error_count = int(user_datas[3].strip())
       # 将前面定义好的变量信息,保存到字典中,为前面的值指定键名,即键:值对应的关系,键名可以随便起,建议考虑易读性
       # 如果下面的键名出线下划波浪线,并不代表有语法错误,而是编辑器认为拼写的英文不是正确的英文单词,不影响脚本执行
       # 按照Python的编程规范,在逗号和冒号后面需要加一个空格
       user_dict[user_name] = {'name': user_name, 'password': user_passwd,
                                 'locked': user_locked, 'errorcount': user_error_count}
   # 关闭打开的UserPassword.txt文件
   users_data.close()
   # 判断用户账户是否已经被锁定,将前面交互界面输入的用户名和字典里保存的用户名列进行匹配
   # 将前面交互式输入的用户名和字典中的userlocked键进行匹配,如果用户名对应的键为1,就是被锁定了,退出登录
   if logon_name in user_dict.keys():
       if user_dict[logon_name]['locked'] == '1':
           print("This user was locked,pls contact administrator!")
           break
       # 将前面输入的用户名、密码和字典中的用户名、密码进行匹配,如果成功,则输出登录系统,然后退出
       if logon_name == user_dict[logon_name]['name'] and pass_word == user_dict[logon_name]['password']:
           print("Welcome to System!")
           break
       else:
           # 如果用户名在字典里,但是密码不对,将前面输入的用户名所对应字典中的错误次数进行自增
           user_dict[logon_name]['errorcount'] += 1
           # 如果用户名输入正确的情况下,密码输入错误的次数小于3次,给用户重新尝试的机会
           if user_dict[logon_name]['errorcount'] < 3:
               print("The password was wrong,pls try again,your have three chance!")
               # 追加写入新的数据到UserPassword.txt,其中的errorcount会随着失败尝试次数的增加而增加,三次就是2,即0,1,2
               write_data = open('UserPassword.txt', 'w+')
               # 将字典里面的值取到_user_value中,进行循环遍历
               for user_value in user_dict.values():
                   # 往脚本开头定义好的空列表里面逐行写入数据
                   user_list = [user_value['name'], user_value['password'], str(user_value['locked']),
                                 str(user_value['errorcount'])]
                   # 将写入到user_list的数据再次进行格式化后赋给users_list
                   users_list = ','.join(user_list)
                   # 将users_list中的数据写入到UserPassword.txt中,并在每一行数据的结尾进行换行
                   write_data.write(users_list + '\n')
               # 关闭UserPassword.txt文档
               write_data.close()
           else:
               # 如果密码不正确的次数已经超过3次,就输出账户被锁定
               print("You try three times,Account locked")
               # 输出账户锁定的同时,将字典中locked键的值设置为1,这个地方改成1,前面判断Locked状态的IF才生效
               user_dict[logon_name]['locked'] = 1
               # 账户设置为锁定之后,将用户对应的错误密码次数清零,我理解的是锁定属性为1了,错误次数可以清零
               user_dict[logon_name]['errorcount'] = 0
               write_data = open('UserPassword.txt', 'w+')
               for user_value in user_dict.values():
                   user_list = [user_value['name'], user_value['password'], str(user_value['locked']),
                                 str(user_value['errorcount'])]
                   users_list = ','.join(user_list)
                   write_data.write(users_list + '\n')
               write_data.close()
               break
   else:
       # 如果用户名不存在,则输出信息
       print("Pls ensure input currect account or password,you can try three times!")
       # 程序开头设置了初始化不存在用户名的值为0,这里进行自增
       login_error_count += 1
       # 如果不存在的用户尝试次数超过3次,则中断程序
       if login_error_count > 2:
           break

  

代码示例2

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author : "David J"
#登录数据文件UserPassword.txt,实现用户三次错误后锁定
# 字典和列表的区别:列表是有顺序的,使用索引访问;而字典中的条目是用键keys来访问的
# 初始化空字典
user_dict = {}
# 初始化空列表list,有了空的列表之后,程序就可以向这个列表中增加元素
user_list = []
# 用户密码错误的初始值为0
login_error_count = 0
# 使用while开始无限制的循环
while True:
   # 交互式输入登录用户名和密码
   logon_name = input("Pls input your username:")
   pass_word = input("Pls input your password:")
   # 读取用户登录数据文件UserPassword.txt
   '''
   UserPassword.txt示例
   jdw,123456,0,0
   smz,123456,0,0
   root,123456,0,0
   cslc,123456,0,0
   '''
   users_data = open('UserPassword.txt','r')
   # 循环遍历打开的数据,对打开的数据进行格式化操作,然后把格式化以后的数据保存到创建好的user_dict字典当中
   for user_data in users_data:
       # 使用strip去除user_data数据行中的前后空格
       user_list = user_data.strip()
       # 将去除前后空格之后的数据行user_list使用逗号进行分割,并重新保存到user_datas中
       user_datas = user_list.split(',')
       # 将user_datas数据行中的第0个位置的数据(即用户名),去除前后空格后,赋给新的变量user_name
       user_name = user_datas[0].strip()
       # 将user_datas数据行中的第1个位置的数据(即密码),去除前后空格后,赋给新的变量user_passwd
       user_passwd = user_datas[1].strip()
       # 将user_datas数据行中的第2个位置的数据(即锁定状态,0代表未锁定,1代表锁定),去除前后空格后,赋给新的变量user_locked
       user_locked = user_datas[2].strip()
       # 将user_datas数据行中的第3个位置的数据(即密码输入错误次数),去除前后空格后,赋给新的变量user_error_count
       # 将user_datas[3]的数据类型强制转换为int
       user_error_count = int(user_datas[3].strip())
       # 将前面定义好的变量信息,保存到字典中,为前面的值指定键名,即键:值对应的关系,键名可以随便起,建议考虑易读性
       # 如果下面的键名出线下划波浪线,并不代表有语法错误,而是编辑器认为拼写的英文不是正确的英文单词,不影响脚本执行
       # 按照Python的编程规范,在逗号和冒号后面需要加一个空格
       user_dict[user_name] = {'name': user_name, 'password': user_passwd,
                                 'locked': user_locked, 'errorcount': user_error_count}
   # 关闭打开的UserPassword.txt文件
   users_data.close()
   # 判断用户账户是否已经被锁定,将前面交互界面输入的用户名和字典里保存的用户名列进行匹配
   # 将前面交互式输入的用户名和字典中的userlocked键进行匹配,如果用户名对应的键为1,就是被锁定了,退出登录
   if logon_name in user_dict.keys():
       if user_dict[logon_name]['locked'] == '1':
           print("This user was locked,pls contact administrator!")
           break
       # 将前面输入的用户名、密码和字典中的用户名、密码进行匹配,如果成功,则输出登录系统,然后退出
       if logon_name == user_dict[logon_name]['name'] and pass_word == user_dict[logon_name]['password']:
           print("Welcome to System!")
           break
       else:
           # 如果用户名在字典里,但是密码不对,将前面输入的用户名所对应字典中的错误次数进行自增
           user_dict[logon_name]['errorcount'] += 1
           # 如果用户名输入正确的情况下,密码输入错误的次数小于3次,给用户重新尝试的机会
           if user_dict[logon_name]['errorcount'] < 3:
               print("The password was wrong,pls try again,your have three chance!")
               # 追加写入新的数据到UserPassword.txt,其中的errorcount会随着失败尝试次数的增加而增加,三次就是2,即0,1,2
               write_data = open('UserPassword.txt', 'w+')
               # 将字典里面的值取到_user_value中,进行循环遍历
               for user_value in user_dict.values():
                   # 往脚本开头定义好的空列表里面逐行写入数据
                   user_list = [user_value['name'], user_value['password'], str(user_value['locked']),
                                 str(user_value['errorcount'])]
                   # 将写入到user_list的数据再次进行格式化后赋给users_list
                   users_list = ','.join(user_list)
                   # 将users_list中的数据写入到UserPassword.txt中,并在每一行数据的结尾进行换行
                   write_data.write(users_list + '\n')
               # 关闭UserPassword.txt文档
               write_data.close()
           else:
               # 如果密码不正确的次数已经超过3次,就输出账户被锁定
               print("You try three times,Account locked")
               # 输出账户锁定的同时,将字典中locked键的值设置为1,这个地方改成1,前面判断Locked状态的IF才生效
               user_dict[logon_name]['locked'] = 1
               # 账户设置为锁定之后,将用户对应的错误密码次数清零,我理解的是锁定属性为1了,错误次数可以清零
               user_dict[logon_name]['errorcount'] = 0
               write_data = open('UserPassword.txt', 'w+')
               for user_value in user_dict.values():
                   user_list = [user_value['name'], user_value['password'], str(user_value['locked']),
                                 str(user_value['errorcount'])]
                   users_list = ','.join(user_list)
                   write_data.write(users_list + '\n')
               write_data.close()
               break
   else:
       # 如果用户名不存在,则输出信息
       print("Pls ensure input currect account or password,you can try three times!")
       # 程序开头设置了初始化不存在用户名的值为0,这里进行自增
       login_error_count += 1
       # 如果不存在的用户尝试次数超过3次,则中断程序
       if login_error_count > 2:
           break

  

随老男孩学习python mark 作业须求及提示:编写登录接口 ”’
演练程序:编写登录接口 1. 输入用户名和密…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有