久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

你在金九銀十的求職浪潮中如魚(yú)得水,,而我在碼字—Python面試題

 千鋒Python學(xué)堂 2019-09-12

雖然明天就是中秋節(jié)了,,而我依然在電腦面前碼字,,寫(xiě)總結(jié),。多寫(xiě)一些,,你們中秋就多學(xué)一點(diǎn),,哈哈哈,!Python面試題又來(lái)咯,!找工作的你,還不趕緊看,。

你在金九銀十的求職浪潮中如魚(yú)得水,,而我在碼字—Python面試題

一 .反轉(zhuǎn)一個(gè)整數(shù),例如-123 --> -321

class Solution(object):
def reverse(self,x):
if -10<x<10:
return x
str_x = str(x)
if str_x[0] !="-":
str_x = str_x[::-1]
x = int(str_x)
else:
str_x = str_x[1:][::-1]
x = int(str_x)
x = -x
return x if -2147483648<x<2147483647 else 0
if __name__ == '__main__':
s = Solution()
reverse_int = s.reverse(-120)
print(reverse_int)

二 .設(shè)計(jì)實(shí)現(xiàn)遍歷目錄與子目錄,,抓取.pyc文件?

第一種方法:

import os
def get_files(dir,suffix):
res = []
for root,dirs,files in os.walk(dir):
for filename in files:
name,suf = os.path.splitext(filename)
if suf == suffix:
res.append(os.path.join(root,filename))
print(res)
get_files("./",'.pyc')

第二種方法:

import os
def pick(obj):
if ob.endswith(".pyc"):
print(obj)
def scan_path(ph):
file_list = os.listdir(ph)
for obj in file_list:
if os.path.isfile(obj):
pick(obj)
elif os.path.isdir(obj):
scan_path(obj)
if __name__=='__main__':
path = input('輸入目錄')
scan_path(path)

第三種方法

from glob import iglob
def func(fp, postfix):
for i in iglob(f"{fp}/**/*{postfix}", recursive=True):
print(i)
if __name__ == "__main__":
postfix = ".pyc"
func("K:\Python_script", postfix)

三 .Python-遍歷列表時(shí)刪除元素的正確做法

遍歷在新在列表操作,,刪除時(shí)在原來(lái)的列表操作

a = [1,2,3,4,5,6,7,8]
print(id(a))
print(id(a[:]))
for i in a[:]:
if i>5:
pass
else:
a.remove(i)
print(a)
print('-----------')
print(id(a))
#filter
a=[1,2,3,4,5,6,7,8]
b = filter(lambda x: x>5,a)
print(list(b))

列表解析

a=[1,2,3,4,5,6,7,8]
b = [i for i in a if i>5]
print(b)

倒序刪除

因?yàn)榱斜砜偸恰蚯耙啤钥梢缘剐虮闅v,,即使后面的元素被修改了,,還沒(méi)有被遍歷的元素和其坐標(biāo)還是保持不變的

a=[1,2,3,4,5,6,7,8]
print(id(a))
for i in range(len(a)-1,-1,-1):
if a[i]>5:
pass
else:
a.remove(a[i])
print(id(a))
print('-----------')
print(a)

四 .字符串的操作題目

全字母短句 PANGRAM 是包含所有英文字母的句子,比如:A QUICK BROWN FOX JUMPS OVER THE LAZY DOG. 定義并實(shí)現(xiàn)一個(gè)方法 get_missing_letter, 傳入一個(gè)字符串采納數(shù),,返回參數(shù)字符串變成一個(gè) PANGRAM 中所缺失的字符,。應(yīng)該忽略傳入字符串參數(shù)中的大小寫(xiě),返回應(yīng)該都是小寫(xiě)字符并按字母順序排序(請(qǐng)忽略所有非 ACSII 字符)

下面示例是用來(lái)解釋?zhuān)p引號(hào)不需要考慮:

(0)輸入: “A quick brown for jumps over the lazy dog”

返回: “”

(1)輸入: “A slow yellow fox crawls under the proactive dog”

返回: “bjkmqz”

(2)輸入: “Lions, and tigers, and bears, oh my!”

返回: “cfjkpquvwxz”

(3)輸入: “”

返回:“abcdefghijklmnopqrstuvwxyz”

def get_missing_letter(a):
s1 = set("abcdefghijklmnopqrstuvwxyz")
s2 = set(a)
ret = "".join(sorted(s1-s2))
return ret

print(get_missing_letter("python"))

五 .可變類(lèi)型和不可變類(lèi)型

1,可變類(lèi)型有l(wèi)ist,dict.不可變類(lèi)型有string,,number,tuple.

2,當(dāng)進(jìn)行修改操作時(shí),,可變類(lèi)型傳遞的是內(nèi)存中的地址,也就是說(shuō),直接修改內(nèi)存中的值,,并沒(méi)有開(kāi)辟新的內(nèi)存,。

3,不可變類(lèi)型被改變時(shí),并沒(méi)有改變?cè)瓋?nèi)存地址中的值,,而是開(kāi)辟一塊新的內(nèi)存,,將原地址中的值復(fù)制過(guò)去,對(duì)這塊新開(kāi)辟的內(nèi)存中的值進(jìn)行操作,。

六 .is和==有什么區(qū)別,?

is:比較的是兩個(gè)對(duì)象的id值是否相等,也就是比較倆對(duì)象是否為同一個(gè)實(shí)例對(duì)象,。是否指向同一個(gè)內(nèi)存地址

== : 比較的兩個(gè)對(duì)象的內(nèi)容/值是否相等,,默認(rèn)會(huì)調(diào)用對(duì)象的eq()方法

七 .求出列表所有奇數(shù)并構(gòu)造新列表

a = [1,2,3,4,5,6,7,8,9,10]
res = [ i for i in a if i%2==1]
print(res)

八 .用一行python代碼寫(xiě)出1+2+3+10248

from functools import reduce
#1.使用sum內(nèi)置求和函數(shù)
num = sum([1,2,3,10248])
print(num)
#2.reduce 函數(shù)
num1 = reduce(lambda x,y :x+y,[1,2,3,10248])
print(num1)

九 .Python中變量的作用域?(變量查找順序)

函數(shù)作用域的LEGB順序

1.什么是LEGB?

L: local 函數(shù)內(nèi)部作用域

E: enclosing 函數(shù)內(nèi)部與內(nèi)嵌函數(shù)之間

G: global 全局作用域

B: build-in 內(nèi)置作用

python在函數(shù)里面的查找分為4種,,稱(chēng)之為L(zhǎng)EGB,,也正是按照這是順序來(lái)查找的

十 .字符串 "123" 轉(zhuǎn)換成 123,不使用內(nèi)置api,,例如 int()

方法一: 利用 str 函數(shù)

def atoi(s):
num = 0
for v in s:
for j in range(10):
if v == str(j):
num = num * 10 + j
return num

方法二: 利用 ord 函數(shù)

def atoi(s):
num = 0
for v in s:
num = num * 10 + ord(v) - ord('0')
return num

方法三: 利用 eval 函數(shù)

def atoi(s):
num = 0
for v in s:
t = "%s * 1" % v
n = eval(t)
num = num * 10 + n
return num

方法四: 結(jié)合方法二,,使用 reduce,一行解決

from functools import reduce
def atoi(s):
return reduce(lambda num, v: num * 10 + ord(v) - ord('0'), s, 0)

我依然會(huì)堅(jiān)守崗位,,繼續(xù)更新我的Python面試題,。也祝愿大家中秋節(jié)快樂(lè)啊,!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多