(1)怎么把一個字符串轉換成整型?
可以使用int函數 如 int('3') 結果由字符串'3'變為整型3
(2)python內建數據類型有哪些?
int 、bool、 str、list、 ruple、dict
(3)怎么把一個數字格式化輸出為10位寬度,不足前面補零?
可以用'%010d' % 56 或者 '{:010}'.format(56)
(4)‘4567’[3:]的運行結果是什么?
切片操作,下標從0開始 0 1 2 3 也就是'4567'中的第四個數 結果為7
(5)什么是負索引?
負索引從右邊開始檢索,同樣可用於切片操作 a[:-1]
(6)深拷貝和淺拷貝的區別?
深拷貝:將對象本身復制給另一個對象,用deepcopy()函數
淺拷貝:將對象的引用復制給另一個對象copy()
(7)解釋python中的join()和split()函數?
join()是將指定的字符串添加到字符串中
split是用來分割字符串的
(8)python中標識符的命名規則?
只能以下划線或者A-Z/a-z的字母開頭
其余部分只能使用A-Z/a-z/0-9
python標識符區分大小寫
關鍵字不能作為標識符。如 read / for / in / true / def 等
(9)如何刪除字符串中的前置空格?
Istrip() ----- 用於刪除字符串的前置空格; rstrip() -----用於刪除字符串后置空格
(10)如何將字符串轉換為小寫?
lower() ----- 用於將字符串中所有字母轉化為小寫; upper() ------ 用於將字符串中所有字母轉化為大寫
(11)如何申明多個變量並賦值?
申明多個變量並賦值有兩種方式:① a,b,c =1,2,3
② a = b = 3
(12)tuple和list的區別主要是什么?
列表是可變的,能添加修改刪除元素;而元組是不可變的,不能添加修改刪除元素。
元組比列表的訪問和處理速度快
列表不能為字典的鍵,而元組可以。
(13)列出python中可變數據類型和不可變數據類型?
可變數據類型:列表、字典
不可變數據類型:數值型、字符串、元組
(14)字典如何刪除鍵?如何合並兩個字典?
刪除鍵 ----- del dict['name']
合並兩個字典 dict1.update(dict2)
(15)python如何實現列表去重?
先用集合去重,因為集合是有序且唯一的 a = set(list)
然后轉化為列表b = [x for x in a ] for循環返回來的是列表類型
(16)打開文件的時候,用with open ... as ...這種方式有什么好處?
這種方式不需要調用close方法來關閉文件句柄。如果直接用open()這種方式,忘記關閉文件句柄,會造成文件一直打開的后果。
(17)read 、readline、readlines三者的區別是什么?
read -----讀取整個文件 fo.read(2) 不填參 表示讀全部 2表示讀兩個字符
readline ---- 讀取下一行 fo.readlin()
readlines ----- 讀取所有行 fo.readlines()
(18)執行import語句時,解釋器是如何查找模塊文件的?
最終是通過sys.pat決定的。通常我們可以通過修改環境變量PYTHONPATH來添加自己的模塊搜索路徑
(19)什么情況下,python對象會被解釋器清除?
當該對象沒有任何指向它的引用(引用計數為0)
(20)一個目錄要成為Python的package需要什么?
需要在目錄下面加上init.py文件
(21)python中的pass語句有什么用?
為了保證語法檢查的正確必須輸入一些東西,類似於break語句可以跳出循環。continue是跳到下一輪循環。
(22)python中調用外部程序有哪些方法?
可以使用os.system或者subprocess模塊里面的函數(比如 check_output)
(23)python函數參數定義里面 * **分別是什么意思?
帶 * 表示可變參數 ;帶**表示關鍵字可變參數。
如 def func(a, *inList, b=100, **c): **c關鍵字參數只能放在后面 a是必填參數,b是缺省參數
(24)range(10000)和xrange(10000)的區別是什么?
range和xrange都是在循環中使用,輸出結果一樣。
range返回的是一個list對象,而xrange返回的是一個生成器對象。
一般比較大的循環,建議使用xrange,從性能考慮會更快一些。
(25)python代碼中如果有中文,代碼文件應該做如何處理?
在頂部注釋中,加入類似#coding=utf8這樣的申明,但是要注意代碼文件是什么中文編碼格式,是gbk還是utf8,聲明的編碼格式匹配就可以。
在python3中,默認支持中文,所以不需要單獨去申明編碼格式。
(26)如何把unicode字符串的編碼成為utf8的字符串?
如 'abc'.encode('utf8') 當然解碼 就用 decode()
(27)進程和線程的區別?
進程是運行着的程序,而線程是進程中指令的執行單元。代碼指令必須在操作系統分配的線程中執行。
一個進程至少包含一個線程。
(28) 進程間通信有哪些方法?
共享內存、session通信都可以。
(29)兩個線程更新一個dict里面的內容,該怎么設計?
在訪問共享對象的代碼前,要調用Lock對象的acquire方法,進行上鎖。
當多個線程同時執行Lock.acquire()時,只有一個線程能成功獲取鎖,然后繼續執行代碼,其他線程就繼續等待直到獲得鎖為止。
訪問結束后,一定要調用Lock對象的relese方法,進行解鎖操作。否則其他等待鎖的線程將永遠等待下去,成為死線程。
(30)在面向對象中,__new__和__init__的區別?
__init__時初始化方法,創建對象后,就立刻被默認調用了, 可接收參數
__new__至少要一個參數cls,代表當前類,次參數在實例化時由python解釋器自動識別。
(31)列出5個python標准庫?
os ----- 提供了不少與操作系統相關聯的函數
sys ----- 通常用於命令行參數
re ----- 正則匹配
math ----- 數學運算
datetime ---- 處理日期時間
(32)用lambda函數實現兩個數相乘
sum = lambda a,b:a*b
print(sum)
(33)如何在python中使用多進制數字?
二進制由0和1組成,前綴一般是ob或0B 表示二進制數
八進制由0-7組成,前綴一般是0o或00 表示八進制數
十六進制由0-15組成,前綴一般是0x或0X 表示十六進制數
(34)python中生成隨機整數、隨機小數、0-1之間小數方法?
import random
import numpy as np
print(random.random()) # 隨機生成0-1之間的小數
print(random.randint(1, 10)) # 隨機生成1-10之間的整數
print(np.randn(5)) # 在0-1范圍內,隨機生成5個小數