1、邏輯運算子的運算
#and or not
#優先順序,()> not > and > or
print(not 2 > 1 and 3 < 4 or 4 > 5 and 2 > 1 and 9 > 8 or 7 < 6) # f
'''x or y x true,則返回x'''
print(1 or 2) # 1
print(3 or 2) # 3
print(0 or 2) # 2
print(0 or 100) # 100
'''x and y x true,則返回y'''
print(1 and 2) #2
print(0 and 2) #2
print(2 or 1 < 3) #2
print(2 and 1 < 3) #t
print(1<3 or 2) #t
print(1 < 3 and 2) #2
print(3 > 1 or 2 and 2) #t
2、is和==的區別?
is判斷兩個引用是否指向的是同乙個變數,即記憶體id是否相等,
==則是呼叫的__eq__方法,一般是用於判斷值是否相等,也可以重寫__eq__方法實現想要的效果。
3、dict與list的查詢複雜度?
dict用hash實現,查詢的時間複雜度是o(1),list則為o(n)。
4、http和https的區別
https協議需要到ca申請證書,一般免費證書很少,需要交費。
注:ca - certificate authority,身份認證,權威機構認證,ca認證:
http是超文字傳輸協議,資訊是明文傳輸,https 則是具有安全性的ssl加密傳輸協議
http和https使用的是完全不同的連線方式用的埠也不一樣,前者是80,後者是443。
http的連線很簡單,是無狀態的
https協議是由ssl(安全套接層)+http協議構建的可進行加密傳輸、身份認證的網路協議 要比http協議安全
注:ssl(安全套接層協議):是為網路通訊提供安全及資料完整性的一種安全協議。
ssl協議提供的服務主要有:
1.認證使用者和伺服器,確保資料傳送到正確的客戶機和伺服器;
2.加密資料以防止資料中途被竊取;
3.維護資料的完整性,確保資料在傳輸過程中不被改變
5、一行**實現1--100之和
sum(range(0,101))
6、如何在乙個函式內部修改全域性變數
num = 1
def fun():
global a
a = 10
print(a)
fun()
print(a)
7、列出5個python標準庫
sys: 通常用於命令列引數
re: 正則匹配
math: 數**算
datetime:處理日期時間
random:隨機數
8、字典如何刪除鍵和合併兩個字典
dic =
del dic["name"]
print(dic) #結果:
dic2 =
dic.update(dic2)
print(dic) #結果:
9、談下python的gil
gil 是python的全域性直譯器鎖,同一程序中假如有多個執行緒執行,乙個執行緒在執行python程式的時候會霸佔python直譯器(加了一把鎖即gil),
使該程序內的其他執行緒無法執行,等該執行緒執行完後其他執行緒才能執行。如果執行緒執行過程中遇到耗時操作,則直譯器鎖解開,使其他執行緒執行。所以在多執行緒中,
執行緒的執行仍是有先後順序的,並不是同時進行。
多程序中因為每個程序都能被系統分配資源,相當於每個程序有了乙個python直譯器,所以多程序可以實現多個程序的同時執行,缺點是程序系統資源開銷大
10、python實現列表去重的方法
list = [1,1,2,2,3,3,4,4,5,5]
demo = set(list) #先去重
print(demo) #結果:
demo1 = [i for i in demo]
print(demo1) #結果:[1, 2, 3, 4, 5]
11、fun(*args,**kwargs)中的*args,**kwargs什麼意思?
首先,解釋星號的作用,乙個星號*的作用是將tuple或者list中的元素進行unpack,分開傳入,作為多個引數;
兩個星號**的作用是把dict型別的資料作為引數傳入。
kwargs是keyword argument的縮寫,args就是argument。我們知道,在python中有兩種引數,
都會使得位置無法判斷。因此常見的也是*args 在 **kwargs 前面。
這兩個的用途和效果如下:
def this_fun(a,b,*args,**kwargs):
print()
print(b)
print(args)
print(kwargs)
this_fun(0,1,2,3,index1=11,index2=22)
#結果:
(2, 3)
12、python2和python3的range(100)的區別?
python2返回列表,python3返回迭代器,節約記憶體
13、一句話解釋什麼樣的語言能夠用裝飾器?
函式可以作為引數傳遞的語言,可以使用裝飾器
14、python內建資料型別有哪些?
整型--int
布林型--bool
字串--str
列表--list
元組--tuple
字典--dict
15、列表[1,2,3,4,5],請使用map()函式輸出[1,4,9,16,25],並使用列表推導式提取出大於10的數,最終輸出[16,25]
map()函式第乙個引數是fun,第二個引數是一般是list,第三個引數可以寫list,也可以不寫,根據需求
list = [1,2,3,4,5]
def fun(x):
return x**2
rse = map(fun,list)
l = [i for i in rse if i>10]
print(l) #結果: [16,25]
16、python中生成隨機整數、隨機小數、0--1之間小數方法
隨機整數:random.randint(a,b),生成區間內的整數
隨機小數:習慣用numpy庫,利用np.random.randn(5)生成5個隨機小數
0-1隨機小數:random.random(),括號中不傳參
import random
import numpy as np
res1 = random.randint(10,20)
res2 = np.random.randn(5)
res3 = random.random()
print(res1)
print(res2)
print(res3)
#結果:
[-0.06864183 -0.0960355 1.31538408 0.79103814 -1.2347433 ]
0.19029834589798245
面試經典題
include include char strcpy char strdest,const char strsrc 將源字串加const表明為輸入引數 bool 型別 if var int 型別 if var 0 float型別 const float epsinon 0.00001 if x e...
python經典面試 python經典面試題
基礎部分 1.將列表按照下列規則排序,補全 1.整數在前,負數在後2.正數從小到大3.負數從大到小 lst 7,8,5,4,0,2,5 補全 sorted lst,key lambda x 答案 lst 7,8,5,4,0,2,5 lst sorted lst,key lambda x int x ...
面試經典70題
2 你覺得你個性上最大的優點是什麼?3 說說你最大的缺點?4 你對加班的看法?5 你對薪資的要求?6 在五年的時間內,你的職業規劃?7 你朋友對你的評價?8 你還有什麼問題要問嗎?9 如果通過這次面試我們單位錄用了你,但工作一段時間卻發現你根本不適合這個職位,你怎麼辦?10 在完成某項工作時,你認為...