在python2中預設的編碼事ascii,python3中是unicode,在python中encode,在轉碼的同時會把string變成bytes型別,在decode解碼同時把bytes轉成string。
上圖是適用於python2中。
在python3中預設是unicode
msg = "我愛北京天安門"函式:#msg_gb2312 = msg.decode("utf-8").encode("gb2312")
msg_gb2312 = msg.encode("gb2312") #預設就是unicode,不用再decode,喜大普奔
gb2312_to_unicode = msg_gb2312.decode("gb2312")
gb2312_to_utf8 = msg_gb2312.decode("gb2312").encode("utf-8")
在進行轉換時所有的格式都要decode稱為unicode在encode成你想要的格式。
在python中使用函式防止**重用,保持一致性和可擴充套件性。
def fun1(): def fun2:()
print('in the fun1') print('in the fun2')
return 0
x = fun1()
y = fun2()
在列印這兩個函式後顯示 x = 0 y 是none 在fun2函式中沒有進行return預設返回乙個none。
在函式中可以進行傳引數
def test(x,y) 這裡的x y是形參
print(x)
print(y)
test(1,2) 這裡呼叫函式 1,2是實參 這樣時位置呼叫,必須要位置對應。
test (x=1,y=2)這樣是關鍵引數呼叫,位置可以更換,但引數必須全有。
test(2,y=2)也可混合寫,但必須是關鍵引數不能在位置引數前面
預設引數:
def test(x y=5)
print(x)
print(y)
在呼叫引數時 y可以寫也可以不寫
test(3)輸出的就是 3,5
test(3,7)輸出的就是3,7
在實參不固定時形參可以寫成*args
def test(*args)
print(args)
形參中還是可傳入字典是用**kwargs
def test(**kwargs)
print(kwargs)
test(name='zhang',age='23')
全域性區域性變數:
區域性變數
def change_name(name):
print('before name',name)
name = 'zhang' #這裡只是乙個區域性變數 區域性變數只在函式這個作用域中
print('after name',name)
name =' zhang'
change_name(name)
print(name)
輸出:before name zhang , after name zhang, zhang
全域性變數:
宣告乙個全域性變數要在檔案頭宣告
name = 'zhang'
def change_name(name):
global name #這是在函式中修改全域性變數的方式。如果全域性變數是字串和整數時,強烈不建議修改全域性變數。列表和字典可以進行修改
name = 'zhang'
python 中字元編碼
背景 在跑hadoop是python指令碼經常要處理不同的格式的編碼資料,主要字元編碼 ascii,gb18030,unicode,utf 8等 python有兩種字串 bytestring hello world in my default locale unicodestring u hello...
Python 中的字元編碼
1 str型別可以理解為乙個二進位制block,或multibyte 2 multibyte str.decode unicode 3 unicode str.encode multibyte str binary block 4 unicode str 的操作引數也應為unicode,如 unic...
Python中的字元編碼
cpu 記憶體 硬碟是計算機的三大核心硬體。1.任何軟體在執行之前,都是以二進位制的格式儲存在硬碟當中的。2.當軟體被開啟時,硬碟將資料載入到記憶體中,cpu再從記憶體中讀取資料被執行。3.軟體在執行過程中產生的資料都是存放於記憶體中,若想永久儲存資料,則得轉移到硬碟中 有的小夥伴可能會想到 那在電...