Python 登入案例优化

前面我们写过一个登入案例,还记得吗。如果不记得可以去翻翻我前面的文章。

在学完r模式之后,我们来把前面写过的登入程序做进一步优化。

这个程序首先是后台存着用户的账号密码,然后用户登入的时候输入账号密码,输对了就打印成功,输错了就打印账号密码错误。

我现在把原来的程序写一遍。

首先是定义两个变量存着用户的账号密码。

username = '123'
password = '123'

然后用input来接受用户输入的账号。

username = '123'
password = '123'
input_username = input('请输入你的账号>>>').strip()
input_password = input('请输入你的密码>>>').strip()

接着贩毒案用户输入的用户名,等于我们后台存的用户名。和用户输入的密码等于我们后台存的密码。

if input_username == username and input_password == password:
    print('登入成功')
else:
    print('账号或密码错误')

现在这个程序就写完了,下面是完整的代码。

username = '123'
password = '123'
input_username = input('请输入你的账号>>>').strip()
input_password = input('请输入你的密码>>>').strip()
if input_username == username and input_password == password:
    print('登入成功')
else:
    print('账号或密码错误')

这是我们之前的写法,但是这个程序是有问题的,我们后台存的用户的账号密码是写成了变量的形式,变量是存在内存里的。

如果我们只有一个用户,后面也不开放注册功能还好,毕竟这个变量是写在我们代码里面的。

也相当于是存在了硬盘里,断电时候数据也不会丢失。但是后面有新用户想要注册呢?

新用户注册的账号密码你存在哪里?存在内存里?后面一百个用户都存在内存里?

这是不合理的,只要计算机断电,用户账号密码全部丢失。

现在我们学了文件,如果想要把数据永久保存下来,就可以建一个文件。

在这个date文件夹里面,新建user.txt文件。现在就可以在这个文件里面存账号密码了。

比如账号是123,然后写四个横杠做为分隔符。后面就是这个账号的密码123。

应为这个是文本文件,我们等下用t模式读出来之后都是字符串,字符串我们就可以用sprlit拆分。

所以到时候就能拿到账号和密码了。

现在我把账号密码存到硬盘里面了,这样的话即使后面计算机断电,也不会导致我们村的账号密码丢失。

现在再回到前面的登入代码。账号密码存到硬盘之后我们就不再用变量来存这个两个账号密码了。

只需要在if判断之前打开我们存账号密码的文件,把账号密码取出来就可以了。

input_username = input('请输入你的账号>>>').strip()
input_password = input('请输入你的密码>>>').strip()
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
    res = f.read()
if input_username == username and input_password == password:
    print('登入成功')
else:
    print('账号或密码错误')

我先把其他的代码注释掉,先打印with open代码,看能不能拿到刚刚txt文件里的账号密码。

打印结果就是拿到了。

现在这个res是个字符串,刚刚我们说过可以用split拆分。然后解压赋值 。

with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
    res = f.read()
    print(res)
    username, password = res.strip().split('----')
    print(res)

到了这一步,整个程序就写完了。

input_username = input('请输入你的账号>>>').strip()
input_password = input('请输入你的密码>>>').strip()
with open(r'G:\PythonProject\学习\学习文件\date\user.txt', mode='rt', encoding='utf-8') as f:
    res = f.read()
    username, password = res.strip().split('----')
if input_username == username and input_password == password:
    print('登入成功')
else:
    print('账号或密码错误')

然后我们再来打印一下整个程序。

未经允许不得转载:445IT之家 » Python 登入案例优化

赞 (0) 打赏

相关推荐

    暂无内容!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏