Python 知識小tips

python進制轉換函數:

二進制轉換成十進制:v = “0b1111011”    # int(v,2)
十進制轉換成二進制:v = 18                   # bin(v)
八進制轉換成十進制:v = “011”               # int(v, 8)
十進制轉換成八進制:v = 30                   # oct(v)
十六進制轉換成十進制:v = “0x12”         # int(v, 16)
十進制轉換成十六進制:v = 87               # hex(v)


編寫一個函數實現將IP地址轉換成一個整數:

a = '10.3.9.12'
a = [int(x) for x in a.split('.')]
result = sum(a[i] << [24, 16, 8, 0][i] for i in range(4))
整數轉換爲IP地址
print('.'.join([str(a >> x & 0xff) for x in [24, 16, 8, 0]]))

python遞歸的最大層數?

import time
def fun(n):
	time.sleep(0.01)
	print(n)
	try:
		fun(n+1)
	except:
		print('error:',n)
fun(1)
寫程序運行的是997應該加上本身是998層,尾遞歸優化。

ascii、unicode、utf-8、gbk 區別?

ASCII碼大小是1個字節,範圍是英文字母和數字和特殊符號,只有256個字符
Unicode大小是2個字節(生僻字4個字節),所有語言
UTF-8(1-6個字節,英文1個字節,中文3個字節,生僻字4-6個字節),所有語言(ascii可以看成是UTF-8的一部分)
GBK是編碼漢字的,使用雙字節編碼


字節碼和機器碼的區別?

字節碼是一種中間狀態(中間碼)的二進制代碼(文件)。需要直譯器轉譯後才能成爲機器碼(CPU可直接解讀的數據)。


lambda表達式格式以及應用場景?

lambda是匿名函數,lambda x : x + 2 lambda *args : sum(args) lambda **kwargs : 1 使用場景:函數式編程(map, reduce filter sorted),閉包


Python的可變類型和不可變類型?

可變類型:list,dict,set,可變集合
不可變類型:string,int,float,tuple,不可變集合

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章