天天看点

python 练习-登录接口

登录接口练习

要求:读取帐号文件,登录三次错误密码将锁定并写入锁定文件

<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 &lt; </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 &lt; </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 ,如需转载请自行联系原作者