1. 程式人生 > >python 刷題 time11.11

python 刷題 time11.11

一個段程式碼定義如下,下列呼叫結果正確的是?

def bar(multiple):
def foo(n):
return multiple ** n
return foo
正確答案: A 你的答案: A (正確)
bar(2)(3) == 8
bar(2)(3) == 6
bar(3)(2) == 8
bar(3)(2) == 6

解析
# -*- coding: utf-8 -*-


def bar(multiple):
    def foo(n):
        return multiple ** n
    return foo


print(bar(2
)(3) == 8) # result True

What gets printed?()

print r"\nwoow"
正確答案: C 你的答案: C (正確)
new line then the string: woow
the text exactly like this: r"\nwoow"
the text like exactly like this: \nwoow
the letter r and then newline then the text: woow
the letter r then the text like this: nwoow

解析
>
print(r"\nwoow") \nwoow

有如下類定義,下列描述錯誤的是?

class A(object):
pass

class B(A):
pass

b = B()
正確答案: D 你的答案: D (正確)
isinstance(b, A) == True
isinstance(b, object) == True
issubclass(B, A) == True
issubclass(b, B) == True

解析
  • isinstance() 函式來判斷一個物件是否是一個已知的型別,類似 type()。
  • isinstance() 與 type() 區別:
    • type() 不會認為子類是一種父類型別,不考慮繼承關係。
    • isinstance() 會認為子類是一種父類型別,考慮繼承關係。
  • 引數
    • object – 例項物件。
    • classinfo – 可以是直接或間接類名、基本型別或者由它們組成的元組。
  • 返回
    • 如果物件的型別與引數二的型別(classinfo)相同則返回 True,否則返回 False。

What gets printed?()

1
2
3
4
5
kvps = { ‘1’ : 1, ‘2’ : 2 }
theCopy = kvps.copy()
kvps[‘1’] = 5
sum = kvps[‘1’] + theCopy[‘1’]
print sum

正確答案: C 你的答案: C (正確)
1
2
6

解析
kvps = { '1' : 1, '2' : 2 }
theCopy = kvps.copy()
print(id(kvps), id(theCopy))

kvps['1'] = 5
print(id(kvps), id(theCopy))
print(kvps, theCopy)

sum = kvps['1'] + theCopy['1']
print(sum)

# result
2005641039664 2005641073144
2005641039664 2005641073144
{'1': 5, '2': 2} {'1': 1, '2': 2}
6

下面程式碼執行結果?

a = 1
try:
a += 1
except:
a += 1
else:
a += 1
finally:
a += 1
print a

正確答案: C 你的答案: C (正確)
2
3
4
5

解析
# -*- coding: utf-8 -*-


try:
    print('try')
except:
    print('except')
else:
    print('else')
finally:
    print('finally')


# output
# try
# else
# finally

try:
    1 != 1
except:
    print('except')
else:
    print('else')
finally:
    print('finally')

# output
# else
# finally

python my.py v1 v2 命令執行指令碼,通過 from sys import argv如何獲得v2的引數值?

正確答案: C 你的答案: A (錯誤)
argv[0]
argv[1]
argv[2]
argv[3]

解析

argv[0]:指令碼自身路徑
argv[1]:第一個引數
argv[2]:第二個引數

有一段python的編碼程式如下:urllib.quote(line.decode(“gbk”).encode(“utf-16”)),請問經過該編碼的字串的解碼順序是( )

正確答案: D 你的答案: C (錯誤)
gbk utf16 url解碼
gbk url解碼 utf16
url解碼 gbk utf16
url解碼 utf16 gbk

有一段python的編碼程式如下:urllib.quote(line.decode(“gbk”).encode(“utf-16”)),請問經過該編碼的字串的解碼順序是( )

正確答案: D 你的答案: C (錯誤)
gbk utf16 url解碼
gbk url解碼 utf16
url解碼 gbk utf16
url解碼 utf16 gbk

Python中函式是物件,描述正確的是?

正確答案: A B C D 你的答案: B (錯誤)
函式可以賦值給一個變數
函式可以作為元素新增到集合物件中
函式可以作為引數值傳遞給其它函式
函式可以當做函式的返回值

若 a = (1, 2, 3),下列哪些操作是合法的?

正確答案: A B D 你的答案: B D (錯誤)
a[1:-1]
a*3
a[2] = 4
list(a)

解析
>a = (1, 2, 3)
>print(a[1:-1])
(2,)
>print(a[-1])  # 擷取倒數第一個元素
(3,)
>print(a[:-1])  # 從頭擷取到倒數第一個元素
(1, 2)
>print(a[1:])  # 從第一個擷取到末尾
(2, 3)

__new__和__init__的區別,說法正確的是?

  • 正確答案: A B C D 你的答案: 空 (錯誤)
    • __new__是一個靜態方法,而__init__是一個例項方法
    • __new__方法會返回一個建立的例項,而__init__什麼都不返回
    • 只有在__new__返回一個cls的例項時,後面的__init__才能被呼叫
    • 當建立一個新例項時呼叫__new__,初始化一個例項時用__init__
解析

__init__是當例項物件建立完成後被呼叫的,然後設定物件屬性的一些初始值。
__new__是在例項建立之前被呼叫的,因為它的任務就是建立例項然後返回該例項,是個靜態方法。

即,__new__在__init__之前被呼叫,__new__的返回值(例項)將傳遞給__init__方法的第一個引數,然後__init__給這個例項設定一些引數。

下列哪種說法是錯誤的

正確答案: A 你的答案: A (正確)
除字典型別外,所有標準物件均可以用於布林測試
空字串的布林值是False
空列表物件的布林值是False
值為0的任何數字物件的布林值是False