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,不可變集合