python之day5下半场
迭代器
python中的 for
递归:函数的传递
def func(n): n += 1 if n >=4: return 'end' else: return func(n) r = func(4) print(r)
li = [] def func(n): li.append(n) if n == 1: num = 1 for i in li: num *= i print(num) return 'end' else: n -=1 return func(n) func(7)
模块:
Py:模块
其他:类库
先导入后使用
import t2,lib.t3
t2.login()
lib.t3.go()
为什么要有模块?
将代码归类
导入模块的依据?
Import sys
Sys.path
导入模块
单模块:
Import
嵌套在文件夹下的:
From XXX import xxx
From XXX import xxx as XXX
import sys
sys.path.append('E:\\') #导入E盘位置,sys.path 是模块列表
第三方模块
安装:
Pip3 :pip3 install request python -m pip install requests
源码 python3 setup.py install
序列化相关
Import json
Import pickle
通过loads反序列化时 一定要用 “”
Load和dump
import json r = json.dumps([11,22,33]) li = '["alex","eric"]' ret = json.loads(li) print(ret,type(ret)) li = [11,22,33] json.dump(li,open('db','w')) li = json.load(open('db','r')) print(type(li),li)
import pickle li = [11,22,33] r = pickle.dumps(li) print(r) ret = pickle.loads(r) print(ret) li = [11,22,33] pickle.dump(li,open('db','wb')) li = pickle.load(open('db','rb')) print(li)
Pickle 只能python使用
Json只支持python的基础类型(字典列表)
Json / pickle
#json更适合跨语言,字符串,基本数据类型
#pickle,python复杂类型的序列化操作。仅适用于python
而且不能版本的python也会有问题
时间模块:
time:
import time import datetime print(time.time()) print(time.ctime()) print(time.ctime(time.time()-86640)) print(time.gmtime(time.time()-86640)) print(time.localtime(time.time()-86640)) print(time.mktime(time.localtime())) print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime())) print(time.strptime("2016-01-28","%Y-%m-%d")) print("__________________________________\n\n") print(datetime.date.today()) print(datetime.date.fromtimestamp(time.time()-864400)) current_time = datetime.datetime.now() print(current_time) print(current_time.timetuple()) print(current_time.replace(2014,9,12)) str_to_date = datetime.datetime.strftime("21/11/06 16:30","%d/%m/%y %H:%M") new_date = datetime.datetime.now() + datetime.timedelta(days=10) #比现在加10天 new_date = datetime.datetime.now() + datetime.timedelta(days=-10) #比现在减10天 new_date = datetime.datetime.now() + datetime.timedelta(hours=-10) #比现在减10小时 new_date = datetime.datetime.now() + datetime.timedelta(seconds=120) #比现在+120s print(new_date)
日志模块:
Logger:
Logger
局部logger级别 要高于全局,如果低于全局,则按照全局来。
如果全局是info 局部是error 就是按照error
如果全局是info 局部是 debug 就是 info
作业:
调用信用卡接口结账
信用卡提现 不能超过一半
免费试用 48天
信用卡转账算提现