#1.一行代碼實現(xiàn)1--100之和
print(sum(range(0,101)))
#如何在一個函數(shù)內部修改全局變量
a =3
def fun():
global a
a? =5
fun()
print(a)
#2.列出幾個python 標準庫
'''
sys: python運行環(huán)境的變量和函數(shù),與解釋器之間交互。如:sys.argv? sys.version
os: 提供python與操作系統(tǒng)的交互os.remove() os.rename() os.getcwd()
re: 正則,檢測字符串是否與某種模式匹配re.match() re.search() re.findall() re.sub()
math: 數(shù)學類。絕對值 隨機數(shù)等zipfile:zip文件包的解壓'''
#3.python GIL
#全局解釋器鎖
# https://blog.csdn.net/weixin_41594007/article/details/79485847
# 同一個進程中有多個線程進行,
#4.字典中如何刪除和合并字典
# del 刪除? update 合并
#5.*args? **kwargs 函數(shù)定義
# 用于定義函數(shù),*args用于定義不定數(shù)量的參數(shù), **kwargs定義不定長度的鍵值對
def demo(a,*args):
print(a)
for uin args:
print(u)
demo("1","2","3","4")
#6.python的內建數(shù)據類型
# int 整型
# bool 布爾型
# str 字符串
# list 列表
# tuple 元祖
# dict 字典
#7.簡述面向對象中__new__和__init__區(qū)別
# __init__是初始化方法,創(chuàng)建對象后,就立刻被默認調用了,可接收參數(shù)
# __new__必須要有返回值,返回實例化出來的實例
#8.簡述with方法處理文件
# f = open("./1.txt")
# 打開文件在進行讀寫的時候可能會出現(xiàn)一些異常狀況,如果按照常規(guī)的f.open寫法,
# 我們需要try,except,finally,做異常判斷,并且文件最終不管遇到什么情況,
# 都要執(zhí)行finally f.close()關閉文件,with方法幫我們實現(xiàn)了finally中f.close
#9.列出python中可變數(shù)據類型和不可變數(shù)據類型,并簡述原理
# 不可變數(shù)據類型:數(shù)值型、字符串型string和元組tuple不允許變量的值發(fā)生變化
# 可變數(shù)據類型:列表list和字典dict;
#10.re正則
# re.compile是將正則表達式編譯成一個對象,加快速度,并重復使用。
#11.談談python內存機制
# 垃圾回收機制
# Python的垃圾回收機制采用引用計數(shù)機制為主,標記-清除和分代回收機制為輔的策略。其中,標記-清除機制用來解決計數(shù)引用帶來的循環(huán)引用而無法釋放內存的問題,分代回收機制是為提升垃圾回收的效率。
#
# 引用計數(shù)
# Python通過引用計數(shù)來保存內存中的變量追蹤,即記錄該對象被其他使用的對象引用的次數(shù)。Python中有個內部跟蹤變量叫做引用計數(shù)器,每個變量有多少個引用,簡稱引用計數(shù)。當某個對象的引用計數(shù)為0時,就列入了垃圾回收隊列。
1.jwt
Json web token (JWT), 網絡應用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標準。該token被設計為緊湊且安全的,特別適用于分布式站點的單點登錄(SSO)場景。也可直接被用于認證,也可被加密。
session 認證,遵循的是無狀態(tài)的協(xié)議,一般將登陸信息存放在session會話里,因為其存在內存中,所以無法承受更多的用戶。
開銷大,拓展性高,如果別截獲,安全性
基于token的鑒權。
jwt 主要包含3個方面:
header頭部? ?payload載荷? signature簽證
header 主要包含? 聲明類型? 加密方式
palyload 載荷就是存放有效信息的地方
signature 簽證信息
其中部分都是通過 base64加密后使用
2.redies
Redis?高性能非關系型(NoSQL)的鍵值對(key value)數(shù)據庫。
鍵的類型只能是字符串,值可以為字符串 列表 集合等
與傳統(tǒng)的數(shù)據庫不同的是 Redis的數(shù)據存在內存之中,所以讀寫速度很快。
讀的速度11W/s 次,寫的速度是8.1W次/s。
優(yōu)缺點:
1.讀寫性能優(yōu)異
2.支持數(shù)據持久化
3支持事務,原子性
4數(shù)據結構豐富,還只是hash set
5.支持主從復制,主機將自動將數(shù)據同步到叢集,可以進行讀寫分離。
缺:數(shù)據庫收到物理內存的限制,是適用海量的數(shù)據進行高性能的讀碟
?很難支持在線擴容
為什么要用REDIS?
主要從“高性能”和“高并發(fā)”看待問題:
1高性能? 緩存操作就是操作內存
2.高并發(fā):數(shù)據庫處理多個請求,
持久化:
持久化就是把內存的數(shù)據 寫到磁盤中去,防止服務宕機了內存數(shù)據丟失。
Redis 提供兩種持久化機制 RDB(默認) 和 AOF 機制:
RDB:是Redis DataBase縮寫快照
RDB是Redis默認的持久化方式。按照一定的時間將內存的數(shù)據以快照的形式保存到硬盤中,對應產生的數(shù)據文件為dump.rdb。通過配置文件中的save參數(shù)來定義快照的周期。
AOF 機制:),則是將Redis執(zhí)行的每次寫命令記錄到單獨的日志文件中,當重啟Redis會重新將持久化的日志中文件恢復數(shù)據。
3.linux?
查看文件 cat file?
顯示工作路徑 pwd
查看文件和目錄 tree
查看端口 netstat -lnp
本地名? hostname
顯示系統(tǒng)當前進程 top
改變文件或目錄的權限 chmod
? 顯示瞬間進程狀態(tài) ps -aux
4 二叉樹 紅黑樹
5.osi系統(tǒng)互聯(lián)通信參考模型
網絡通信協(xié)議,操作系統(tǒng)管理機器硬件和軟件資源的計算機程序。
client----基于網絡通信----server
browser----基于網絡通信-----server
?應用層 (應用層,表示層,會話層)? ?http(超文本連接協(xié)議)
?傳輸層? ? ?tcp
??網絡層? ?tp
? 網絡接口層 (數(shù)據鏈路層,物理層)
HTTP也是無狀態(tài)的協(xié)議,也就是對于事務處理是沒有記憶的,如果需要處理先前的信息,必須要進行重傳。
比如最開始訪問一個網站是什么樣,重啟瀏覽器后訪問,仍然是一樣的。
所以存儲信息就需要用到Cookie和Session。
Cookie和Session
由于HTTP的無狀態(tài),每次訪問都是一樣,但是我們需要一些個性化的定制時,就需要保存一些信息,這就用到了Cookie和Session。
Cookie是在客戶端的解決方案,是服務器發(fā)給客戶端的特殊信息,將cookie信息存放在響應頭中,然后存放在客戶端中。
客戶端再次請求時,會把Cookie回發(fā)。
服務器收到后,解析請求頭的Cookie,生成對應內容。
比如我們登錄一些網站時,瀏覽器會詢問你是否存儲賬戶,就是將賬戶存入Cookie,下次訪問時就不需要再次輸入賬號進行登錄。
這些數(shù)據都是存放在客戶端(瀏覽器)中的,所以瀏覽器通常提供了管理Cookie的功能。
而Session是在服務器端的機制,會在服務器保存信息。
服務器在使用Session時,會解析客戶端的請求,并通過Session id操作對應的Session,保存用戶的狀態(tài)信息。
如果客戶端是首次請求不包含Session,服務器就為客戶端創(chuàng)建一個Session,并生成對應的Session id。
Session的兩種實現(xiàn)方式:
url回寫,服務器回發(fā)的所有頁面都帶入Session id
在這些頁面中點擊鏈接,都會傳入Session id,但是如果是url輸入訪問,就不會有Session id。
通過Cookie來實現(xiàn),將Session id存在Cookie中
Session更加安全
Cookie可以減少服務器負擔
請求頭
請求頭部由關鍵字/值對組成,每行一對,關鍵字和值用英文冒號“:”分隔。請求頭部通知服務器有關于客戶端請求的信息,典型的請求頭有:
User-Agent:產生請求的瀏覽器類型。
Accept:客戶端可識別的內容類型列表。
Host:請求的主機名,允許多個域名同處一個IP地址,即虛擬主機。