[試題]Python大賽部分答案

不定項選擇:

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

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

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

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

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)code

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

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
相關文章
相關標籤/搜索