乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

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

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

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

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

      一 .反轉(zhuǎn)一個整數(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è)計實現(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-遍歷列表時刪除元素的正確做法

      遍歷在新在列表操作,刪除時在原來的列表操作

      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)

      倒序刪除

      因為列表總是‘向前移’,所以可以倒序遍歷,即使后面的元素被修改了,還沒有被遍歷的元素和其坐標(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. 定義并實現(xiàn)一個方法 get_missing_letter, 傳入一個字符串采納數(shù),返回參數(shù)字符串變成一個 PANGRAM 中所缺失的字符。應(yīng)該忽略傳入字符串參數(shù)中的大小寫,返回應(yīng)該都是小寫字符并按字母順序排序(請忽略所有非 ACSII 字符)

      下面示例是用來解釋,雙引號不需要考慮:

      (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"))

      五 .可變類型和不可變類型

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

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

      3,不可變類型被改變時,并沒有改變原內(nèi)存地址中的值,而是開辟一塊新的內(nèi)存,將原地址中的值復(fù)制過去,對這塊新開辟的內(nèi)存中的值進行操作。

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

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

      == : 比較的兩個對象的內(nèi)容/值是否相等,默認會調(diào)用對象的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代碼寫出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種,稱之為LEGB,也正是按照這是順序來查找的

      十 .字符串 "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)

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多