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