Python练习一(控制流)

  最近在研究Python,自己写的简单小程序,模拟登陆的流程。流程图:


#!/usr/bin/env python
"""
login.info
wang 123456
fu 159753
acl.info
wang
"""


def login_registe(panduan="Y"):
panduan = input("新用户请打印'Y',老用户请输入'N':")
return panduan


def cycle(username, password):

record = open('login.info', 'r') # 以只读的方式打开文件
panduan = 1
for line in record.readlines(): # readlines函数是从第一行读取
user, passw = line.strip().split() # strip取换行符,split转换列表,分别赋值给user和passw
if username == user and password == passw:
limit = open('acl.info', 'r')
panduan = 0

for limit_user in limit.readlines(): # 判断用户是否被锁定
if limit_user == username:
return "用户已经被锁!"
break
return "welcome"
break

if panduan == 1: # 如果用户名密码不匹配 panduan变量就等于1执行下面
return "用户名或密码错误"


def login():
number = 0 # 计数器变量
login_1 = login_registe()
if login_1 == "N":

while True:
if number == 3: # 判断是否用户名密码输入超过3次
print("用户名密码输入超过3次,用户已被锁定。")
limit = open('acl.info', 'a')
limit.write(" " + username)
limit.close()
break
username = input("请输入登陆用户名:")
if len(username) != 0: # len函数是计算字符的个数
password = input("请输入密码:")
jieguo = cycle(username, password)
if jieguo == "welcome" or jieguo == "用户已经被锁!":
print(jieguo)
break

elif jieguo == "用户名或密码错误":
number += 1
print(jieguo)
print(number)


else:
print("用户名不能为空!")



login()
 


  目前还有一些问题,如果不同用户错误3次,将锁定最后一个。
原文地址:https://www.cnblogs.com/wangyufu/p/5452447.html