1. 程式人生 > 其它 >Python學習筆記[牛客專項練習]

Python學習筆記[牛客專項練習]

技術標籤:牛客專項練習資料分析

下面哪個是Python中的不變的資料結構?

正確答案: C

set
list
tuple
dict

  • 可變:list, dict,set
  • 不可變:string int float tuple boolen
    幫助記憶的方法:不可變的看作是個體, 可變是一個容器

關於Python記憶體管理,下列說法錯誤的是

正確答案: B

變數不必事先宣告
變數無須先建立和賦值而直接使用
變數無須指定型別
可以使用del釋放資源

python中變數可以不事先宣告、不指定型別,會自動根據賦值語句來決定型別
同時,使用前必須賦值,在賦值的同時變數也就建立了

Python呼叫( )函式可實現對檔案內容的讀取

正確答案: A

read()
readline()
readlines()
readclose()

read()讀整個檔案
readline()讀一行
readlines()讀所有行到list

下列Python語句正確的是

正確答案: D

min = x if x < y = y
max = x > y ? x : y
if (x > y) print x
while True : pass

A:三元運算子的使用

a if condition else b
min = x if x < y else y

B: python中無此用法
C:缺少冒號

if (x > y) : print x

關於Python中的複數,下列說法錯誤的是()

正確答案: C

表示複數的語法是real + image j
實部和虛部都是浮點數
虛部必須字尾j,且必須小寫
方法conjugate返回複數的共軛複數

虛部的字尾可以是’j’也可以是’J’

下面程式碼執行後,a、b、c、d四個變數的值

import copy
a = [1, 2, 3, 4, ['a', 'b']] 
b = a  # 引用,除非直接給a重新賦值,否則a變則b變,b變則a變
c = copy.copy(a) # 淺複製,只會拷貝父物件,不會拷貝父物件中的子物件,所以若a的子物件變則c 變,但是父物件變c不會變
d = copy.
deepcopy(a) #深拷貝,完全拷貝,完全獨立於原物件,a變也不變 a.append(5) a[4].append('c')

a = [1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
b = [1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
c = [1, 2, 3, 4, [‘a’, ‘b’, ‘c’]]
d = [1, 2, 3, 4, [‘a’, ‘b’]]

b=a,只是換了一個名字,a怎麼變b就怎麼變,
c是淺複製,只複製了a的部分值,仍然共用某些值,所以在對a的子物件進行操作時會改變c
d是深複製,完全複製了a的所有值,已經完全與a無關,對a的任何操作都不會影響d

下列表達式的值為True的是

正確答案: C

5+4j > 2-3j #不支援複數比較大小
3>2>2
(3,2)< (‘a’,‘b’)
’abc’ > ‘xyz’

C: tuple 的比較是從兩者的第一個元素的 ASCII 碼開始,直至兩個元素不相等為止,若前面元素都相等,則元素個數多的 tuple 較大。
D: 字串的比較與 tuple 類似,也是從第一個字元開始比較 ASCII 碼,直到兩個字元不相等為止。
字母與數字的ASCII 碼大小範圍是 “a-z” > “A-Z” > “0-9”,D選項中 ‘a’ < ‘x’

已知print_func.py的程式碼如下:

print('Hello World!')
print('__name__value: ', __name__)
 
def main():
   print('This message is from main function')
   if __name__ =='__main__':
main()

print_module.py的程式碼如下:

import print_func
print("Done!")

執行print_module.py程式,結果是:

Hello World!  __name__ value: print_func  Done!

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

正確答案: A B C D

函式可以賦值給一個變數
函式可以作為元素新增到集合物件中
函式可以作為引數值傳遞給其它函式
函式可以當做函式的返回值

在 Python 中萬物皆為物件,函式也不例外