python写登录脚本-python实现简单登陆系统

新手,虽然比较简单的东西,但是弄了我很久。

很多不完善的地方,比如锁定用户,同一用户输入错三次密码就会锁定,但是如果在第二第三次换了用户再输入原来的用户,则计数会重新计算。

另外不存在的用户输入密码错误次数过多也会被锁定,然后还能创建一个被锁定的用户,这个就不搞了,只要检测一下是否存在用户名就可以了。

暂时想到了解决办法是在一个专用的文件里面增加一个专用的计数变量,舍弃blocklist这个文件,但是不懂怎么操作,先留着。

虽然python没有像C一样的main函数作为程序入口,姑且弄了一个,方便看懂

"""登陆系统

要求:

1、可以选择创建新的用户

2、可以登陆原有的用户

3、输入密码错误三次后用户则被锁定"""

flag=True #循环控制符

def createuser():

f=open("userlist.txt","r")#打开已存在用户的文件,假设文件已经存在

flag=True

name=f.readlines()

f.close()

while flag:

username=input("username:")

flag2=False#用户名已存在的标记符

for line in name:

if(username==line.split("*")[0]):

flag2=True

print("用户名已存在,请重新输入")

if flag2!=True:

f=open("userlist.txt","a")#创建新的用户

f.write(" "+username)

f.write("*")

password=input("password:")

f.write(password)

f.close()

break

main()

def login():#登入函数,输入密码错误三次则锁定用户

count=0#密码错误计数,3次则锁定

f=open("userlist.txt","r")

info=f.readlines()

f.close()

user=None#重复用户标记符

while flag:

flag2=False

f2=open("blocklist.txt", "r")

block_name=f2.readlines()

f2.close()

username=input("username:")

if user==None:#user没有使用过,则直接赋予输入的用户名

user=username

elif user!=username:#如果下一次输入的用户名不一样,则记录上一次的用户名,同时计数清零

user=username

count=0;

for line in block_name:#检查用户名是否被锁定,锁定则返回主菜单

if username==line.strip(" "):

print("该用户已经被锁定,请联系管理员")

main()

password=input("password:")

for line in info:

if(username==line.split("*")[0]and password==line.split("*")[1].strip(" ")):

print("登入成功!")

flag2=True

if flag2==False:

count+=1

print("用户名或密码错误,请重新输入")

if count==3:#错误三次,把用户名添加到锁定列表中

print("密码错误次数过多,该用户已被锁定")

f3=open("blocklist.txt","a")

f3.write(" "+username)

f3.close()

count=0#加入黑名单后重置计数

main()#加入黑名单后退回主菜单

info="""

------请输入相关数字-----

1.创建新的用户

2.登陆已有用户

3.退出程序

"""

def main():

print(info)

while flag:

i=input()

if i=="1":

createuser()

break

elif i=="2":

login()

break

elif i=="3":

exit()

else:

print("请输入正确的数字.")

main()#程序入口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python-someip-automotive是一个用于实现SomeIP(Scalable Service-Oriented MiddlewarE over IP)通信的Python库。SomeIP是一种用于在汽车电子系统中进行通信的协议,它允许不同的ECU(Electronic Control Unit)之间进行消息交换。 要使用python-someip-automotive实现SomeIP通信,可以按照以下步骤进行: 1. 安装python-someip-automotive库:可以使用pip命令来安装该库,如下所示: ``` pip install python-someip-automotive ``` 2. 导入所需的模块:在Python脚本中,需要导入python-someip-automotive库的相关模块,如下所示: ```python from someip import SomeIPClient, SomeIPServer, SomeIPMessage ``` 3. 创建SomeIP客户端或服务器对象:根据需要,可以创建SomeIP客户端或服务器对象。客户端用于发送SomeIP消息,服务器用于接收SomeIP消息。例如,创建一个SomeIP客户端对象: ```python client = SomeIPClient() ``` 4. 配置SomeIP客户端或服务器:可以通过设置相关参数来配置SomeIP客户端或服务器。例如,设置SomeIP客户端的服务ID和方法ID: ```python client.service_id = 0x1234 client.method_id = 0x5678 ``` 5. 发送SomeIP消息(客户端)或处理SomeIP消息(服务器):根据是客户端还是服务器,可以发送SomeIP消息或处理接收到的SomeIP消息。例如,发送SomeIP消息: ```python message = SomeIPMessage() message.set_payload(b'Hello, SomeIP!') client.send_message(message) ``` 以上是使用python-someip-automotive库实现SomeIP通信的基本步骤。你可以根据具体的需求和场景进行进一步的配置和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值