登录接口练习
要求:读取帐号文件,登录三次错误密码将锁定并写入锁定文件
<code># python 3.6 登录接口练习</code>
<code># _*_ coding:utf-8 _*_</code>
<code>import</code> <code>sys</code>
<code>import</code> <code>os</code>
<code>import</code> <code>getpass</code>
<code>i</code><code>=</code><code>0</code>
<code>while</code> <code>i < </code><code>3</code> <code>:</code>
<code> </code><code>username </code><code>=</code> <code>input</code><code>(</code><code>"请输入用户名:"</code><code>)</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"account_lock.txt"</code><code>,</code><code>"r"</code><code>) as account_lock_file : </code><code>#打开锁定用户文件,r为只读</code>
<code> </code><code>account_lock_list </code><code>=</code> <code>account_lock_file.readlines() </code><code>#转换成列表</code>
<code> </code><code>for</code> <code>lock_name </code><code>in</code> <code>account_lock_list : </code><code>#循环遍历文件</code>
<code> </code><code>lock_name </code><code>=</code> <code>lock_name.strip(</code><code>'\n'</code><code>) </code><code>#去掉换行符</code>
<code> </code><code>if</code> <code>username </code><code>=</code><code>=</code> <code>lock_name :</code>
<code> </code><code>sys.exit(</code><code>"用户{_username}已被锁定,请联系管理员解锁!!"</code><code>.</code><code>format</code><code>(_username</code><code>=</code><code>username))</code>
<code> </code><code>#password =input("请输入密码:")</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"accounts.txt"</code><code>,</code><code>'r'</code><code>) as account_file :</code>
<code> </code><code>account_list </code><code>=</code> <code>account_file.readlines()</code>
<code> </code><code>for</code> <code>account_line </code><code>in</code> <code>account_list :</code>
<code> </code><code>(name,pas) </code><code>=</code> <code>account_line.strip(</code><code>'\n'</code><code>).split() </code><code>#去掉换行符,并以,为切片</code>
<code> </code><code>if</code> <code>username </code><code>=</code><code>=</code> <code>name :</code>
<code> </code><code>j </code><code>=</code> <code>0</code>
<code> </code><code>while</code> <code>j < </code><code>3</code> <code>:</code>
<code> </code><code>password </code><code>=</code> <code>getpass.getpass(</code><code>"请输入用户密码:"</code><code>)</code>
<code> </code><code>if</code> <code>password </code><code>=</code><code>=</code> <code>pas :</code>
<code> </code><code>print</code><code>(</code><code>"用户{_name}登录成功"</code><code>.</code><code>format</code><code>(_name </code><code>=</code> <code>username))</code>
<code> </code><code>sys.exit()</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>if</code> <code>j !</code><code>=</code> <code>2</code> <code>:</code>
<code> </code><code>print</code><code>(</code><code>"用户{_name}密码输入错误,请重新输入,还有{d}次机会"</code><code>.</code><code>format</code><code>(_name </code><code>=</code> <code>username,d</code><code>=</code><code>2</code><code>-</code><code>j))</code>
<code> </code><code>j </code><code>=</code> <code>j </code><code>+</code> <code>1</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>with </code><code>open</code><code>(</code><code>"account_lock.txt"</code><code>,</code><code>'a+'</code><code>) as account_lock_file :</code>
<code> </code><code>account_lock_file.write(username </code><code>+</code><code>'\n'</code><code>)</code>
<code> </code><code>sys.exit(</code><code>"超过最大错误次数,用户{_name}已被锁定,并退出"</code><code>.</code><code>format</code><code>(_name</code><code>=</code><code>username))</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>pass</code>
<code> </code><code>else</code><code>:</code>
<code> </code><code>if</code> <code>i !</code><code>=</code> <code>2</code> <code>:</code>
<code> </code><code>print</code><code>(</code><code>"用户{_name}不存在,请重新输入,还有{d}次机会!"</code><code>.</code><code>format</code><code>(_name </code><code>=</code> <code>username,d</code><code>=</code><code>2</code><code>-</code><code>i))</code>
<code> </code><code>i </code><code>=</code> <code>i </code><code>+</code> <code>1</code> <code>#当用户输入用户名错误时增加错误次数</code>
<code>else</code><code>:</code>
<code> </code><code>sys.exit(</code><code>"用户{_username}不存在,系统即将退出"</code><code>.</code><code>format</code><code>(_username</code><code>=</code><code>username))</code>
<code></code>
本文转自pimg200551CTO博客,原文链接:http://blog.51cto.com/pimg2005/1980637 ,如需转载请自行联系原作者