數(shù)據(jù)類(lèi)型和變量
0x表示十六進(jìn)制
浮點(diǎn)數(shù)
1.23e2 表示123.0
1.2e-2 表示0.012
整數(shù)和浮點(diǎn)數(shù)在計(jì)算機(jī)內(nèi)部存儲(chǔ)的方式是不同的身堡,整數(shù)運(yùn)算永遠(yuǎn)是精確的叠纹,而浮點(diǎn)數(shù)運(yùn)算則可能會(huì)有四舍五入的誤差
字符串
\ 為轉(zhuǎn)義字符
r'' 分好內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義
'''...''' 如果字符串內(nèi)部有很多換行使用
.py文件這么寫(xiě)
print('''line1
line2
line3''')
也可以在'''...'''前面加上r使用 如
print(r'''hello,\n
world''')
布爾值
True慰照、False
可以用and蛆挫、or、not運(yùn)算
空值 None
Python 是動(dòng)態(tài)語(yǔ)言 如
a = 123
a = 'ABC'
常量
PI = 3.14159265359
>>> 10 / 3
3.3333333333333335
// 稱(chēng)為地板除域帐,兩個(gè)整數(shù)的除法仍然是整數(shù)
>>> 10 // 3
3
% 余數(shù)運(yùn)算
>>> 10 % 3
1
Python的整數(shù)和浮點(diǎn)數(shù)沒(méi)有大小限制赘被,但是超出一定范圍就直接表示為inf(無(wú)限大)
字符串
在最新的Python3中,字符串是以Unicode編碼的肖揣,也就是說(shuō)Python的字符串支持多語(yǔ)言
ord()函數(shù)獲取字符的整數(shù)表示
>>> ord('a')
97
chr()函數(shù)把編碼轉(zhuǎn)換為對(duì)應(yīng)的字符
>>> chr(97)
'a'
Python對(duì)bytes類(lèi)型的數(shù)據(jù)用帶b前綴的單引號(hào)或雙引號(hào)表示
x = b'ABC'
bytes的每個(gè)你字符都只占用一個(gè)字節(jié)
通過(guò)encode()方法可以編碼為指定的bytes
>>> 'ABC'.encode('ascii')
b'ABC'
>>> '中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
在bytes中民假,無(wú)法顯示為ASCII字符的字節(jié),用\x##顯示龙优。
用decode()方法變?yōu)閟tr
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
如果bytes中只有一小部分無(wú)效的字節(jié)羊异,可以傳入errors='ignore'忽略錯(cuò)誤的字節(jié):
>>> b'\xe4\xb8\xad\xff'.decode('utf-8', errors='ignore')
'中'
要計(jì)算str包含多少個(gè)字符,可以用len()函數(shù):
>>> len('ABC')
3
>>> len('中文'.encode('utf-8'))
6
py文件中加入# -*- coding: utf-8 -*-
表示按照UTF-8編碼讀取源代碼
格式化
%d 整數(shù)
%f 浮點(diǎn)數(shù)
%s 字符串
%x 十六進(jìn)制整數(shù)
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
format()
>>> 'Hello, {0}, 成績(jī)提升了 {1:.1f}%'.format('小明', 17.125)
'Hello, 小明, 成績(jī)提升了 17.1%'
print('提升了{(lán)0:.2f} %'.format(r))
print('%d%%' % 3)
提升了13.00 %
3%
list
有序 可變
classmates = ['Michael', 'Bob', 'Tracy']
獲取list的元素個(gè)數(shù)
len(classmates)
取出元素
classmates[0]
取出最后一個(gè)元素
classmates[-1]
倒第二個(gè)
classmates[-2]
追加
classmates.append('Adam')
插入
classmates.insert(1, 'Jack')
刪除末尾的
classmates.pop()
刪除指定的
classmates.pop(i)
替換
classmates[1] = 'Sarah'
元素類(lèi)型可以不同
L = ['Apple', 123, True]
元素也可以是另外一個(gè)list
s = ['python', 'java', ['asp', 'php'], 'scheme']
s[2][1]
tuple
有序彤断, 不可變
元組:tuple球化。tuple和list非常類(lèi)似,但是tuple一旦初始化就不能修改
classmates = ('Michael', 'Bob', 'Tracy')
定義一個(gè)元素的時(shí)候
t = (1,)
條件判斷
Python的if...elif...else很靈活瓦糟。
age = 20
if age >= 18:
print('your age is', age)
print('adult')
your age is 20
adult
elif 是 else if縮寫(xiě)
if x:
print('True')
只要x是非零數(shù)值、非空字符串赴蝇、非空l(shuí)ist等菩浙,就判斷為T(mén)rue,否則為False句伶。
類(lèi)型轉(zhuǎn)換
int(s)
循環(huán)
break 和 continue和其他語(yǔ)言都一樣
>>> list(range(5))
[0, 1, 2, 3, 4]
sum = 0
for x in range(101):
sum = sum + x
print(sum)
5050
L = ['Bart', 'Lisa', 'Adam']
for x in L:
print('Hello, %s' % x)
n = 0
while len(L) > n:
print('Hello, %s' % L[n])
n = n + 1
dict
無(wú)序
key必須是不可變的 tuple里包含list不行
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
添加
d['Adam'] = 67
判斷key不存在的錯(cuò)誤劲蜻,有兩種辦法
1、in
'Thomas' in d
False
2考余、通過(guò)dict提供的get()方法先嬉,如果key不存在,可以返回None楚堤,或者自己指定的value:
d.get('Thomas')
返回None的時(shí)候Python的交互環(huán)境不顯示結(jié)果
>>> d.get('Thomas', -1)
-1
刪除
d.pop('Bob')
set
無(wú)value 無(wú)重復(fù) 無(wú)序
要?jiǎng)?chuàng)建一個(gè)set疫蔓,需要提供一個(gè)list作為輸入集合:
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
添加
s.add(4)
刪除
s.remove(4)
交集并集
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
可變 不可變
>>> a = ['c', 'b', 'a']
>>> a.sort()
>>> a
['a', 'b', 'c']
替換
>>> a = 'abc'
>>> a.replace('a', 'A')
'Abc'
>>> a
'abc'