[試題]Python大賽部分答案


不定項選擇:

1.執行x = [4,3][2>1]后, 請問 x 值為多少()
A.1 B.2 C.3 D.4

2.print('\\t\')輸出結果為()
A. \ \ B. \\ \ C. \\\ \\ D. \\\t\\

3.定義域一個列表classmates = ['張三', '李四', '王五','趙六'],執行classmates[-1]后得到的結果是()
A.張三 B.趙六 C.SyntaxError D.UnicodeError

4.定義一個字典 d = {'Michael': 95, 'Jack': 75, 'Tracy': 85},執行 d['Jack'] = 90 后再執行 d['Jack'] = 88,字典中Jack的值為()
A.75 B.90 C.88 D.90,88

5.這個函數的作用是什么?函數類型是什么?()

def fact(n):
    if n==1:
        return 1
    return n * fact(n - 1)

A.求階乘 B.開方 C.遞歸 D.迭代

6.定義域一個列表L = ['Michael', 'Sarah', 'Tracy', 'Bob', 'Jack'],取前3個元素,應該怎么做?
A.[L[0], L[1], L[2]] B.[L[0], L[1], L[2],L[4]] C.L[0:3] D.L[:3]

7.與Python斷言語句有關的是()
A.yield B.@ C.async D.assert

8.下列代碼執行結果是?()
[i**i for i in xrange(3)]
A.[1, 1, 4]
B.[0, 1, 4]
C.[1, 2, 3]
D.(1, 1, 4)

9__new__和__init__的區別,說法正確的是?()
A.new__是一個靜態方法,而__init__是一個實例方法
B.new__方法會返回一個創建的實例,而__init__什么都不返回
C.只有在__new__返回一個CLS的實例時,后面的__init__才能被調用
D.當創建一個新實例時調用__new
,初始化一個實例時用__init

10.Python中函數是對象,描述正確的是? ()
A.函數可以賦值給一個變量
B.函數可以作為元素添加到集合對象中
C.函數可以作為參數值傳遞給其它函數
D.函數可以當做函數的返回值

編程題:

1.生成list計算 [1x1, 2x2, 3x3, ..., 10x10]

答案:
方法一:普通方法
>>> L = []
>>> for x in range(1, 11):
...    L.append(x * x)
...
>>> L
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

方法二:列表生成器
>>> [x * x for x in range(1, 11)]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2.打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等於該數
 本身。例如:153是一個“水仙花數”,因為153=1的三次方+5的三次方+3的三次方。
思路:利用for循環控制100-999個數,每個數分解出個位,十位,百位。

答案:

for n in range(100,1001):
    i = n / 100
    j = n / 10 % 10
    k = n % 10
    if i * 100 + j * 10 + k == i + j ** 2 + k ** 3:
        print "%-5d" % n

不定項選擇題答案:

1.C

知識點:Python if 和 for 的多種寫法

<1>常規

if a>b:

    c = a

else:

    c = b

<2>表達式

c = a if a>b else b 

<3>二維列表

c = [b,a][a>b]

2.A

知識點:轉義字符

轉義字符\可以轉義很多字符,比如\n表示換行,\t表示制表符,字符\本身也要轉義,所以\\表示的字符就是\,可以在Python的交互式命令行用print()打印字符串

3.B

知識點:列表

Python內置的一種數據類型是列表:list。list是一種有序的集合,可以隨時添加和刪除其中的元素
如果要取最后一個元素,除了計算索引位置外,還可以用-1做索引,直接獲取最后一個元素

4.C

知識點:字典

Python內置了字典:dict的支持,dict全稱dictionary,在其他語言中也稱為map,使用鍵-值(key-value)存儲,具有極快的查找速度
由於一個key只能對應一個value,所以,多次對一個key放入value,后面的值會把前面的值沖掉

5.AC

知識點:遞歸函數

在函數內部,可以調用其他函數。如果一個函數在內部調用自身本身,這個函數就是遞歸函數

6.ACD

知識點:切片

Python提供了切片(Slice)操作符
L[0:3]表示,從索引0開始取,直到索引3為止,但不包括索引3。即索引0,1,2,正好是3個元素
L[:3] 表示果第一個索引是0,還可以省略 

7.D

知識點:斷言

assert斷言語句用來聲明某個條件是真的,其作用是測試一個條件(condition)是否成立,如果不成立,則拋出異常。

斷言跟異常的區別:

斷言是用來檢查非法情況而不是錯誤情況的,用來幫開發者快速定位問題的位置。
異常處理用於對程序發生異常情況的處理,增強程序的健壯性和容錯性。

對一個函數而言,一般情況下,斷言用於檢查函數輸入的合法性,要求輸入滿足一定的條件才能繼續執行;
在函數執行過程中出現的異常情況使用異常來捕獲。

8.A

知識點:

(1)這是一個列表生成式,即對於生成器 xrange(3) 中的每個值(分別是0,1,2),賦值給變量 i,然后執行 i**i 的操作。

列表生成式 - 廖雪峰的官方網站
List Comprehension

(2)xrange() 與 range() 的用法完全相同,區別是 xrange() 的返回值是生成器,而 range() 的返回值是列表。

Python xrange() 函數
Python range() 函數

(3)Python 中的 ** 運算代表冪運算,但有個特殊情況,官方文檔中把 0**0 的值定義為 1。

Numeric Types — int, float, long, complex

9.ABCD

知識點:面向對象

__init__是當實例對象創建完成后被調用的,然后設置對象屬性的一些初始值。
__new__是在實例創建之前被調用的,因為它的任務就是創建實例然后返回該實例,是個靜態方法。

即,__ new__在__init__之前被調用,__ new__的返回值(實例)將傳遞給__init__方法的第一個參數,然后__init__給這個實例設置一些參數。

10.ABCD

知識點:函數

在 Python 中萬物皆為對象,函數也不例外,函數作為對象可以賦值給一個變量、可以作為元素添加到集合對象中、可作為參數值傳遞給其它函數,還可以當做函數的返回值,這些特性就是第一類對象所特有的。
參考https://www.cnblogs.com/smallmars/p/6936871.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM