其他相關(guān)系列文章:
Python語(yǔ)言基礎(chǔ)學(xué)習(xí)筆記(2)——列表
- 寫在前面:從大半年前學(xué)python語(yǔ)言,接觸python爬蟲開始平痰,看過廖雪峰的教程夫偶,也看過菜鳥教程界睁,圖書館也借過書,淘寶也買過書兵拢。翻斟。。資源和書真的挺多说铃,但在這個(gè)過程中访惜,逐漸發(fā)現(xiàn),網(wǎng)上開源的爬蟲代碼腻扇,在什么都看不懂的情況下债热,依然可以拿來用,可是僅僅對(duì)著改網(wǎng)上開源的代碼幼苛,什么也看不懂窒篱,又有什么意思,所以就開始從頭學(xué)基礎(chǔ)語(yǔ)法舶沿,去年寒假看了一遍墙杯,寫了一堆A4紙,暑假放假前又寫了一堆A4紙括荡,今天把它們都找出來高镐,把各個(gè)階段學(xué)的都匯總貫通一下,整理成文畸冲。
我比較懶嫉髓,寫的滿滿的A4紙筆記又比較多,所以邑闲。算行。∩凰剩看心情看看整理纱意。。鲸阔。
1 變量
關(guān)于變量需要記住的基礎(chǔ)規(guī)則
在python語(yǔ)言的使用過程中偷霉,變量是最基礎(chǔ)的內(nèi)容,也是使用頻繁的褐筛,可以理解為类少,學(xué)習(xí)python首先要明白的就是什么是變量,以及變量該怎么使用渔扎。使用變量硫狞,就必須要遵守它們的一些規(guī)則,如果違反了這些規(guī)則,將引發(fā)報(bào)錯(cuò)残吩,即程序無法繼續(xù)運(yùn)行财忽。
①變量名只能包含字母、數(shù)字泣侮、下劃線即彪。其中,變量名的開頭可以是字母或者是下劃線活尊,但不能是數(shù)字隶校。
②變量名不能包含空格,但可以使用下劃線分割其中的單詞蛹锰。例如:變量名可以是first_name
,last_name
深胳,但不能是first name
,last name
。
③不能將python的關(guān)鍵詞和函數(shù)名作為變量名稱铜犬。例如:初學(xué)者第一步一般都是寫一句print('hello world')
舞终,其中的print
即可以理解為輸出關(guān)鍵詞,它就不可以作為變量名癣猾。
④為圖后續(xù)方便和容易理解敛劝,變量名應(yīng)該設(shè)置的簡(jiǎn)短且具有描述性。例如煎谍,如果需要一個(gè)關(guān)于演員的變量攘蔽,可以將變量命名為actor
龙屉;如果需要一個(gè)關(guān)于電影的變量呐粘,可以將變量命名為movie
;
下面將使用實(shí)際代碼來詳解
示例代碼1
除了print('hello world')
转捕,先來個(gè)最簡(jiǎn)單的作岖。
message = 'hello world'
print(message)
在上述代碼中,輸出的結(jié)果為>>>
hello world
運(yùn)行原理:
-
message
是一個(gè)變量名五芝,首先將'hello world'這個(gè)字符串賦值給message
變量痘儡,然后通過print
輸出打印,print(message)
輸出的即為剛剛賦值給message
變量的內(nèi)容枢步,所以成功輸出了hello world
沉删。
示例代碼2
message = 'hello world'
print(message)
message = 'hello hello world'
print(message)
在上述代碼中,輸出的結(jié)果為>>>
hello world
hello hello world
- 兩次輸出醉途,所以出現(xiàn)了兩行的結(jié)果顯示矾瑰,在結(jié)果中,第一行的結(jié)果是前兩行的運(yùn)行隘擎。而第二行是
message
這個(gè)變量將新的'hello hello world'這個(gè)字符串進(jìn)行了關(guān)聯(lián)殴穴,丟棄了之前所賦值的字符串,所以第二個(gè)print輸出的是最新的hello hello world
。在程序中采幌,python的變量將會(huì)始終記錄最新值
示例代碼3
message = 'hello hello world'
print(messag)
上述代碼輸出結(jié)果為:
Traceback (most recent call last):
File "hello-world.py", line 2, in <module>
print(messag)
NameError: name 'messag' is not defined
- 這是故意寫錯(cuò)的一個(gè)代碼劲够,意為在后續(xù)程序的練習(xí)中,學(xué)會(huì)識(shí)別找出代碼錯(cuò)誤休傍,進(jìn)行修改征绎。
Traceback 為跟蹤反饋,反饋內(nèi)容是尊残,在文件XXX的第二行有問題炒瘸,問題代碼為NameError,即為名字錯(cuò)誤寝衫,錯(cuò)誤內(nèi)容為顷扩,名字messag
沒有被定義(name 'messag' is not defined)。
通常這種沒有被定義慰毅,有兩個(gè)原因隘截,一是名字寫錯(cuò)了,拼寫不正確汹胃,即所賦值的變量名和輸出的變量名不一樣婶芭;二是沒有對(duì)所輸出的變量進(jìn)行賦值。在這里着饥,出現(xiàn)錯(cuò)誤的原因是拼寫錯(cuò)誤犀农。
- 這是故意寫錯(cuò)的一個(gè)代碼劲够,意為在后續(xù)程序的練習(xí)中,學(xué)會(huì)識(shí)別找出代碼錯(cuò)誤休傍,進(jìn)行修改征绎。
2 字符串
字符串就是一系列的字符。在python中呵哨,用引號(hào)括起來的都是字符串,其中轨奄,這個(gè)引號(hào)可以是單引號(hào)孟害,也可以是雙引號(hào)。
‘this is a string.’
"this is also a string."
上述代碼挪拟,用單引號(hào)和雙引號(hào)的挨务,都統(tǒng)稱為字符串。
關(guān)于字符串玉组,有大量需要學(xué)習(xí)的內(nèi)容谎柄,網(wǎng)上有很多相關(guān)的教程,在這里惯雳,只簡(jiǎn)單的講一部分自認(rèn)為會(huì)經(jīng)常用到的朝巫,至于其他知識(shí)點(diǎn),用得到時(shí)再查閱也不遲吨凑。
2.1字符串的運(yùn)算
經(jīng)常用到的字符串運(yùn)算有字符串內(nèi)容的合并捍歪、相乘户辱、合并(涉及2.1切片索引知識(shí))等
假設(shè)下列字符串的賦值
a = 'I'
b = ‘Love’
c = 'hello world!'
上述代碼的意思為:將單引號(hào)內(nèi)的字符串,分別賦值給變量a,b,c糙臼,下列代碼為不同運(yùn)算的輸出代碼庐镐。分別為字符串的合并、相乘变逃、更換(涉及2.1切片索引)
print(a+b+c)
print(b*3)
print(c[:6] + '1234')
上述輸出代碼運(yùn)行結(jié)果分別對(duì)應(yīng)為:
ILovehello world!
LoveLoveLove
hello 1234
- 逐一詳解:在這三行輸出代碼中必逆,
print(a+b+c)
表示的為將a,b,c三個(gè)變量的賦值內(nèi)容,合并在一起輸出揽乱,上述三變量的賦值內(nèi)容分別為'I','Love','hello world!'
,因此輸出為ILovehello world!
名眉,由于在輸出變量中沒有加入空格,所以比較緊湊凰棉,可以用同樣的合并方法损拢,調(diào)整一下輸出表達(dá)式,使輸出結(jié)果更美觀撒犀。即調(diào)整為:(利用合并的方式福压,在變量名之間加入空格)
print(a+‘ ’+b+‘ ’+c)
上述調(diào)整后的輸出結(jié)果為
I Love hello world!
- 細(xì)心者可能發(fā)現(xiàn),在輸出式中或舞,有些時(shí)候需要加引號(hào)荆姆,有些不加引號(hào),原因:如果是變量的名稱映凳,例如a b這種變量名胆筒,輸出時(shí)不需要加引號(hào),只需要
print(變量名)
即可诈豌;而加了引號(hào)的仆救,就是字符串,在print()
中队询,只要加了引號(hào)派桩,那么引號(hào)里的內(nèi)容构诚,就會(huì)原原本本的被輸出蚌斩。
- 細(xì)心者可能發(fā)現(xiàn),在輸出式中或舞,有些時(shí)候需要加引號(hào)荆姆,有些不加引號(hào),原因:如果是變量的名稱映凳,例如a b這種變量名胆筒,輸出時(shí)不需要加引號(hào),只需要
- 接著逐一詳解:
print(b*3)
表示的為將b所賦值的內(nèi)容,復(fù)制3份范嘱,因此輸出的為LoveLoveLove
送膳;而輸出表達(dá)式print(c[:6] + '1234')
,涉及下一小節(jié)的切片和索引丑蛤,表達(dá)的是將變量c的內(nèi)容叠聋,從最后一個(gè)字符往前數(shù)6位的地方開始,接著換成后面合并的‘1234’字符串受裹,因此輸出結(jié)果為hello 1234
碌补。
2.2字符串的切片和索引
字符串的切片用[ : ]
這個(gè)符號(hào)虏束,表示截取字符串中的一部分;而索引用[]
這個(gè)符號(hào)厦章,表示通過索引獲取字符串中字符镇匀。
但在講解這些符號(hào)的使用前,必須先明白python的定位關(guān)系袜啃。
在python字符串的定位上汗侵,首先知道①空格也需要計(jì)入位置,就理解為只要占一個(gè)坑群发,就得算上位置晰韵;②第一個(gè)字母或空格的位置符號(hào)是0,不是1熟妓,是0雪猪,是0,是0起愈。③如果是倒著從后往前數(shù)位置符的話浪蹂,是從1,從1告材,從1開始的坤次。
以下列字符串為例
I Love hello world!
I
是第一個(gè)字母,如果想要把它提取出來斥赋,就需要知道它的位置符缰猴,剛才說了,python字符串的位置是從0開始算的疤剑,因此索引第一個(gè)字符應(yīng)該是[0]
滑绒,而不是[1]
。
將這個(gè)字符串賦值給變量d隘膘,如下:
d = 'I Love hello world!'
分別嘗試按照上述所講疑故,使用切片和索引的方式輸出。
print(d[3])
print(d[8])
print(d[2:6])
輸出結(jié)果為
o
e
Love
- 在使用切片時(shí)弯菊,比如
d[2:6]
纵势,第2位的字符是L
(記住第一位是從0開始數(shù)的),第6位是個(gè)空格管钳。輸出的結(jié)果就是Love
沒有第6位的空格了钦铁,如果是[2:8]
,那么輸出的就是Love h
才漆,在第8位的e
不會(huì)輸出牛曹。可得出結(jié)論:切片結(jié)束的位數(shù)醇滥,不會(huì)輸出黎比。
- 在使用切片時(shí)弯菊,比如
2.3字符串的格式化
關(guān)于字符串的格式化超营,最基本、最常用的用法是將一個(gè)值插入到一個(gè)有字符串格式符 %s 的字符串中阅虫。
例如
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
輸出結(jié)果為:
我叫 小明 今年 10 歲!
其中%s格式化字符串糟描,%d格式化整數(shù),%格式字符串书妻,仔細(xì)看看上面的小例子船响,應(yīng)該能夠看明白這中間發(fā)生了什么,即把在別處的東西躲履,替換到里面的某個(gè)符號(hào)上了见间。
- python字符串格式化符號(hào)有很多,可以從別處了解工猜。
2.4字符串方法
python字符串方法也有很多米诉,這里只簡(jiǎn)單講幾個(gè)。
- 這些沒啥原理可言篷帅,只需要記住這樣用即可史侣,等到需要這種操作時(shí),知道有這種字符串方法魏身,然后去查惊橱,就行了。
2.4.1修改字符串的大小寫
變量名.title():以首字母大寫來顯示單詞
變量名.upper():全部字母大寫
變量名.lower():全部字母變成小寫
例如
name = "zhANG qi yuAN"
print(name.title())
print(name.upper())
print(name.lower())
輸出結(jié)果為
Zhang Qi Yuan
ZHANG QI YUAN
zhang qi yuan
2.4.2去除兩側(cè)空格或內(nèi)容
變量名.strip():去除兩側(cè)的(不包括內(nèi)部的)空格箭昵,也可以指定去除的字符税朴。
例如
e = ' I Love hello world! '
print(e.strip())
輸出結(jié)果為
I Love hello world!
例如
e = '******I Love * hello * world!******'
print(e.strip(‘*’))
輸出結(jié)果為
I Love * hello * world!