一、一行代碼實現1--100之和css
二、如何在一個函數內部修改全局變量html
三、列出5個python標準庫python
os:提供了很多與操做系統相關聯的函數mysql
sys: 一般用於命令行參數linux
re: 正則匹配正則表達式
math: 數學運算redis
datetime:處理日期時間算法
四、字典如何刪除鍵和合並兩個字典sql
執行結果數據庫
五、談下python的GIL
python的GIL是python的全局解釋器鎖,同一個進程中若是有多個線程運行,一個線程運行的時候會霸佔解釋器,上了個鎖即GIL,進程內其餘線程沒法運行。若是遇到耗時操做,GIL會打開,其餘線程先運行,因此多線程仍然是有前後順序的。
六、python實現列表去重的方法
執行結果
七、fun(*args,**kwargs)中的*args,**kwargs什麼意思?
用於函數的接收參數。能夠接收補丁數量的參數。
*args是用來接收一個非鍵值對的可變數量的參數列表
**kwargs容許接收不定長度的鍵值對。
八、簡述with方法打開處理文件幫我咱們作了什麼?
九、列表[1,2,3,4,5],請使用map()函數輸出[1,4,9,16,25],並使用列表推導式提取出大於10的數,最終輸出[16,25]
執行結果
十、python中生成隨機整數、隨機小數、0--1之間小數方法
隨機整數:random.randint(a,b),生成區間內的整數
隨機小數:習慣用numpy庫,利用np.random.randn(5)生成5個隨機小數
0-1隨機小數:random.random(),括號中不傳參
十一、避免轉義給字符串加哪一個字母表示原始字符串?
r , 表示須要原始字符串,不轉義特殊字符
十二、<div class="nam">中國</div>,用正則匹配出標籤裏面的內容(「中國」),其中class的類名是不肯定的
1三、python中斷言方法舉例
執行結果
1四、數據表student有id,name,score,city字段,其中name中的名字可有重複,須要消除重複行,請寫sql語句
select distinct name from student
1五、10個Linux經常使用命令
cd mv cp rm mkdir pwd -V which cat vim grep tree ls
1六、列出python中可變數據類型和不可變數據類型,並簡述原理
不可變:int,str,tuple 不容許變量的值發生變化,若是改變了值,至關於建立一個新的對象,相同值的對象,內存中的地址是同樣的。
可變對象:list,dict 容許變量的值發生變化,例如append操做後,改變的是原對象的值。若是是兩個相同值的對象,內存中的地址也是不同的。
1七、s = "ajldjlajfdljfddd",去重並從小到大排序輸出"adfjl"
1八、用lambda函數實現兩個數相乘
1七、字典根據鍵從小到大排序dict={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}
sorted的key參數,表示在排序以前,能夠指定一個函數對排序對象先運算,排序依據。i[0]表示字典的鍵。i[1]表示值
items方法能夠獲取字典的鍵值對元組
執行結果
1八、利用collections庫的Counter方法統計字符串每一個單詞出現的次數"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
1九、字符串a = "not 404 found 張三 99 深圳",每一個詞中間是空格,用正則過濾掉英文和數字,最終輸出"張三 深圳"
執行結果
20、filter方法求出列表全部奇數並構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2一、列表推導式求列表全部奇數並構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2二、正則re.complie做用
將本身寫的正則編譯成對象,可重複使用,加快速度。
2三、兩個列表[1,5,7,9]和[2,2,6,8]合併爲[1,2,2,3,6,7,8,9]
2四、用python刪除文件和用linux命令刪除文件方法
python: os.remove("文件名")
linux:rm
2五、log日誌中,咱們須要用時間戳記錄error,warning等的發生時間,請用datetime模塊打印當前時間戳 「2018-04-01 11:38:54」
星期幾也順便寫了
2六、數據庫優化查詢方法
外鍵,索引、聯合查詢、選擇特定字段
2七、請列出你會的任意一種統計圖(條形圖、折線圖等)繪製的開源庫,第三方也行
matplotlib
2八、寫一段自定義異常代碼
2九、正則表達式匹配中,(.*)和(.*?)匹配區別?
(.*)是貪婪匹配,儘量多的匹配
(.*?)是儘量少的匹配結果
30、[[1,2],[3,4],[5,6]]一行代碼展開該列表,得出[1,2,3,4,5,6]
tip:列表生成式嵌套循環
numpy庫的flatten方法,- -簡單暴力
3一、x="abc",y="def",z=["d","e","f"],分別求出x.join(y)和x.join(z)返回的結果
執行結果
至關於 吧y分開,x加入到裏面, d abc e abc f
3二、舉例說明異常模塊中try except else finally的相關意義
else 沒有捕捉到異常,執行else裏面的,
finally 無論有木有異常 都執行finally裏面的 參見withopen裏面 不管是否成功打開文件,都會執行close()
3三、舉例說明zip()函數用法
zip()在運算時,能接受一個或多個可迭代對象做爲參數,進行一一對應,返回一個元組的列表
執行結果:
3四、a="小明 Python 98分",用re.sub,替換爲小明 Java 100分
()限定大寫字母開頭到數字結尾之間的,
.*表示任意個任意字符
3五、寫5條經常使用sql語句
show databases;
show tables;
select * from tablename;
desc tablename;
delete from tablename where 字段名=xxx;
select * from tablename order by 字段名 asc(升序)或者desc(降序);
3六、a="hello"和b="你好"編碼成bytes類型
a = b"hello"
b = "哈哈".encode()
3七、[1,2,3]+[4,5,6]的結果是多少?
至關於extend() 合併列表
3八、提升python運行效率的方法
一、使用生成器,節約內存
二、優化for循環
三、核心模塊用Cpython PyPy等,提升效率
四、多進程,多線程、協程
五、判斷可能性大的放到前面
3九、簡述mysql和redis區別
redis:內存級非關係數據庫,速度快,做網頁緩存
mysql:關係型數據庫 檢索有必定io操做,訪問速度慢
40、正則匹配,匹配日期2018-03-20
匹配結果
4一、list=[7,6,5,4,3,2,1],從小到大排序,不準用sort,輸出[1,2,3,4,5,6,7]
冒泡排序
i責設置冒泡次數,
j爲列表下標
執行結果
4二、寫一個單列模式
執行結果
4三、列出常見的狀態碼和意義
200 正常
204 No content 請求成功,無內容返回
206 GET範圍請求已成功處理
301 重定向
400 參數錯誤
401 http認證失敗
403 權限拒絕了
404 無url對應資源
500 服務器錯誤
4四、列出常見MYSQL數據存儲引擎
InnoDB:支持事務處理,支持外鍵,支持崩潰修復能力和併發控制。若是須要對事務的完整性要求比較高(好比銀行),要求實現併發控制(好比售票),那選擇InnoDB有很大的優點。若是須要頻繁的更新、刪除操做的數據庫,也能夠選擇InnoDB,由於支持事務的提交(commit)和回滾(rollback)。
MyISAM:插入數據快,空間和內存使用比較低。若是表主要是用於插入新記錄和讀出記錄,那麼選擇MyISAM能實現處理高效率。若是應用的完整性、併發性要求比 較低,也可使用。
4五、簡述同源策略
同源策略須要同時知足如下三點要求:
1)協議相同
2)域名相同
3)端口相同
http:www.test.com與https:www.test.com 不一樣源——協議不一樣
http:www.test.com與http:www.admin.com 不一樣源——域名不一樣
http:www.test.com與http:www.test.com:8081 不一樣源——端口不一樣
只要不知足其中任意一個要求,就不符合同源策略,就會出現「跨域」
4六、簡述cookie和session的區別
1,session 在服務器端,cookie 在客戶端(瀏覽器)
二、session 的運行依賴 session id,而 session id 是存在 cookie 中的,也就是說,若是瀏覽器禁用了 cookie ,同時 session 也會失效,存儲Session時,鍵與Cookie中的sessionid相同,值是開發人員設置的鍵值對信息,進行了base64編碼,過時時間由開發人員設置
三、cookie安全性比session差
4七、簡述多線程、多進程
進程:
一、操做系統資源分配的基本單位,進程之間相互獨立
二、穩定性好,可是資源消耗大。
線程:
一、cpu進行資源分配和調度的基本單位,線程是進程再次細分,是比進程更小的獨立運行的基本單位,一個進程下全部線程共享該進程資源,
二、IO操做密集,多線程運行效率高,可是若是其中一個崩潰,進程也會崩潰。
應用:
IO密集型用多線程,等待時候能夠切換帶其餘線程運行
CPU密集的用多進程,IO操做少,由於線程多霸佔GIL,其餘線程不能運行,不能充分發揮多核CPU優點。
4八、IOError、AttributeError、ImportError、IndentationError、IndexError、KeyError、SyntaxError、NameError分別表明什麼異常
IOError:輸入輸出異常
AttributeError:試圖訪問一個對象沒有的屬性
ImportError:沒法引入模塊或包,基本是路徑問題
IndentationError:語法錯誤,代碼沒有正確的對齊
IndexError:下標索引超出序列邊界
KeyError:試圖訪問你字典裏不存在的鍵
SyntaxError:Python代碼邏輯語法出錯,不能執行
NameError:使用一個還未賦予對象的變量
4九、python中copy和deepcopy區別
複製不可變對象(數值,str,tuple)時候沒區別
複製可變對象(list,dict)時候,copy複製的是指針,deepcopy複製的是對象。
50、列出幾種魔法方法並簡要介紹用途
__init__:對象初始化方法
__new__:建立對象時候執行的方法,單列模式會用到
__str__:當使用print輸出對象的時候,只要本身定義了__str__(self)方法,那麼就會打印從在這個方法中return的數據
__del__:刪除對象執行的方法
5一、C:\Users\ry-wu.junya\Desktop>python 1.py 22 33命令行啓動程序並傳參,print(sys.argv)會輸出什麼數據?
5二、請將[i for i in range(3)]改爲生成器
執行結果
5三、舉例sort和sorted對列表排序,list=[0,-1,3,-10,5,9]
sort是在list基礎上進行修改,無返回值
sorted返回的是是新的list
5四、對list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],使用lambda函數從小到大排序
執行結果
5五、使用lambda函數對list排序foo = [-5,8,0,4,9,-4,-20,-2,8,2,-4],輸出結果爲
[0,2,4,8,8,9,-2,-4,-4,-5,-20],正數從小到大,負數從大到小
執行結果
5六、列表嵌套字典的排序,分別根據年齡和姓名排序
執行結果
5七、列表嵌套元組,分別按字母和數字排序
與上相似
5八、列表嵌套列表排序,年齡數字相同怎麼辦?
5九、根據鍵對字典排序(方法一,zip函數)
執行結果
60、根據鍵對字典排序(方法二,不用zip)
6一、列表推導式、字典推導式、生成器
6二、最後出一道檢驗題目,根據字符串長度排序,看排序是否靈活運用
6三、舉例說明SQL注入和解決辦法
6四、正則匹配以163.com結尾的郵箱
6五、s="info:xiaoZhang 33 shandong",用正則切分字符串輸出['info', 'xiaoZhang', '33', 'shandong']
6六、遞歸求和1-10
6七、python字典和json字符串相互轉化方法
json包裏的dumps用來轉成字符串
loads用來轉成字典
6八、MyISAM 與 InnoDB 區別:
一、InnoDB 支持事務,MyISAM 不支持,這一點是很是之重要。事務是一種高
級的處理方式,如在一些列增刪改中只要哪一個出錯還能夠回滾還原,而 MyISAM
就不能夠了;
二、MyISAM 適合查詢以及插入爲主的應用,InnoDB 適合頻繁修改以及涉及到
安全性較高的應用;
三、InnoDB 支持外鍵,MyISAM 不支持;
四、對於自增加的字段,InnoDB 中必須包含只有該字段的索引,可是在 MyISAM
表中能夠和其餘字段一塊兒創建聯合索引;
五、清空整個表時,InnoDB 是一行一行的刪除,效率很是慢。MyISAM 則會重
建表;
6九、正則匹配不是以4和7結尾的手機號
70、簡述python引用計數機制
python垃圾回收主要以引用計數爲主,標記-清除和分代清除爲輔的機制,其中標記-清除和分代回收主要是爲了處理循環引用的難題。
引用計數算法
只有當引用計數爲0的時候,對象纔會被真的刪除
7一、正則表達式匹配第一個URL
7二、正則匹配中文
7三、簡述樂觀鎖和悲觀鎖
悲觀鎖, 就是很悲觀,每次去拿數據的時候都認爲別人會修改,因此每次在拿數據的時候都會上鎖,這樣別人想拿這個數據就會block直到它拿到鎖。傳統的關係型數據庫裏邊就用到了不少這種鎖機制,好比行鎖,表鎖等,讀鎖,寫鎖等,都是在作操做以前先上鎖。
樂觀鎖,就是很樂觀,每次去拿數據的時候都認爲別人不會修改,因此不會上鎖,可是在更新的時候會判斷一下在此期間別人有沒有去更新這個數據,可使用版本號等機制,樂觀鎖適用於多讀的應用類型,這樣能夠提升吞吐量
7四、Linux命令重定向 > 和 >>
Linux 容許將命令執行結果 重定向到一個 文件
將本應顯示在終端上的內容 輸出/追加 到指定文件中
> 表示輸出,會覆蓋文件原有的內容
>> 表示追加,會將內容追加到已有文件的末尾
用法示例:
-
將
echo 輸出的信息保存到 1
.txt 裏
echo
Hello
Python > 1
.txt
-
將
tree 輸出的信息追加到 1
.txt 文件的末尾
tree >> 1
.txt
7五、正則表達式匹配出<html><h1>www.itcast.cn</h1></html>
7六、python傳參數是傳值仍是傳址?
傳的是指針,是引用傳遞
對於不可變類型(數值,str,tuple),不會改變原來變量
對於可變數據類型(list dict),會修改對應變量。
7七、生成0-100的隨機數
7八、lambda匿名函數好處
精簡代碼,lambda省去了定義函數,map省去了寫for循環過程
7九、python正則中search和match