课时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种方式
注意事项:假如有文件是在原来包独有的,那么引用后会出现报错。