天天看點

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 ,如需轉載請自行聯系原作者