Python - 1

print('I'm ok.')
轉義字符\可以轉義很多字符戴卜,比如\n表示換行胶坠,\t表示制表符指么,字符\本身也要轉義,所以\表示的字符就是\

如果字符串里面有很多字符都需要轉義区端,就需要加很多\值漫,為了簡化,Python還允許用r''表示''內(nèi)部的字符串默認不轉義
print(r'\\t\') # \\t\

如果字符串內(nèi)部有很多換行珊燎,用\n寫在一行里不好閱讀惭嚣,為了簡化,Python允許用'''...'''的格式表示多行內(nèi)容
print('''line1
...line2
..line3...''')

line1

...line2
..line3...

布爾值:
True與False
*and為與 兩個判斷同為True或False時and才執(zhí)行
print(5 > 3 and 5 >4) #True
*or為或,一個判斷為True則返回True
*not非,把True變成False悔政,F(xiàn)alse變成True. print(not 1 > 2) #True

空值
空值是Python里一個特殊的值晚吞,用None表示。None不能理解為0谋国,因為0是有意義的槽地,而None是一個特殊的空值。

除法:/浮點型,//整除,%取余

ord()函數(shù)獲取字符的整數(shù)表示芦瘾,chr()函數(shù)把編碼轉換為對應的字符

純英文的str可以用ASCII編碼為bytes捌蚊,內(nèi)容是一樣的,含有中文的str可以用UTF-8編碼為bytes近弟。含有中文的str無法用ASCII編碼缅糟,因為中文編碼的范圍超過了ASCII編碼的范圍,Python會報錯祷愉。
在bytes中窗宦,無法顯示為ASCII字符的字節(jié),用\x##顯示二鳄。
(此處應注意,不能多或少空格,否則會報錯)

'ABC'.encode('ascii')
b'ABC'
'中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
b'ABC'.decode('ascii')
'ABC'
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'

算str包含多少個字符赴涵,可以用len()函數(shù):>>> len('ABC')
3
len()函數(shù)計算的是str的字符數(shù),如果換成bytes订讼,len()函數(shù)就計算字節(jié)數(shù),一個中文字符經(jīng)過utf-8編碼時,通常會占用3個字節(jié),而一個英文字符只占用一個字符

len(b'ABC')
3
len(b'\xe4\xb8\xad\xe6\x96\x87')
6
len('中文'.encode('utf-8'))
6

注:python的源代碼也是一個文本文件,所以當源碼中包含中文的時候,在保存源碼時,就需要指定保存為UTF-8編碼, 需要在文件開頭加

!/usr/bin/env python3

-- coding: utf-8 --

%運算符是用來格式化字符串的

'Hi, %s, you have $%d.' % ('Michael', 10000)
'Hi, Michael, you have $10000.'
%d 整數(shù)
%f 浮點數(shù)
%s 字符串
%x 十六進制整數(shù)

當%作為一個字符存在時,用%%表示

'growth rate: %d %%' % 7
'growth rate: 7 %'

list 和 tuple

list就是oc中的數(shù)組

classmates = ['Michael', 'Bob','Lili']
classmates
['Michael', 'Bob', 'Lili']
//插入
classmates.insert(1, 'Jack')
classmates
['Michael', 'Jack', 'Bob', 'Lili']
// 刪除
pop,pop()默認刪除最后一個元素pop(1)刪除指定索引處
//替換
classmates[0] = 'Liu'
classmates
['Liu', 'Jack']
// 可以有不同的元素
L = ['Apple', 123, True]
L
['Apple', 123, True]
// 一個數(shù)組也可以包含其他數(shù)組
s = [L,classmates]
s
[['Apple', 123, True], ['Liu', 'Jack']]

tuple

有序列表,一旦初始化就不能修改,tuple和list的區(qū)別就是一個可變一個不可變,類似于nsarray與namutablearr

else和if語句沒有寫成功,這里標記一下...

for name in names:
print(name)
mic
bob
nancy
sum = 0
for x in [1,2,3,4,5,6,7]:
sum = sum + x
print(sum)
1
3
6
10
15
21
28

range()可以生成一個整數(shù)序列,從0開始

list(range(5))
[0, 1, 2, 3, 4]
sum = 0
for x in range(101):
sum = sum + x
print (sum)
// 5050

Dictionary

和list比較髓窜,dict有以下幾個特點:
查找和插入的速度極快,不會隨著key的增加而變慢欺殿;
需要占用大量的內(nèi)存寄纵,內(nèi)存浪費多。
而list相反:
查找和插入的時間隨著元素的增加而增加祈餐;
占用空間小擂啥,浪費內(nèi)存很少。
所以帆阳,dict是用空間來換取時間的一種方法哺壶。

set
set和dict類似,也是一組key的集合蜒谤,但不存儲value山宾。由于key不能重復,所以鳍徽,在set中资锰,沒有重復的key。

s = set([1,2,3])
s
{1, 2, 3}
注意阶祭,傳入的參數(shù)[1, 2, 3]是一個list绷杜,而顯示的{1, 2, 3}只是告訴你這個set內(nèi)部有1直秆,2,3這3個元素鞭盟,顯示的順序也不表示set是有序的圾结。。
// 重復參數(shù)會被過濾
s = set([1,2,3,11,34,2,3,3])
s
{1, 2, 3, 34, 11}
// 添加
s.add(4)
s
{1, 2, 3, 34, 4, 11}
// 刪除
s.remove(4)
s
{1, 2, 3, 34, 11}

set可以看成數(shù)學意義上的無序和無重復元素的集合,兩個set可以做數(shù)學意義上的交集,并集等操作

s1 = set([1,2,3])
s2 = set([2,3,4])
s1 & s2
{2, 3}
s1 | s2
{1, 2, 3, 4}

set和dic的區(qū)別為沒有存儲對應的value,共同點為同樣不可以放入可變對象,無法判斷兩個可變對象是否相等,也就無法保證set內(nèi)部“不會有重復元素”.

定義函數(shù)時齿诉,需要確定函數(shù)名和參數(shù)個數(shù)筝野;
如果有必要,可以先對參數(shù)的數(shù)據(jù)類型做檢查粤剧;
函數(shù)體內(nèi)部可以用return隨時返回函數(shù)結果歇竟;
函數(shù)執(zhí)行完畢也沒有return語句時,自動return None抵恋。
函數(shù)可以同時返回多個值焕议,但其實就是一個tuple。

def my_abs(x):
if not isinstance(x, (int, float)):
s
[['Apple', 123, True], ['Liu', 'Jack']]

#####tuple
有序列表,一旦初始化就不能修改,tuple和list的區(qū)別就是一個可變一個不可變,類似于nsarray與namutablearr

#####else和if語句沒有寫成功,這里標記一下...
>>> for name in names:
print(name)
mic
bob
nancy
>>> sum = 0
>>> for x in [1,2,3,4,5,6,7]:
sum = sum + x
print(sum)
1
3
6
10
15
21
28

range()可以生成一個整數(shù)序列,從0開始
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> sum = 0
>>> for x in range(101):
sum = sum + x
print (sum)
// 5050

#####Dictionary
和list比較馋记,dict有以下幾個特點:
查找和插入的速度極快号坡,不會隨著key的增加而變慢;
需要占用大量的內(nèi)存梯醒,內(nèi)存浪費多宽堆。
而list相反:
查找和插入的時間隨著元素的增加而增加;
占用空間小茸习,浪費內(nèi)存很少畜隶。
所以,dict是用空間來換取時間的一種方法号胚。

set
set和dict類似籽慢,也是一組key的集合,但不存儲value猫胁。由于key不能重復箱亿,所以,在set中弃秆,沒有重復的key届惋。
>>> s = set([1,2,3])
>>> s
{1, 2, 3}
注意,傳入的參數(shù)[1, 2, 3]是一個list菠赚,而顯示的{1, 2, 3}只是告訴你這個set內(nèi)部有1脑豹,2,3這3個元素衡查,顯示的順序也不表示set是有序的瘩欺。。
// 重復參數(shù)會被過濾
>>> s = set([1,2,3,11,34,2,3,3])
>>> s
{1, 2, 3, 34, 11}
// 添加
>>> s.add(4)
>>> s
{1, 2, 3, 34, 4, 11}
// 刪除
>>> s.remove(4)
>>> s
{1, 2, 3, 34, 11}

set可以看成數(shù)學意義上的無序和無重復元素的集合,兩個set可以做數(shù)學意義上的交集,并集等操作
>>> s1 = set([1,2,3])
>>> s2 = set([2,3,4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

set和dic的區(qū)別為沒有存儲對應的value,共同點為同樣不可以放入可變對象,無法判斷兩個可變對象是否相等,也就無法保證set內(nèi)部“不會有重復元素”.


定義函數(shù)時,需要確定函數(shù)名和參數(shù)個數(shù)俱饿;
如果有必要歌粥,可以先對參數(shù)的數(shù)據(jù)類型做檢查;
函數(shù)體內(nèi)部可以用return隨時返回函數(shù)結果拍埠;
函數(shù)執(zhí)行完畢也沒有return語句時阁吝,自動return None。
函數(shù)可以同時返回多個值械拍,但其實就是一個tuple。
>>> def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x

my_abs('C')
Traceback (most recent call last):
for name in names:
print(name)
mic
bob
nancy
>>> sum = 0
>>> for x in [1,2,3,4,5,6,7]:
sum = sum + x
print(sum)
1
3
6
10
15
21
28

range()可以生成一個整數(shù)序列,從0開始
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> sum = 0
>>> for x in range(101):
sum = sum + x
print (sum)
// 5050

#####Dictionary
和list比較装盯,dict有以下幾個特點:
查找和插入的速度極快坷虑,不會隨著key的增加而變慢;
需要占用大量的內(nèi)存埂奈,內(nèi)存浪費多迄损。
而list相反:
查找和插入的時間隨著元素的增加而增加;
占用空間小账磺,浪費內(nèi)存很少芹敌。
所以,dict是用空間來換取時間的一種方法垮抗。

set
set和dict類似氏捞,也是一組key的集合,但不存儲value冒版。由于key不能重復液茎,所以,在set中辞嗡,沒有重復的key捆等。
>>> s = set([1,2,3])
>>> s
{1, 2, 3}
注意,傳入的參數(shù)[1, 2, 3]是一個list续室,而顯示的{1, 2, 3}只是告訴你這個set內(nèi)部有1栋烤,2,3這3個元素挺狰,顯示的順序也不表示set是有序的明郭。。
// 重復參數(shù)會被過濾
>>> s = set([1,2,3,11,34,2,3,3])
>>> s
{1, 2, 3, 34, 11}
// 添加
>>> s.add(4)
>>> s
{1, 2, 3, 34, 4, 11}
// 刪除
>>> s.remove(4)
>>> s
{1, 2, 3, 34, 11}

set可以看成數(shù)學意義上的無序和無重復元素的集合,兩個set可以做數(shù)學意義上的交集,并集等操作
>>> s1 = set([1,2,3])
>>> s2 = set([2,3,4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}

set和dic的區(qū)別為沒有存儲對應的value,共同點為同樣不可以放入可變對象,無法判斷兩個可變對象是否相等,也就無法保證set內(nèi)部“不會有重復元素”.


定義函數(shù)時她渴,需要確定函數(shù)名和參數(shù)個數(shù)达址;
如果有必要,可以先對參數(shù)的數(shù)據(jù)類型做檢查趁耗;
函數(shù)體內(nèi)部可以用return隨時返回函數(shù)結果沉唠;
函數(shù)執(zhí)行完畢也沒有return語句時,自動return None苛败。
函數(shù)可以同時返回多個值满葛,但其實就是一個tuple径簿。
>>> def my_abs(x):
if not isinstance(x, (int, float)):
raise TypeError('bad operand type')
if x >= 0:
return x
else:
return -x

>>> my_abs('C')
Traceback (most recent call last):
File "<pyshell#38>", line 1, in <module>
my_abs('C')
File "<pyshell#37>", line 3, in my_abs
raise TypeError('bad operand type')
TypeError: bad operand type
my_abs(1)
1

計算x2的函數(shù):

def power(x):
return x * x
power (5)
25

n次方
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s

power(5,2)
25

設置默認值

def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s

power (5)
25
power (5, 3)
125

定義默認參數(shù):

def add_end(L=[ ]):
L.append('END')
return L

add_end([1,2,3])
[1, 2, 3, 'END']
add_end()
['END']
add_end()
['END', 'END']
所以,定義默認參數(shù)要牢記一點:默認參數(shù)必須指向不變對象嘀韧!我們可以用None這個不變對象來實現(xiàn):
def add_end(L=None):
if L is None:
L = []
L.append('End')
return L

add_end()
['End']
add_end()
['End']
因為不變對象一旦創(chuàng)建篇亭,對象內(nèi)部的數(shù)據(jù)就不能修改,這樣就減少了由于修改數(shù)據(jù)導致的錯誤锄贷。此外译蒂,由于對象不變,多任務環(huán)境下同時讀取對象不需要加鎖谊却,同時讀一點問題都沒有柔昼。我們在編寫程序時,如果可以設計一個不變對象炎辨,那就盡量設計成不變對象捕透。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碴萧,隨后出現(xiàn)的幾起案子乙嘀,更是在濱河造成了極大的恐慌,老刑警劉巖破喻,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虎谢,死亡現(xiàn)場離奇詭異,居然都是意外死亡曹质,警方通過查閱死者的電腦和手機嘉冒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咆繁,“玉大人讳推,你說我怎么就攤上這事⊥姘悖” “怎么了银觅?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長坏为。 經(jīng)常有香客問我究驴,道長,這世上最難降的妖魔是什么匀伏? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任洒忧,我火速辦了婚禮,結果婚禮上够颠,老公的妹妹穿的比我還像新娘熙侍。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布蛉抓。 她就那樣靜靜地躺著庆尘,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巷送。 梳的紋絲不亂的頭發(fā)上驶忌,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天,我揣著相機與錄音笑跛,去河邊找鬼付魔。 笑死,一個胖子當著我的面吹牛飞蹂,可吹牛的內(nèi)容都是我干的抒抬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼晤柄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妖胀?” 一聲冷哼從身側響起芥颈,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎赚抡,沒想到半個月后爬坑,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡涂臣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年盾计,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赁遗。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡署辉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岩四,到底是詐尸還是另有隱情哭尝,我是刑警寧澤,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布剖煌,位于F島的核電站材鹦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏耕姊。R本人自食惡果不足惜桶唐,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茉兰。 院中可真熱鬧尤泽,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鬼店,卻和暖如春网棍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背妇智。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工滥玷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巍棱。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓惑畴,卻偏偏與公主長得像,于是被迫代替她去往敵國和親航徙。 傳聞我的和親對象是個殘疾皇子如贷,可洞房花燭夜當晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容