0.初識(shí)Python
作為一個(gè)曾經(jīng)只會(huì)MATLAB的編程小白,無意間接觸到了Python,就被它簡(jiǎn)潔的語(yǔ)法和強(qiáng)大的功能所吸引。寫這一系列文章的初衷是想把學(xué)習(xí)過程中的感悟和思考記錄下來,絕非是教程倒彰,因?yàn)樽髡咭彩橇慊A(chǔ)開始,水平著實(shí)有限莱睁。算是新學(xué)期的第一個(gè)flag待讳,也算是為我即將進(jìn)入數(shù)據(jù)科學(xué)領(lǐng)域熱熱身,希望能堅(jiān)持下去仰剿,不負(fù)韶華不負(fù)心创淡!
? 廢話不多說,老規(guī)矩:
>>> print('Hello,python!')
Hello,python!
1. Python的數(shù)據(jù)類型
-
數(shù)值類型
- 整型(int):int會(huì)將小數(shù)向下取整(截?cái)啵?/li>
>>> int(6.9) 6 #一個(gè)巧妙的四舍五入辦法 int(x+0.5) >>> int(6.4+0.5) 6 >>> int(6.6+0.5) 7
- 浮點(diǎn)型(float):Python區(qū)分整型or浮點(diǎn)型只看數(shù)據(jù)有沒有小數(shù)點(diǎn)
>>> a=1 >>> b=1.0 >>> type(a) <class 'int'> >>> type(b) <class 'float'>
e記法為類型為浮點(diǎn)型
>>> a=3e10;type(a); <class 'float'>
- 布爾類型(bool):True(=1)琳彩、False(=0)
>>> print(True + 5) 6
字符串(str)
列表(list)
元組(tuple)
字典(dict)
集合(set)
各類型的具體用法會(huì)在以后的文章中提到。
注:判斷變量的類型可用type()
或isinstance()
函數(shù)部凑。
>>> name='Shan Jiawei'
>>> type(name)
<class 'str'>
>>> isinstance(name,bool)
False
2.常用操作符
-
算數(shù)操作符
-
四則運(yùn)算:+ - * /
可用 a += 1 來表示 a = a + 1
求余:%
5 % 2 = 1
求冪: **
地板除: // 向下取整
-
比較操作符: < <= > >= == !=
邏輯操作符:and or not → True \ False
優(yōu)先級(jí)
冪運(yùn)算 > 正負(fù)號(hào) > 算數(shù)操作符 > 比較操作符 > 邏輯操作符
邏輯操作符中 not > and > or
短路邏輯(short-circuit logic)
Python在進(jìn)行邏輯操作符運(yùn)算時(shí)有個(gè)有趣的特性:在不需要求值的時(shí)候不進(jìn)行操作露乏。舉個(gè)例子,表達(dá)式 x and y
涂邀,需要 x 和 y 兩個(gè)變量同時(shí)為True的時(shí)候施无,結(jié)果才為真。因此必孤,如果當(dāng) x 變量得知是False的時(shí)候,表達(dá)式就會(huì)立刻返回False,而不用去管 y 變量的值敷搪。 這種行為被稱為短路邏輯(short-circuit logic)或者惰性求值(lazy evaluation)兴想。同樣對(duì)于x or y
,只要x為True赡勘,則直接返回True嫂便,而不去判斷y的值。
事實(shí)上闸与,Python處理x and y
的方法是:若x為假毙替,則返回x的值;若x為真践樱,則返回y的值厂画。并且對(duì)Python而言,任何非零數(shù)都是True拷邢。例如
>>> not 1 or 0 and 1 or True and 4 or 5 and True or 7 and 8 and 9
4
分析一下應(yīng)該是
not 1 or 0 and 1 or True and 4 or 5 and True or 7 and 8 and 9
(not 1) or (0 and 1) or (True and 4) or (5 and True) or (7 and 8 and 9)
== 0 or 0 or 4 or True or 9
== 4
3.循環(huán)
寫在前面
Python的循環(huán)中最應(yīng)該注意的是冒號(hào)和縮進(jìn)袱院,通過縮進(jìn)的方式強(qiáng)制將代碼分塊。這樣可以有效避免諸如“懸掛else”的問題瞭稼。
if x == 0:
if y == 0:
print('嘻嘻嘻');
else:
print('哈哈哈')
else
與第一個(gè)if
并列
for循環(huán)
if循環(huán)與while循環(huán)與其他語(yǔ)言差不多忽洛,所以不在贅述,注意elseif在Python中寫作elif
环肘。
for循環(huán)的調(diào)用格式為for (item) in (iterable)
欲虚,其中iterable可以是數(shù)組、列表甚至是字符串(好神奇●0●)悔雹。常用的構(gòu)造數(shù)組的函數(shù)是range([start=0,]stop[,step=1])
复哆。
Python一個(gè)很大的一個(gè)特點(diǎn)是索引值(index)全部是從0開始,range()函數(shù)也同樣荠商,默認(rèn)從0開始寂恬,并且不包含‘stop’的值。例如range(3)返回0,1,2莱没,range(1,4)返回1,2,3初肉,range(1,6,2)返回1,3,5,這也說明了step是不必整除stop-start的饰躲,這比MATLAB好用多了牙咏!
>>> name='單嘉偉'
>>> for i in name:
print(i,end='^o^')
單^o^嘉^o^偉^o^
>>> for i in range(5):
print(i**2 , end=' ')
0 1 4 9 16
三元操作符
if x < y:
small = x
else:
small = y
可以寫作
small = x if x < y else y
break與continue
break 語(yǔ)句的作用是終止當(dāng)前循環(huán),跳出循環(huán)體嘹裂。 (break只能跳出一層循環(huán))
continue 語(yǔ)句的作用是終止本輪循環(huán)并開始下一輪循環(huán)(在開始下一輪循環(huán)之前會(huì)先測(cè)試循環(huán)條件)妄壶。
for i in range(10):
if i%2 != 0:
print(i)
continue
i += 2
print(i)
結(jié)果為 2 1 4 3 6 5 8 7 10 9
今天就寫到這吧,能看到這句話的估計(jì)都是真愛了寄狼,比心~