學(xué)習(xí)廖雪峰老師的Python教程
http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
一 輸入輸出
輸入 input()
輸出 print
# print ('abc', 'hello', 'world')
name = input('please enter you name\n')
print ('hello', name)
print('\u4e2d')
二 基本數(shù)據(jù)類型
Python采用縮進(jìn)方式,注釋使用#
語句以冒號(hào)結(jié)尾時(shí),縮進(jìn)的語句視為代碼塊,Python大小寫敏感
1 數(shù)據(jù)類型和變量
整型, 布爾型(True, False), 浮點(diǎn)型, 空值(None), 字符串
邏輯運(yùn)算符 and or not
理解變量在計(jì)算機(jī)內(nèi)存中的表示:如:
a = 'abc'
Python解釋器做了兩件事:
1 在內(nèi)存中創(chuàng)建了一個(gè)'abc'的字符串
2 在內(nèi)存中創(chuàng)建了一個(gè)a的變量,把它指向'abc'字符串
常量:一般用大寫字母表示,如PI = 3.1415926 (約定俗成的)
預(yù)算:/除法 得到浮點(diǎn)數(shù),如9/3=3.0
//地板除 取小于該數(shù)的最大整數(shù)
2 編碼
早起的unicode是定長(zhǎng)字節(jié),使用兩個(gè)字節(jié)表示一個(gè)字符,后期發(fā)展為變長(zhǎng)字節(jié)的編碼(UTF-8)
英文字符使用一個(gè)字節(jié),中文使用三個(gè)字符
ASCii和Unicode和UTF-8關(guān)系
在計(jì)算機(jī)內(nèi)存中,統(tǒng)一使用unicode編碼,當(dāng)需要保存到硬盤或者需要傳輸?shù)臅r(shí)候,就轉(zhuǎn)換成utf-8
用記事本編輯的時(shí)候,從文件讀取的UTF-8字符被轉(zhuǎn)換為Unicode字符到內(nèi)存里,編輯完成后,保存的時(shí)候再把unicode轉(zhuǎn)換為utf-8
瀏覽網(wǎng)頁的時(shí)候,服務(wù)器會(huì)把動(dòng)態(tài)生成的Unicode內(nèi)容轉(zhuǎn)換成uft-8在傳輸?shù)綖g覽器
在python最新版中,字符串是以u(píng)nicode編碼的
對(duì)于單個(gè)字符的編碼,Python提供了ord()函數(shù)獲取字符的整數(shù)表示,chr吧編碼轉(zhuǎn)換成對(duì)應(yīng)的字符
由于python的字符串類型為string,在內(nèi)存中以u(píng)nicode表示,一個(gè)字符對(duì)應(yīng)若干個(gè)字節(jié),如果想要在網(wǎng)絡(luò)上傳輸,或者保存到磁盤上,就要把str變?yōu)樽止?jié)為單位的bytes,python對(duì)bytes類型的數(shù)據(jù)用b前綴的單引號(hào)或者雙引號(hào)表示
如 x = b'ABC'
以u(píng)nicode表示的str通過encode()方法可以編碼為指定的bytes
>>> 'ABC'.encode('ascii') b'ABC'
>>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87'
在bytes中,無法顯示為ascii字符的字節(jié),用\x##顯示
>>> b'ABC'.decode('ascii') 'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
len()用于統(tǒng)計(jì)字符或者字節(jié)的長(zhǎng)度 >>> len('中國'.encode('utf-8')) 輸出6
python源代碼是文本文件,保存的時(shí)候,一般都保存為utf-8,為了讓解釋器讀取源代碼按照utf-8讀取,需要在文件開頭加上這兩行
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
3 復(fù)合數(shù)據(jù)類型
數(shù)組類型
可變長(zhǎng)度 list
arr = [1,2,3,4];
print(arr)
#獲取長(zhǎng)度
print(len(arr))
#-1表示數(shù)組最后一個(gè)元素怨酝,-2表示第二個(gè)元素
print(arr[-1])
#數(shù)組函數(shù)
arr.append('abc')
print(arr)
arr.insert(1, '我是1')
print(arr.pop())
p = ['asp', 'php']
s = ['java', 'python', p,]
print(s)
print(s[2][1])
固定長(zhǎng)度tuple
元素一旦確定,就不能發(fā)生改變
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#tuple
p = (1, 2)
q = ()
s = (1,)
#使用逗號(hào)區(qū)分開來,以為不能確定是(1)數(shù)組1 還是數(shù)組, 消除歧義
print(p, q, s)
t = ('a', 'b', ['A', 'B'])
print(t)
#tuple中的元素不可變,但是其內(nèi)部是list,list是可變的
t[2][1] = 'C'
t[2][3] = '我是list第三個(gè)元素'
print(t)