摘要:和的的區別和的的區別返回列表,返回迭代器,節約內存當后面沒有元素可以的時候,彈出錯誤等是可迭代的但不是迭代器,因為函數無法調用它們。等是可迭代的但不是迭代器,因為函數無法調用它們。
1、一行代碼實現1–100之和
# 1、一行代碼實現1--100之和sum(range(1,101))
2、如何在一個函數內部修改全局變量
# 2、如何在一個函數內部修改全局變量# 利用global在函數聲明 修改全局變量a = 6def cos(): global a a =4 cos()print(a)
3、列出5個python標準庫
os:提供了不少與操作系統相關聯的函數
sys: 通常用于命令行參數
re: 正則匹配
math: 數學運算
datetime:處理日期時間
4、字典如何刪除鍵和合并兩個字典
# 4、字典如何刪除鍵和合并兩個字典# del和update方法dic = {"n":"da","g":"asd","f":"ae"}dic2 = {"b":"sdf","k":"aef","l":"thn"}del dic["n"]dic.update(dic2)dic
5、談下python的GIL
GIL 是python的全局解釋器鎖,同一進程中假如有多個線程運行,一個線程在運行python程序的時候會霸占python解釋器(加了一把鎖即GIL),使該進程內的其他線程無法運行,等該線程運行完后其他線程才能運行。如果線程運行過程中遇到耗時操作,則解釋器鎖解開,使其他線程運行。所以在多線程中,線程的運行仍是有先后順序的,并不是同時進行。
多進程中因為每個進程都能被系統分配資源,相當于每個進程有了一個python解釋器,所以多進程可以實現多個進程的同時運行,缺點是進程系統資源開銷大
6、python實現列表去重的方法
# 6、python實現列表去重的方法# 先通過集合去重,在轉列表list = [12,43,7,89,234,667,56,67,67,34,43]a = set(list)a # {7, 12, 34, 43, 56, 67, 89, 234, 667}list = [i for i in a]list
7、fun(args,**kwargs)中的args,**kwargs什么意思?
# 7、fun(*args,**kwargs)中的*args,**kwargs什么意思?# *args和**kwargs主要用于函數定義。你可以將不定數量的參數傳遞給一個函數。# 這里的不定的意思是:預先并不知道,函數使用者會傳遞多少個參數給你所以在這個場景下使用這兩個關鍵字。# *args是用來發送一個非鍵值對的可變數量的參數列表給一個函數.def d(args_a,*args_b): print(args_a) for i in args_b: print(i) d("a","b","y","y","k")
# **kwargs允許你將不定長度的鍵值對,作為參數傳遞給一個函數。# 如果你想要在一個函數里處理帶名字的參數,你應該使用**kwargs。def f(**args): for i,j in args.items(): print(i,j)f(a = "bab")
8、python2和python3的range(100)的區別
# 8、python2和python3的range(100)的區別# python2返回列表,python3返回迭代器,節約內存# 當后面沒有元素可以next的時候,彈出錯誤list = [1,2,45,5,64]it = iter(list)next(it) # 1next(it) # 2next(it) # 45next(it) # 5next(it) # 64# next(it) # StopIteration Traceback (most recent call last)# list、dict、str等是可迭代的但不是迭代器,因為next()函數無法調用它們。可以通過iter()函數將它們轉換成迭代器。
list、dict、str等是可迭代的但不是迭代器,因為next()函數無法調用它們??梢酝ㄟ^iter()函數將它們轉換成迭代器。
9、一句話解釋什么樣的語言能夠用裝飾器?
函數可以作為參數傳遞的語言,可以使用裝飾器
10、python內建數據類型有哪些
整型–int
布爾型–bool
字符串–str
列表–list
元組–tuple
字典–dict
11、簡述面向對象中__new__和__init__區別
# 11、簡述面向對象中__new__和__init__區別# __init__是初始化方法,創建對象后,就立刻被默認調用了,可接收參數class Man(object): def __init__(self,eyes,legs): self.eyes = eyes self.legs = legs def run(self): print("人會跑") m = Man(2,2)print("人的眼睛數量:%d"%m.eyes)print("人的腿數量:%d"%m.legs)
1、__new__至少要有一個參數cls,代表當前類,此參數在實例化時由Python解釋器自動識別2、__new__必須要有返回值,返回實例化出來的實例,這點在自己實現__new__時要特別注意,可以return父類(通過super(當前類名, cls))__new__出來的實例,或者直接是object的__new__出來的實例3、__init__有一個參數self,就是這個__new__返回的實例,__init__在__new__的基礎上可以完成一些其它初始化的動作,__init__不需要返回值4、如果__new__創建的是當前類的實例,會自動調用__init__函數,通過return語句里面調用的__new__函數的第一個參數是cls來保證是當前類實例,如果是其他類的類名,;那么實際創建返回的就是其他類的實例,其實就不會調用當前類的__init__函數,也不會調用其他類的__init__函數。
class A(object): def __init__(self): print("init方法",self) def __new__(cls): print("cls的ID",id(cls)) print("new方法",object.__new__(cls)) return object.__new__(cls) A()print("類A的ID",id(A))# cls的ID 1831505335528 # cls和類ID一樣,說明指向同一個類,也就是說cls就是創建的實例類# new方法 <__main__.A object at 0x000001AA6FE97988> # self和new方法返回地址一樣,說明返回值是對象# init方法 <__main__.A object at 0x000001AA6FE97988># 類A的ID 1831505335528
12、簡述with方法打開處理文件幫我我們做了什么?
# 12、簡述with方法打開處理文件幫我我們做了什么?f = open("./1.txt","wb")try: f.write("hello world")except: passfinally: f.close() # 打開文件在進行讀寫的時候可能會出現一些異常狀況,如果按照常規的f.open# 寫法,我們需要try,except,finally,做異常判斷,并且文件最終不管遇到什么情況,都要執行finally f.close()關閉文件,with方法幫我們實現了finally中f.close# (當然還有其他自定義功能,有興趣可以研究with方法源碼)
13、列表[1,2,3,4,5],請使用map()函數輸出[1,4,9,16,25],并使用列表推導式提取出大于10的數,最終輸出[16,25]
# 13、列表[1,2,3,4,5],請使用map()函數輸出[1,4,9,16,25],并使用列表推導式提取出大于10的數,最終輸出[16,25]# map()函數第一個參數是fun,第二個參數是一般是list,第三個參數可以寫list,也可以不寫,根據需求li = [1,2,3,4,5]def f(x): return x**2re = map(f,li)re # <map at 0x1aa6fe9e648>r = [i for i in re if i > 10]r
14、python中生成隨機整數、隨機小數、0–1之間小數方法
# 14、python中生成隨機整數、隨機小數、0--1之間小數方法# 隨機整數:random.randint(a,b),生成區間內的整數# 隨機小數:習慣用numpy庫,利用np.random.randn(5)生成5個隨機小數# 0-1隨機小數:random.random(),括號中不傳參import randomimport numpy as npr1 = random.randint(1,130)r2 = np.random.randn(5)r3 = random.random()print("整數",r1)print("隨機小數",r2)print("0-1之間小數",r3)
15、避免轉義給字符串加哪個字母表示原始字符串?
r , 表示需要原始字符串,不轉義特殊字符
16、
# 16、<div class="nam">中國</div>,用正則匹配出標簽里面的內容(“中國”),其中class的類名是不確定的import restr = "中國"res = re.findall(r"(.*?)",str)print(res)
17、python中斷言方法舉例
# 17、python中斷言方法舉例# assert()方法,斷言成功,則程序繼續執行,斷言失敗,則程序報錯a = 4assert(a>1),"斷言失敗"print("斷言成功,繼續執行")# 斷言成功,繼續執行b = 6assert(b>10),"斷言失敗"print("失敗了")# AssertionError: 斷言失敗
18、數據表student有id,name,score,city字段,其中name中的名字可有重復,需要消除重復行,請寫sql語句
# 18、數據表student有id,name,score,city字段,其中name中的名字可有重復,需要消除重復行,請寫sql語句# select distinct name from student
19、10個Linux常用命令
# 19、10個Linux常用命令# ls pwd cd touch rm mkdir tree cp mv cat more grep echo
20、python2和python3區別?列舉5個
21、列出python中可變數據類型和不可變數據類型,并簡述原理
# 21、列出python中可變數據類型和不可變數據類型,并簡述原理# 不可變數據類型:數值型、字符串型string和元組tuple# 不允許變量的值發生變化,如果改變了變量的值,相當于是新建了一個對象,而對于相同的值的對象,在內存中則只有一個對象(一個地址),如下圖用id()方法可以打印對象的ida = 3b = 3 id(a) # 140721860017280id(b) # 140721860017280# 可變數據類型:列表list和字典dict;# 允許變量的值發生變化,即如果對變量進行append、+=等這種操作后,只是改變了變量的值,而不會新建一個對象,變量引用的對象的地址也不會變化,不過對于相同的值的不同對象,在內存中則會存在不同的對象,即每個對象都有自己的地址,相當于內存中對于同值的對象保存了多份,這里不存在引用計數,是實實在在的對象。c = [1,3]d = [1,3]id(c) # 1831536943816id(d) # 1831532397448
22、s = “ajldjlajfdljfffffd”,去重并從小到大排序輸出"adfjl"
# 22、s = "ajldjlajfdljfffffd",去重并從小到大排序輸出"adfjl"# set去重,去重轉成list,利用sort方法排序,reverse=False是從小到大排# list是不 變數據類型,s.sort時候沒有返回值,所以注釋的代碼寫法不正確aa = "ajldjlajfdljfffffd"bb = set(aa)bbcc = list(bb)cc
23、用lambda函數實現兩個數相乘
# 23、用lambda函數實現兩個數相乘sum = lambda x,y:x*yprint(sum(5,6))
24、字典根據鍵從小到大排序
# 24、字典根據鍵從小到大排序dic={"name":"zs","age":18,"city":"深圳","tel":"1362626627"}# lis = sorted(dic) # ["age", "city", "name", "tel"]lis = sorted(dic.items(),key=lambda i:i[0],reverse=False)lis# 字典化dict(lis)
25、利用collections庫的Counter方法統計字符串每個單詞出現的次數"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"
# 25、利用collections庫的Counter方法統計字符串每個單詞出現的次數"kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"from collections import Countera = "kjalfj;ldsjafl;hdsllfdhg;lahfbl;hl;ahlf;h"res = Counter(a)print(res)
26、字符串a = “not 404 found 張三 99 深圳”,每個詞中間是空格,用正則過濾掉英文和數字,最終輸出"張三 深圳"
# 26、字符串a = "not 404 found 張三 99 深圳",每個詞中間是空格,用正則過濾掉英文和數字,最終輸出"張三 深圳"import rea = "not 404 found 張三 99 深圳"li = a.split(" ")print(li) # ["not", "404", "found", "張三", "99", "深圳"]res = re.findall("/d+|[a-zA-Z]+",a)print(res) # ["not", "404", "found", "99"]for i in res: if i in li: li.remove(i) print(li) # ["張三", "深圳"]new = " ".join(li)print(new) # 張三 深圳print("============================")# 貼上匹配小數的代碼,雖然能匹配,但是健壯性有待進一步確認res2 = re.findall("/d+/.?/d*|[a-zA-Z]+",a)print(res2) # ["not", "404", "found", "99"]for i in res2: if i in li: li.remove(i) new2 = " ".join(li)print(new2) # 張三 深圳
27、filter方法求出列表所有奇數并構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 27、filter方法求出列表所有奇數并構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]# filter() 函數用于過濾序列,過濾掉不符合條件的元素,# 返回由符合條件元素組成的新列表。# 該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,# 然后返回 True 或 False,最后將返回 True 的元素放到新列表# 方法1def double(a): return a%2 == 1a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]list1 = filter(double,a)list1 # 返回地址 <filter at 0x1aa76b41648>new_list = [i for i in list1]new_list
28、列表推導式求列表所有奇數并構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 28、列表推導式求列表所有奇數并構造新列表,a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]res = [i for i in a if i%2 ==1]res
29、正則re.complie作用
re.compile是將正則表達式編譯成一個對象,加快速度,并重復使用
30、a=(1,)b=(1),c=(“1”) 分別是什么類型的數據?
# 30、a=(1,)b=(1),c=("1") 分別是什么類型的數據?a=(1,0)b=(1)c=("1")print(type(a))print(type(b))print(type(c))
31、兩個列表[1,5,7,9]和[2,2,6,8]合并為[1,2,2,3,6,7,8,9]
# 31、兩個列表[1,5,7,9]和[2,2,6,8]合并為[1,2,2,3,6,7,8,9]# extend可以將另一個集合中的元素逐一添加到列表中,區別于append整體添加l1 = [1,5,7,9]l2 = [2,2,6,8]l1.extend(l2)l1.sort(reverse=False)l1
32、用python刪除文件和用linux命令刪除文件方法
python:os.remove(文件名)
linux: rm 文件名
33、log日志中,我們需要用時間戳記錄error,warning等的發生時間,請用datetime模塊打印當前時間戳 “2018-04-01 11:38:54”
# 33、log日志中,我們需要用時間戳記錄error,warning等的發生時間,請用datetime模塊打印當前時間戳 “2018-04-01 11:38:54”# 順便把星期的代碼也貼上了import datetime# now_time = datetime.datetime.now().strftime("%y-%m-%d %H:%M:%S")# day = datetime.datetime.now().isoweekday()# type(day) # int# now_timetotal = str(datetime.datetime.now().strftime("%y
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/123749.html
摘要:面試的心得體會簡歷制作我做了兩份簡歷,用兩個手機賬號,兩個簡歷名字,分別在各個招聘網站投了雙份簡歷,一個是數據分析的簡歷一個是全棧開發的簡歷,我真正接觸快年,不管是學習還是工作學到的東西,這兩年大概掌握了前端爬蟲數據分析機器學習技術, showImg(https://upload-images.jianshu.io/upload_images/13090773-b96aac7e974c...
摘要:接下來我們就來看看學到什么程度才算是真正學會可以去一展身手。一確立目標了解需求做什么事情都要先確定好目標,才不至于迷失方向。 大家在學習Python的時候,有人會問Python要學到什么程度才能出去找工作,對于在Python培訓機構學習Python的同學來說這都不是問題,因為按照Python課程大綱來,一般都不會有什么問題,而對于自學Python來說,那就比較難掌握,冒然出去找工作非常...
摘要:文末評論送書,學委會用這個抽獎程序來進行嚴格抽獎,周六晚上點整定時抽獎并視頻公布出來,敬請期待。本文講的函數值傳遞問題,是寫程序經常遇到,特別的是動態參數在高級框架中使用很廣泛。 ...
摘要:要面試大廠,自己的知識儲備一定要非常豐富,若缺胳膊少腿,別說在實際工作當中,光是面試這一關就過不了。 金九銀十剛過去,有一部分朋友在這期間肯定經歷了一番大廠面試的洗...
第1題: Python如何爬取 HTTPS 網站? 這類問題屬于簡單類問題 在使用 requests 前加入:requests.packages.urllib3.disable_warnings()。 為 requests 添加 verify=False 參數 導入ssl模塊 import ssl ssl._create_default_https_context = ssl....
第1題: Python如何爬取 HTTPS 網站? 這類問題屬于簡單類問題 在使用 requests 前加入:requests.packages.urllib3.disable_warnings()。 為 requests 添加 verify=False 參數 導入ssl模塊 import ssl ssl._create_default_https_context = ssl....
閱讀 2511·2021-11-18 10:02
閱讀 1976·2021-11-09 09:45
閱讀 2399·2021-09-26 09:47
閱讀 1010·2021-07-23 10:26
閱讀 1063·2019-08-30 15:47
閱讀 3356·2019-08-30 15:44
閱讀 957·2019-08-30 15:43
閱讀 881·2019-08-29 13:50