mooc-python語言基礎與應用-期末客觀題(老哥!附帶分析講解!應該都講到了嗎)

pythonmooc-python語言基礎與應用-期末客觀題(附帶分析講解)

  1. 單選(2分)

以下代碼的輸出結果是(D)。

def fun(num):
    num *= 2
x = 20
fun(x)
print(x)

A.10
B.報錯
C.40
D.20

  • 分析:python中內存分配機制:對於不可變的對象,其id和內存是不可變的,調用函數只是將num 指向20,x本身也是指向20的,並沒有改變x的指向,也改變不了20的地址,只是將num重新指向了一個地址
    實驗樣例:
x = 10
print("最初的id",id(x),'x的值',x)
def test(x):
    print('傳入的形參的id',id(x),'x的值',x)
    x = x * 19
    print('修改過後的x的id',id(x),'x的值',x)
test(x)
print('函數執行完畢的x的id',id(x),'x的值',x)

結果:
在這裏插入圖片描述

  1. . 單選(2分)

Python中以只讀形式打開文件的模式是(D)。
A.x
B.w
C.b
D.r

  • 分析:
    在這裏插入圖片描述
  1. 單選(2分)

以下代碼的輸出結果是(A)。

alist=[‘a’,‘b’,‘c’]
blist=alist[:1:-1]
print(blist)
A.[‘c’]
B.[‘b’, ‘c’]
C.[‘a’]
D.[‘c’, ‘b’]

  • 分析:
    • slice[start🔚step],左閉右開,最後一個是取不到的元素返回一個字符串
    • start缺省,看step怎麼取值
      • start缺省,step爲負數,默認是從最後一個逆序向前取值
      • start缺省,step爲正數,默認是從第一個正序向前取值
      • start>end,step爲正數,默認無輸出,直接跳出循環
      • start<end,step爲負數,默認無輸出,直接跳出循環
        代碼:
a = 'abcdefg'
print('原來的字符串',a)
print('a[:3:-1]',a[:3:-1])
print('a[:3:1]',a[:3:1])
print('a[0:4:-1]',a[0:4:-1])
print('a[4:2:1]',a[4:2:1])

結果:
在這裏插入圖片描述

  1. 單選(2分)

以下代碼的輸出結果是(B)。

L1 =[‘abc’, [‘123’,‘456’]]
L2 = [‘1’,‘2’,‘3’]
print(L1 > L2)
A.False
B.True
C.1
D.TypeError: ‘>’ not supported between instances of ‘list’ and ‘str’

  • 分析:
  • 比較規則: 從第一個元素順序開始比較,如果相等,則繼續,返回第一個不相等元素比較的結果。如果所有元素比較均相等,則長的列表大,一樣長則兩列表相等
    這裏是借鑑的
    在這裏插入圖片描述
  • 試過之後,所有的容器對象無論裏面有沒有值,都比不變的int變量打,掃描到非int型的變量就自動返回,非列表元素的比較大
  • 在這裏插入圖片描述
  1. 單選(2分)

以下關於容器類型說法錯誤的是(B)。

A.字典的 pop 函數可以返回一個鍵對應的值,並刪除該鍵值對。

B.創建一個空集合aset,可以用花括號:

aset = { }
C.嵌套的字典數據類型可以用來表達高維數據。

D.元組中的元素可以是列表。

  • 分析:
  • 在這裏插入圖片描述
  • 創建空的集合只能使用aset = set(),花括號是字典,圓括號是元組,方括號是列表

在這裏插入圖片描述

  1. 單選(2分)

以下代碼的輸出結果是(A)。

data=[1, 0, 2, 0, 0]
data.remove(0)
print(data)
A.[1, 2, 0, 0]
B.[0, 2, 0, 0]
C.[1, 0, 2, 0]
D.[1, 2]

  • 分析:
    在這裏插入圖片描述
  • 題目列表裏面的都是int型的數字,我給了一個字符串型的,發現識別不了,還是數據類型一致纔可以
  • 不是按照索引刪除的,是按照匹配是否有相同元素
    在這裏插入圖片描述
  1. 單選(2分)

Python中可以用來解析HTML和XML的第三方庫是(A)。

A.beautiful soup
B.requests
C.numpy
D.jieba8

  • 分析:
  • requests是相服務器發送請求獲取相應
  • beautiful soup是 解析HTML和XML第三方庫的,屬於網絡爬蟲那章
  • numpy是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
  • jieba8:是python的一箇中文分詞庫
  1. 以下關於Python的循環結構說法錯誤的是(D)。

A.for循環中被遍歷的部分可以是字符串、文件、組合數據類型和range()函數等。
B.break語句用來跳出當前層次的for或者while循環。
C.以下代碼的輸出包含3個不同的數。

n=4
while n >=0:
    n=n-1
    if n<1:
        break
    print(n)

D.continue語句用來跳出當前層次的的for或者while循環。

  • 分析
  • 在這裏插入圖片描述
    在這裏插入圖片描述
  1. 單選(2分)

以下代碼的輸出結果是(A)。

print([i**i for i in range(5) if i%2!=0])

A.[1, 27]
B.[1, 9]
C.會報錯
D.[1, 27, 3125]

  • 分析:
  • 這是推導式,翻譯成正常的語言就是如下,你別算錯就行了
 alist = list()
for i in range(5):
    if i % 2 == 0:
        alist.append(i ** i)
print(alist)
  1. 單選(2分)

關於Python中的面向對象說法錯誤的是(A)。

A.__str__方法和__repr__方法作用完全一樣,都可以用來返回一個表示對象的字符串。
B.__init__方法根據類的定義創建實例對象,第一個參數一定是self。
C.創建對象後使用點(.)操作符來調用對象裏的方法。
D.Python中利用class語句來定義新的類。

  • 分析:
  • __str()__是返回對對象的描述信息,返回的是一個字符串,是對這個對象的描寫。類似java中的tostring方法
  • __repr()__是返回類的自我描述信息,直接打印類的實例化對象時,系統會輸出對象的自我描述信息
    在這裏插入圖片描述
def __str__(self):
        """返回一個對象的描述信息"""
        # print(num)
        return "名字是:%s , 年齡是:%d" % (self.name, self.age)
  1. 多選(3分)

以下關於Python中程序流程結構說法正確的是(ABD)。

A.可以用if…elif…else語句實現多個分支的結構。
B.程序流程包括順序、條件分支和循環三種基本結構。
C.可以利用switch…case語句實現多個分支的結構。
D.else語句可以出現在if、while和for語句中。

  • 分析:
  • python中沒有switch—case語句
  • else語句
    • while語句

在這裏插入圖片描述

  • for語句
    在這裏插入圖片描述
  1. 多選(3分)

以下關於Python中數值類型說法正確的是(ACD)。

A.以下代碼的輸出結果是2。

a=2.9
print(int(a))

B.Python語言要求所有浮點數必須帶有小數部分,且小數部分不能爲0。

C.在IDLE Shell裏輸入0.1+0.2==0.3返回False。

D.Python中複數類型的實部和虛部都是浮點數。

  • 分析:
    • python中浮點數,精度是時53位,小數可以爲零,精確表達爲什麼不能爲0,正數部分也可以爲零
      在這裏插入圖片描述

    • python中複數

      • 虛部不會單獨存在
      • 實數部分和虛數部分必須得是浮點數
      • 虛數部分必須加上j或者J
    • int()函數,是直接捨棄小數部分
      在這裏插入圖片描述

  1. 多選(3分)

關於以下代碼說法正確的是(CD)。

class Student:
    def language(self):
        print ("All the students like Python")
class Mary(Student):
    def work(self):
        print("Mary is programming")
class Tom(Student):
    def language(self):
        print("Tom likes JAVA")
mary = Mary()
tom = Tom()

A.tom.work()會打印出Tom is programming

B.tom.language()會打印出All the students like Python

C.tom.language()會打印出Tom likes JAVA

D.mary.language()會打印出All the students like Python

  • Tom繼承Student類,但是已經重寫了的language方法
  • Mary繼承Student類,並沒有重寫language方法,但是可以調用父類的方法。同時自己豐富了子類的方法,可以自己單獨調用
  1. 多選(3分)

關於Python中的函數,下列說法正確的是(ABCD)。

A.函數可以賦值給一個變量。

B.函數可以作爲參數值傳遞給其他函數。

C.函數可以作爲函數的返回值。

D.函數可以作爲對象添加到集合對象中。

  • 分析:
    • 函數本身就有返回值,爲什麼不可以
  1. 多選(3分)

給變量a賦值如下:

a = (0, 1, 2, 3)

下列後續操作合法的是(ABD)。

A.b = a[1:-1]

B a = a * 3

C.a[2] = 4

D.b = list(a)

  • 分析:
    • 元組的相關操作

    • 在這裏插入圖片描述

    • 在這裏插入圖片描述

  1. 多選(3分)下面代碼中輸出結果爲0、1、2三個數字的有(AD)。

A

for i in range(3):
    print(i)

B.

i=1
while i<3:
    print(i)
    i+=1
 

C.

i=3
while i>1:
    i=i-1
    print(3-i)
 

D.

for i in range(3,0,-1):
    print(3-i)
  • 分析
    • range(start,end,step),左閉右開區間,右邊是取不到的
  1. 多選(3分)

以下關於Python高級特性說法正確的是(CD)。

A.Python中可以用異常處理捕獲程序中的所有錯誤。

B.try語句中有except子句就不能有finally子句。

C.生成器函數與普通函數相同,只是將return換成了yield。

D.生成器是用來創建Python序列的一個對象,通常用來爲迭代器產生數據。

  • 分析
    • 錯誤分爲兩類,語義錯誤和語法錯誤,最多隻能檢查出語法錯誤,常見的可查出的錯誤類型
      在這裏插入圖片描述
    • finally是一定會執行的語句,都可以用finally,
    • else時沒有出錯纔會執行的語句
  • 生成器函數
    • 在這裏插入圖片描述
      在這裏插入圖片描述
  1. 多選(3分)

以下關於Python中模塊的說法正確的是(CD)。

A.datetime模塊中strptime方法將struct_time對象格式化成字符串。

B.可以利用matplotlib中的hist()方法來繪製散點圖。

C.文件操作中readline函數表示讀取文件的下一行,返回一個字符串。

D.PIL圖像庫可以實現對圖像的模糊處理。

  • 分析:
    • strptime是將固定格式的字符串變爲struct_time對象
    • hist是繪製直方圖的,scatter是繪製散點圖的
      在這裏插入圖片描述
      在這裏插入圖片描述
  1. 多選(3分)

以下關於Python中random模塊的說法正確的是(BCD)。

A.uniform(0,1)與uniform(0.0,1.0)的輸出結果不同,前者輸出隨機整數,後者輸出隨機小數。

B.通過from random import *引入random庫的全部函數。

C.randint(a,b)是生成一個[a,b]之間的整數,可能包括a和b。

D.設定相同的隨機種子,每次調用隨機函數生成的隨機數相同。

  • 分析
    • uniform(x,y)是隨機生成[x,y]之間的實數,通過random的靜態對象調用該方法,是生成相關的小數
      在這裏插入圖片描述
      在這裏插入圖片描述
  1. 多選(3分)

以下關於Python中內置函數的說法正確的是(ABD)。

A.len()返回對象包含元素的個數,參數可以是字符串,元組,列表和字典。

B.type()返回一個對象的類型。

C.sorted(alist)可以對列表alist進行排序,並將排序後的結果寫回到列表alist中。

D.print(int(abs(-3 + 4j)))的結果爲5。

  • 分析:
    • sroted()不修改原來的數據對象,返回一個新的數據對象

博客有上傳python的筆記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章