日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > ChatGpt >内容正文

ChatGpt

Matrix工作室第六届纳新AI组考核题(B卷)

發布時間:2024/5/17 ChatGpt 70 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Matrix工作室第六届纳新AI组考核题(B卷) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、單選題

  • 下面哪個是Python中的不變的數據結構(C)
    A、set
    B、list
    C、tuple
    D、dict
  • Python標準的內置數據類型有:
    Number(整數型 int , 浮點數型 float, 布爾型 bool , 復數 complex)
    String List Tuple Set Dictionary


    Python可變數據類型:可改變變量的值,且不會新建對象
    List、Dictionary、Set
    Python不可變數據類型:不允許變量的值發生改變,發生改變時會新建對象
    Tuple、String、Number

  • 下面哪個不是Python合法的標識符(B)
    A、int32
    B、40XL
    C、self
    D、name
  • python中的標識符:
    1)第一個字符必須是字母表中字母或下劃線 _ 。
    2)標識符的其他的部分由字母、數字和下劃線組成。
    3)標識符對大小寫敏感。
    4)不可以是python中的關鍵字,如False、True、None、class等。
    注意:self不是python中的關鍵字。類中參數self也可以用其他名稱命名,但是為了規范和便于讀者理解,推薦使用self。

  • 下列代碼輸出為:(B)
  • str1 = "Hello,Python"; str2 = "Python"; print(str1.index(str2));

    A、5
    B、6
    C、7
    D、8

    語法

    index()方法語法:

    str.index(str, beg=0, end=len(string))

    參數
    - str -- 指定檢索的字符串
    - beg -- 開始索引,默認為0。
    - end -- 結束索引,默認為字符串的長度。
    從Hello開始數到p截止,從下標0開始數
  • 關于Python中的復數,下列說法錯誤的是(C)
    A、表是復數的語法是real + image j
    B、實部和虛部都是浮點數
    C、虛部必須后綴j,且必須小寫
    D、方法conjugate返回復數的共軛復數
  • 1 虛數不能單獨存在,它們總是和一個值為 0.0 的實數部分一起來構成一個復數。
    2復數由實數部分和虛數部分構成
    3表示虛數的語法: real+imagj
    4 實數部分和虛數部分都是浮點數
    5 虛數部分必須有后綴 j 或 J
  • 以下程序輸出為:(A)
  • def w1():print('正在裝飾')def inner():print('正在驗證權限')return inner()w1()

    A、正在裝飾 正在驗證權限
    B、正在裝飾
    C、正在驗證權限
    D、運行錯誤

    如果外層函數返回的是一個函數名的話,運行結果應該是:正在裝飾 如果外層函數返回的是函數調用的話,運行結果是:正在裝飾 正在驗證權限
  • 以下程序輸出為:(A)
  • info = {'name':'班長', 'id':100, 'sex':'f', 'address':'北京'} age = info.get('age') print(age) age=info.get('age',18) print(age)

    A、None 18
    B、None None
    C、編譯錯誤
    D、運行錯誤

    本題考查的是字典的 get 方法
    dict.get(key, value=None)
    當value的值存在時返回其本身,當key的值不存在時返回None(即默認參數)。

  • 下述字符串格式化語法正確的是(D)
    A、‘GNU’s Not %d %%’ % ‘UNIX’
    B、‘GNU’s Not %d %%’ % ‘UNIX’
    C、‘GNU’s Not %s %%’ % ‘UNIX’
    D、‘GNU’s Not %s %%’ % ‘UNIX’
  • python里面%d表數字,%s表示字符串,%%表示一個%;
    單引號內嵌套單引號需要轉義字符/;單引號內嵌套雙引號不需要嵌套;
    雙引號內嵌套雙引號需要轉義字符/;雙引號內引用單引號不需要轉義字符;

  • 在python中,使用open方法打開文件,語法如下:open(文件名,訪問模式),如果以二進制格式打開一個文件用于追加,則訪問模式為(C)
    A、rb
    B、wb
    C、ab
    D、a
  • b 二進制模式
    r 只讀,指針將會放在文件的開頭
    rb 二進制只讀,指針將會放在文件的開頭
    r+ 讀寫,指針將會放在文件的開頭
    rb+ 二進制讀寫,指針將會放在文件的開頭
    w 寫入, 如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件
    wb 二進制寫入,如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等
    w+ 讀寫,如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。
    wb+ 二進制讀寫,如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創建新文件。一般用于非文本文件如圖片等
    a 追加,如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入
    ab 二進制追加,如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創建新文件進行寫入
    a+ 讀寫,如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創建新文件用于讀寫。
    ab+ 二進制讀寫,如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創建新文件用于讀寫。

  • 下列代碼輸出為(A)
  • str = "Hello,Python";suffix = "Python";print (str.endswith(suffix,2));

    A、True
    B、False
    C、語法錯誤
    D、F

    str.endswith(suffix[, start[, end]]) 用于判斷字符串是否以指定后綴結尾,如果以指定后綴結尾返回True,否則返回False。
    可選參數"start"與"end"為檢索字符串的開始與結束位置。

  • Python調用(A)函數可實現對文件內容的讀取
    A、read()
    B、readline()
    C、readlines()
    D、readclose()
  • 1.read([size])方法從文件當前位置起讀取size個字節,若無參數size,則表示讀取至文件結束為止,它范圍為字符串對象。
    2.readline()方法每次讀出一行內容,所以,讀取時占用內存小,比較適合大文件,該方法返回一個字符串對象。
    3.readlines()方法讀取整個文件所有行,保存在一個列表(list)變量中,每行作為一個元素,但讀取大文件會比較占內存。

  • 下列哪個語句在Python中是非法的(B)
    A、x = y = z = 1
    B、x = (y = z + 1)
    C、x, y = y, x
    D、x += y
  • y = z + 1 的結果沒有返回值,就無法賦值到 x

  • 有如下函數定義,執行結果正確的是(A)
  • def dec(f):n = 3def wrapper(*args,**kw):return f(*args,**kw) * nreturn wrapper@dec def foo(n):return n * 2

    A、foo(2) == 12
    B、foo(3) == 12
    C、foo(2) == 6
    D、foo(3) == 6

    @dec 裝飾器,先執行dec(), 并將 @dec 下面的 函數 作為dec()的參數。 (裝飾器的作用:為已經存在的對象添加額外的功能)
    foo(n) = n * 2 * 3

  • 已知print_func.py的代碼如下:
  • print('Hello World!') print('__name__ value: ', __name__)def main():print('This message is from main function')if __name__ == '__main__':main()

    print_module.py的代碼如下:

    import print_func print("Done!")

    執行結果為(A)
    A、Hello World! __name__ value: print_func Done!
    B、Hello World! __name__ value: print_module Done!
    C、Hello World! __name__ value: __main__ Done!
    D、Hello World! __name__ value: Done!

    自己運行自己的程序,__name__ 即為__main__
    當程序當做腳本被別人調用運行時,其__name__ 為自己的模塊名稱
    這里的print_func即被導入到print_module中當做腳本被運行時,則print_func的__name__即變為其自身的模塊名。

  • 下列代碼運行結果是(C)
  • a = map(lambda x: x**3, [1, 2, 3]) list(a)

    A、[1, 6, 9]
    B、[1, 12, 27]
    C、[1, 8, 27]
    D、(1, 6, 9)

    map()接收兩個參數,一個是功能函數f,一個list,并將f依次作用在list的每個元素上,并返回一個新的list,a**b是求a的b次方的意思

  • 當一個嵌套函數在其外部區域引用了一個值時,該嵌套函數就是一個閉包,以下代碼輸出值為(D)
  • def adder(x):def wrapper(y):return x + yreturn wrapper adder5 = adder(5) print(adder5(adder5(6)))

    A、10
    B、12
    C、14
    D、16

    adder(5) #返回了 wrapper ,且x=5
    adder5 = adder(5) # adder5是對wrapper的引用 此時x等于5
    adder5(6) # 相當于 wrapper(6) = 5+6=11 所以 adder5(6) =11 ,同理adder5(7)=12
    adder5(adder5(6)) # = adder5(11) = wrapper(11) =5+11=16

    二、多選題

  • 以下python代碼執行后:(BD)
  • foo = [1,2] foo1 = foo foo.append(3)

    A、foo 值為[1,2]
    B、foo 值為[1,2,3]
    C、foo1 值為[1,2]
    D、foo1 值為[1,2,3]

    foo1 = foo為淺表復制,也稱為淺拷貝,只是將foo1和foo指向相同存儲地址。
    在foo中追加3后,二者都改變。
    如果不想改變foo1,我們可使用deepcooy進行深拷貝,復制出一份foo表在新的內存中存儲,并由foo1指向該地址,此時再對foo進行操作,foo1不會改變。

  • 若 a = (1, 2, 3),下列哪些操作是合法的(ABD)
    A、a[1:-1]
    B、a*3
    C、a[2] = 4
    D、list(a)
  • a[1:-1] ---->(2,)
    a*3---->(1,2,3,1,2,3,1,2,3)
    a是元組不可改變
    list(a)----->[1,2,3]數組和列表可以相互轉換

  • 以下程序要求用戶輸入二進制數字0/1并顯示之,請指出程序中代碼第幾行存在錯誤:(AC)
  • bit = int(input("Enter a binary digit:")) if bit = 0 or 1:print("your input is" ,bit) elseprint("your input is invalid")

    A、2
    B、3
    C、4
    D、5

    2:if bit == 0 or bit == 1:
    4:else:

  • 解釋型語言的特性有什么(AB)
    A、非獨立
    B、效率低
    C、獨立
    D、效率高
  • 解釋性語言和編譯性語言的定義:
    計算機不能直接理解高級語言,只能直接理解機器語言,所以必須要把高級語言翻譯成機器語言,計算機才能執行高級語言編寫的程序。
    翻譯的方式有兩種,一個是編譯,一個是解釋。兩種方式只是翻譯的時間不同。
    解釋性語言的定義:
    解釋性語言的程序不需要編譯,在運行程序的時候才翻譯,每個語句都是執行的時候才翻譯。這樣解釋性語言每執行一次就需要逐行翻譯一次,效率比較低。
    現代解釋性語言通常把源程序編譯成中間代碼,然后用解釋器把中間代碼一條條翻譯成目標機器代碼,一條條執行。
    編譯性語言的定義:
    編譯性語言寫的程序在被執行之前,需要一個專門的編譯過程,把程序編譯成為機器語言的文件,比如exe文件,以后要運行的話就不用重新翻譯了,直接使用編譯的結果就行了(exe文件),因為翻譯只做了一次,運行時不需要翻譯,所以編譯型語言的程序執行效率高。

  • Python中函數是對象,描述正確的是(ABCD)
    A、函數可以賦值給一個變量
    B、函數可以作為元素添加到集合對象中
    C、函數可以作為參數值傳遞給其它函數
    D、函數可以當做函數的返回值
  • https://www.cnblogs.com/smallmars/p/6936871.html

    三、簡答題

  • 簡述使用requests模塊進行數據爬取的大致流程。
  • (1)指定url
    (2)基于requests模塊發起請求
    (3)獲取響應對象中的數據
    (4)數據解析
    (5)持久化存儲

  • 在requests模塊中接觸過哪些反爬機制
  • (1)驗證碼

    爬蟲采集器優化方案:使用打碼平臺識別驗證碼。

    (2)限制IP訪問頻率

    分析:沒有哪個正常人可以在一秒鐘內能訪問相同網站數十次次,除非是程序訪問,也就是搜索引擎爬蟲和爬蟲采集器。

    弊端:一刀切,這同樣會阻止搜索引擎對網站的收錄

    適用網站:不太依靠搜索引擎的網站

    爬蟲采集器優化方案:減少單位時間的訪問次數,減低采集效率

    (3)UA校驗

    分析:服務器端通過檢驗請求的User-Agent來判斷是瀏覽器還是爬蟲程序。

    爬蟲采集器優化方案:制作UA偽裝

    (4)登錄校驗

    分析:搜索引擎爬蟲不會對每個需要登錄的網站設計登錄程序,但爬蟲采集器可以針對某個網站設計模擬用戶登錄提交表單行為。

    適用網站:極度討厭搜索引擎,且想阻止大部分采集器的網站

    爬蟲采集器優化方案:制作擬用戶登錄提交表單行為的模塊

    (5)動態加載頁面

    分析:有一部分網站,需要爬取的數據是通過Ajax請求得到的,根據不同的情況動態加載數據。

    爬蟲采集器優化方案:基于Selenium+PhantomJS模擬瀏覽器請求。

    (6)數據加密

    對部分數據進行加密的,可以使用selenium進行截圖,使用python自帶的pytesseract庫進行識別,但是比較慢,最直接的方法是找到加密的方法進行逆向推理。

    四、編程題

  • 使用正則表達式匹配以 .com 或 .cn 為域名后綴的URL地址
  • >>> import re >>> str = "http://www.baidu.com/" >>> regular = re.compile(r'[a-zA-Z]+://[^\s]*[.com|.cn]') >>> re.findall(regular, str) ['http://www.baidu.com']
  • 數位遞增的數
  • 【問題描述】
    一個正整數如果任何一個數位不大于右邊相鄰的數位,則稱為一個數位遞增的數,例如1135是一個數位遞增的數,而1024不是一個數位遞增的數。
    給定正整數 n,請問在整數 1 至 n 中有多少個數位遞增的數?

    【輸入格式】
    輸入的第一行包含一個整數 n。

    【輸出格式】
    輸出一行包含一個整數,表示答案。

    【樣例輸入】
    30

    【樣例輸出】
    26

    【評測用例規模與約定】
    對于 40% 的評測用例,1 <= n <= 1000。
    對于 80% 的評測用例,1 <= n <= 100000。
    對于所有評測用例,1 <= n <= 1000000。

    if __name__ == '__main__':ans, n = 0, int(input())for i in range(1, n):temp = list(map(int, list(str(i))))temp.sort()if i == int(''.join(list(map(str, temp)))):ans += 1print(ans)
  • 左葉子之和
  • 計算給定二叉樹的所有左葉子之和。

    示例:

    3/ \9 20/ \15 7

    在這個二叉樹中,有兩個左葉子,分別是 9 和 15,所以返回 24

    def sumOfLeftLeaves(self, root: TreeNode) -> int:isLeafNode = lambda node: not node.left and not node.rightdef dfs(node: TreeNode) -> int:ans = 0if node.left:ans += node.left.val if isLeafNode(node.left) else dfs(node.left)if node.right and not isLeafNode(node.right):ans += dfs(node.right)return ansreturn dfs(root) if root else 0

    總結

    以上是生活随笔為你收集整理的Matrix工作室第六届纳新AI组考核题(B卷)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。