方法一
def account_login():
password = input('Password:')
if password == '12345':
print('Login success!')
else:
print('Wrong password or invalid input!')
account_login()
account_login()
釋義:
- 第1行:定義函數,並不需要參數;
- 第2行:使用 input 獲得用戶輸入的字符串並儲存在變量 password 中;
- 第3、4行:設置條件,如果用戶輸入的字符串和預設的密碼12345相等時,就執行打印文本‘Login success!’
- 第5、6行:反之,一切不等於預設密碼的輸入結果,全部會執行打印錯誤提示,並且再次調用函數,讓用戶再次輸入密碼;
- 第7行:運行函數;
- 第8行:調用函數。
方法二
def account_login():
password = input('Password:')
password_correct = password == '12345' #here
if password_correct:
print('Login success!')
else:
print('Wrong password or invalid input!')
account_login()
account_login()
針對方法一if后面的布爾表達式過長或難以理解情況
方法二采取給變量賦值的方法來儲存布爾表達式返回的布爾值True 或 False
密碼重置功能
password_list = ['*#*#','12345']
def account_login():
password = input('Password:')
password_correct = password == password_list[-1]
password_reset = password == password_list[0]
if password_correct:
print('Login success!')
elif password_reset:
new_password = input('Enter a new password:')
password_list.append(new_password)
print('Your password has changed successfully!')
account_login()
else:
print('Wrong password or invalid input!')
account_login()
account_login()
第1行:創建一個列表,用於儲存用戶的秘密/初始密碼和其他數據(對實際數據庫的簡化模擬);
第2行:定義函數;
第3行:使用input獲取用戶輸入的字符串並儲存在變量password中;
第4行:當用戶輸入的密碼等於密碼列表中最后一個元素的時候(即用戶最新設定的密碼),登錄成功;
第5~9行:當用戶輸入的密碼等於密碼列表中第一個元素的時候(即重置密碼的“口令”)觸發密碼變更,並將變更后的密碼儲存至列表的最后一個,成為最新的用戶密碼;
第10行:反之,一切不等於預設密碼的輸入結果,全部會執行打印錯誤提示,並且再次調用函數,讓用戶再次輸入密碼;
第11行:調用函數。