課時11 函數的定義
格式:
def func_name:
function
i.e. def add(a,b):
return a+b
函數名稱不能使用系統内置的關鍵字。
代碼
def add(a,b):
return a+b
print add(1,2)
課時12 形式參數與實際參數的介紹
a和b是函數的形式參數
函數的調用方法:func(parama)
課時13 函數的預設參數
Null None的差別
null是指什麼都沒有,none是指有占位符。
預設參數與實際參數都有,按實際參數來。
課時14 形式參數與預設參數的混合應用
當混用時,def定義時,必須形式參數在前,預設參數在後。
這樣,調用的時候可以隻填形參代表的參數。
課時15 函數的傳回值應用
為什麼函數定義時,用return。
ui:元素的定位
api: token,session的擷取
cookie session token差別
cookie一個非常具體的東西,指的就是浏覽器裡面能永久存儲的一種資料,僅僅是浏覽器實作的一種資料存儲功能。
session伺服器給每個用戶端配置設定不同的“身份辨別”,然後用戶端每次向伺服器發請求的時候,都帶上這個“身份辨別”,伺服器就知道這個請求來自于誰了。至于用戶端怎麼儲存這個“身份辨別”,可以有很多種方式,對于浏覽器用戶端,大家都預設采用 cookie 的方式。session存放伺服器。
token:基于Token的身份驗證的過程如下:
1.使用者通過使用者名和密碼發送請求。
2.程式驗證。
3.程式傳回一個簽名的token 給用戶端。
4.用戶端儲存token,并且每次用于每次發送請求。
5.服務端驗證token并傳回資料。
伺服器不儲存session id 了, 我隻是生成token , 然後驗證token , 我用我的CPU計算時間擷取了我的session 存儲空間 !
代碼
def function1():
return 'result'
def function(x):
if x=='result1':
print 'ok'
else:
print 'not ok'
function(function1())
課時16 函數實戰(注冊功能的實作)
寫一個注冊功能
def registere():
'''注冊功能,根據使用者輸入的使用者名、密碼,自動儲存到指定的文本中'''
username = raw_input('請輸入您想要注冊的使用者名')
password = raw_input('請輸入您的密碼')
temp = username + '|'+ password
with open('info.txt','w') as f:
f.write(temp)
registere()
寫登入功能
def login():
'''
使用者登入系統
:return: True 登入成功 False 登入失敗
'''
f = open('info.txt','r')
list = f.read().split('|')
print list,'username:'+list[0],'password:'+list[1]
login()
print裡面+号以及逗号不同之處,逗号在輸出的時候是個空格,+号沒空格。
課時17 函數實戰(登入功能的實作)
def login():
'''
使用者登入系統
:return: True 登入成功 False 登入失敗
'''
f = open('info.txt','r')
list = f.read().split('|')
username = raw_input(u"請輸入您的使用者名")
password = raw_input(u"請輸入您的密碼")
if username==list[0] and password==list[1]:
print 'login pass'
return True
else:
print 'login fail'
return False
課時18 函數實戰(擷取使用者資訊)
def getLoginInfo():
'''得到使用者登入成功的傳回資訊'''
f = open('info.txt', 'r')
list = f.read().split('|')
if login():
print u'恭喜{0}登入成功,歡迎回來'.format(list[0])
else:
print False
getLoginInfo()
課時19 函數實戰(主程式的實作)
def registere():
'''注冊功能,根據使用者輸入的使用者名、密碼,自動儲存到指定的文本中'''
username = raw_input('請輸入您想要注冊的使用者名')
password = raw_input('請輸入您的密碼')
temp = username + '|'+ password
with open('info.txt','w') as f:
f.write(temp)
def login():
'''
使用者登入系統
:return: True 登入成功 False 登入失敗
'''
username = raw_input(u"請輸入您的使用者名")
password = raw_input(u"請輸入您的密碼")
if username==list[0] and password==list[1]:
return True
else:
return False
def getLoginInfo():
'''得到使用者登入成功的傳回資訊'''
print u'恭喜{0}登入成功,歡迎回來'.format(list[0])
def system():
'''主函數'''
while True:
choice = int(raw_input('請選擇,1、注冊 2、登入 3、退出此系統'))
if choice==1:
registere()
elif choice==2:
resultOfLogin = login()
if resultOfLogin:
getLoginInfo()
elif choice==3:
print 'fail'
exit()
else:
break
if __name__ == '__main__':
system()
課時20 函數實作代碼優化
全部代碼
def readfile():
'''讀取文本中的使用者名以及密碼,傳回一個list清單'''
fileread = open('info.txt','r')
list = fileread.read().split('|')
return list
def registere(username,password):
'''注冊功能,根據使用者輸入的使用者名、密碼,自動儲存到指定的文本中'''
temp = username + '|'+ password
with open('info.txt','w') as f:
f.write(temp)
def login(username,password):
'''
使用者登入系統
:return: True 登入成功 False 登入失敗
'''
list = readfile()
if username==list[0] and password==list[1]:
return True
else:
return False
def name():
username = raw_input('請輸入您的使用者名')
return username
def pw():
password = raw_input('請輸入您的密碼')
return password
def getLoginInfo():
'''得到使用者登入成功的傳回資訊'''
list = readfile()
print u'恭喜{0}登入成功,歡迎回來'.format(list[0])
def system():
'''主函數'''
while True:
choice = int(raw_input('請選擇,1、注冊 2、登入 3、退出此系統'))
if choice==1:
registere(name(),pw())
elif choice==2:
resultOfLogin = login(name(),pw())
if resultOfLogin:
getLoginInfo()
else:
print 'login fail'
elif choice==3:
print 'exit'
exit()
else:
break
if __name__ == '__main__':
system()
課時21 認識子產品與包
什麼是子產品,子產品就是一個py檔案,一個Python檔案就是一個子產品。
子產品裡面有什麼?
a. 類 b. 函數 c. 變量
包與子產品之間的關系:1對多的關系
Project與包之間關系: 1對多的關系
包與檔案夾的差別是:
1、包下面必須有__init__.py
2、檔案夾下什麼都沒有
課時22 子產品與子產品之間的調用
兩種方式
1、import 調用的子產品
2、from 子產品 import * (或者具體的)
調用函數并使用子產品中的函數
import login
login.system()
但是上面這個方面使用函數的時候需要加上login.system()
使用第2中方式,就直接可以使用system()
課時23 包中子產品之間的調用
兩種方式
1、import 包.子產品
2、from 包.子產品 import 函數
一般也是推薦第2種方式
注意事項:假如有檔案是在原來包獨有的,那麼引用後會出現報錯。