序列中的所有元素都是有編號的,就像讀書一樣,每個(gè)讀書的學(xué)生都有學(xué)號。編號從0開始遞增。序列中所有的元素都可以通過編號訪問,這個(gè)編號被稱為"索引"。
成都創(chuàng)新互聯(lián)公司專業(yè)網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì),集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文發(fā)稿等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計(jì)制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
[例 4.4] 訪問并輸出序列names中的第1個(gè)和第3個(gè)元素。
names = ['小黑','小白','小紅']
print(names[0]) #運(yùn)行結(jié)果:小黑
print(names[2]) #運(yùn)行結(jié)果:小紅
輸出結(jié)果:
小黑
小紅
在上面的代碼中,通過索引0和索引2,分別獲取了names序列中的第1個(gè)和第3個(gè)元素值。Python語言中的字符串也可以通過索引獲取特定的字符。
s = "Hello World"
print(s[0]) #運(yùn)行結(jié)果:H
print(s[2]) #運(yùn)行結(jié)果:l
print("Apple"[2]) #運(yùn)行結(jié)果:p
輸出結(jié)果:
H
l
p
上面的代碼中,通過索引0和索引2,分別獲取了字符串s中的第1個(gè)和第3個(gè)字符。然后通過索引2獲取了字符串Apple的第3個(gè)字符。
通過input輸入的字符串也可以通過索引引用其中的某個(gè)字符。
[例 4.6] 輸入一個(gè)年份,如果只對年份的最后一個(gè)字符感興趣,獲取使用索引截取年份的最后一位數(shù)字。
fourth = input('請輸入年份:')[3]
print(fourth)
輸出結(jié)果:
請輸入年份:2019
9
如果索引是0或正整數(shù),那么Python語言會(huì)從序列左側(cè)第1個(gè)元素開始取值,如果索引是負(fù)數(shù),那么Python語言會(huì)從序列右側(cè)第1個(gè)元素開始取值。序列最后一個(gè)元素的索引是-1,倒數(shù)第2個(gè)元素的索引是-2,以此類推。
[例 4.7] 通過索引獲取names序列中的第1個(gè)元素值,以及通過負(fù)數(shù)索引獲取names序列中倒數(shù)第1個(gè)和倒數(shù)第2個(gè)元素值。
names = ['小黑','小白','小紅']
print(names[0])
print(names[-1])
print(names[-2])
輸出結(jié)果:
小黑
小紅
小白
當(dāng)索引超過序列的索引范圍時(shí),會(huì)拋出異常。
[例 4.8] 使用索引4和-4引用names序列中的元素值,這兩個(gè)索引都超出了names序列的索引范圍,所以會(huì)拋出異常。不過當(dāng)?shù)?個(gè)異常拋出時(shí),后面的語句都不會(huì)執(zhí)行了。
names = ['小黑','小白','小紅']
print(names[4]) #超出索引序列范圍,將導(dǎo)致拋出異常
print(names[-4]) #超出索引序列范圍,將導(dǎo)致拋出異常
在上面代碼中,無論是索引4,還是索引-4,都超過了names序列索引的范圍,所以拋出異常。
[例 4.9] 本例要求輸入年、月、日,并將月轉(zhuǎn)換為中文輸出,如輸入的月份是4,要求輸出"4月"。
months = [
'一月','二月','三月','四月','五月','六月',
'七月','八月','九月','十月','十一月','十二月']
year = input("年:") #輸入年
month = input("月(1-12):") #輸入月
day = input("日(1-31):") #輸入日
monthNumber = int(month) #將輸入的字符串格式轉(zhuǎn)換為數(shù)值型
monthName = months[monthNumber - 1] #從序列中獲取中文的月份
print(year + '年' + monthName + '' + day + '日') #按指定格式輸入年月日
輸出結(jié)果:
年:2019
月(1-12):5
日(1-31):21
2019年五月21日
上面代碼中,通過months變量名創(chuàng)建一個(gè)序列,通過year變量名保存用戶輸入的年份,通過month變量名保存用戶輸入的月份,通過day變量名保存用戶輸入的日。然后把保存在month變量中月份的值轉(zhuǎn)換成數(shù)值型,并變量賦值給monthNumber。然后從months序列中獲取月份。通過monthNumber變量中保存轉(zhuǎn)換后的月份-1,就可以獲得指定格式的字符串格式的月份,最后再按格式輸出年月日。也許很多人不明白為什么monthNumber需要-1?舉個(gè)例子,如果你輸入的月份是10月份,然后通過int類型轉(zhuǎn)換,把字符串類型轉(zhuǎn)換成數(shù)值型。就可以把monthNumber - 1看作是10-1。10-1等于9,那序列第1個(gè)元素從0開始數(shù),第9個(gè)元素就是10,以此類推。如果沒有monthNumber - 1 那么你輸入的月份永遠(yuǎn)比序列中的大1,而且當(dāng)你輸入12的時(shí)候,就會(huì)拋出異常。