用户登录界面程序

题目是:编写登录接口

要求:1、输入用户名和密码;

           2、认证成功后显示欢迎信息

           3、输错三次后锁定;

首先根据题目要求做了如下流程图:

2、初次接触python,很多细节知识还不熟,准备把自己编程过程中遇到的问题,及解决方法记录下来,为以后的学习做积累,也为其他初学python学习者提供经验。

1)编程过程中,出现了错误提示:“unexpected indent”。

      出现这个错误的原因是:输入语句,多缩进了4个格。

2、编程过程中用到了,打开txt文档的功能。

扫描二维码关注公众号,回复: 6662227 查看本文章

问题1:怎么实现打开txt文档?

lock_file=open("txt文档路径")

lock_list=lock_file.readlines()

print(lock_list)

就实现了基本的打开txt文档的功能;

问题2:当txt文档中有字符串和数字时,打开txt文档,

lock_file = open ("D:\python\studydiary\oneweek\user.txt")

提示错误信息:(unicode error) 'unicodeescape' codec can't decode bytes in position 28-29: truncated \uXXXX。

这是因为,在python中“\”表示转义字符。

解决办法是:1)在字符串前面加一个“r”就可以了。

lock_file = open (r"D:\python\studydiary\oneweek\user.txt")
2)在“\”前面再加一个“\”进行转义,lock_file = open ("D:\\python\\studydiary\\oneweek\\user.txt")

 问题3:txt文档中存放的是 “

zhanger
lili
baidu

用上述程序读出来的结果是:

['zhanger  \n', 'lili\n', 'baidu\n']”

不想要“\n”怎么解决?

解决方法:使用strip()函数去掉每行结束的\n

strip()函数原型

声明:s为字符串,rm为要删除的字符序列

s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

例如:

 for line in file.readlines():

      line=line.strip('\n');

在本例中解决代码如下:

lock_file = open ("D:\\python\\studydiary\\oneweek\\lockeduser.txt")
lock_list = lock_file.readlines()
for lock_line in lock_list:
lock_line=lock_line.strip('\n')
print(lock_line)
运行程序后,输出结果如下:

3、实现出现异常,要异常退出功能。

python中退出程序的两种方法,sys.exit和os.exit(0),0为默认状态,可以为空,两者均会退出当前运行的程序。os.exit中的0不能省略。

1)sys.exit(0):可以捕获systemexit异常,然后做相应的清理工作,执行结果是直接输出goodbye。

2)os.exit(0):直接中断并立即退出程序,什么也不管。

在该程序中,要求,当在锁定用户库中查询到为锁定用户,则显示,改用户名为锁定用户,并异常退出,所以用sys.exit()

4、从txt文本中读取文档,是如下形式的

‘zhangsan 123’ ‘lisi   234’  ‘zhangping   345’

怎么实现将名字和密码分开提取和存储?

python中,用split()函数来实现字符串切割功能。split()语法结构如下:

str.split(str="",num=string.count(str))

例如:

str="I come from Beijing"

print(str.split())  #以空格为分隔符进行分割

print(str.split('o',1))  #以第一个o为分隔符进行分割

print(str.split('m'))   #以m为分隔符进行分割

以上实例输出结果如下:

[‘I','come','from','Beijing']

  ['I c','me from Beijing']

  ['I co','e fro','Beijing']

5、该功能函数代码如下:

import sys,getpass,io

i=0
while i<3:
    username = input("username:")
    locked_user_information = open(r"//Users//yxy-zhaolu//Documents//Share Data//9//locked_user_information.txt")
    locked_user_list = locked_user_information.readlines()
    user_information = open("//Users//yxy-zhaolu//Documents//Share Data//9//user_information.txt")
    user_information_list = user_information.readlines()

    for locked_user_line in locked_user_list:  #打开锁定用户名的文档并搜索该用户是否为锁定用户
        locked_user_line=locked_user_line.strip('\n')
        if username ==locked_user_line:
            print("sorry,this username had locked!")
            sys.exit()

    for user_information_line in user_information_list:
        (user_name,pass_word) = user_information_line.strip('\n').split()
        if username == user_name:
            j=0
            while j<3:
                password = input("password:")
                if password == pass_word:
                    print("welcome you, ",username)
                    sys.exit()
                else:
                    if j<3:
                        print("sorry,you have wrong password,please try again")
                j=j+1
            else:
                add = open("//Users//yxy-zhaolu//Documents//Share Data//9//locked_user_information.txt",'w')
                locked_user_information=add.write(username)
                locked_user_information.close()
                sys.exit
        else:
            print("this username is not exist")
            pass
    i=i+1
else:
    sys.exit()
locked_user_information.close()
user_information.close()

猜你喜欢

转载自www.cnblogs.com/zhaolu/p/11087475.html