-
列表的定義也是通過中括號
[]
來定義的,但這和通過索引訪問列表里面的元素并不沖突。列表和字符串一樣,也支持切片,通過切片的方式,獲取到列表的子列表。如果我們越界切片的話,不會出現Python運行錯誤,但是按照這樣的下標去切片,獲取不到任何元素。
查看全部 -
注意,如果替換一個不存在的下標,則同樣會引起Python運行錯誤。
L?=?['Alice',?'Bob',?'Candy',?'David',?'Ellena'] L[6]?=?'Canlina' Traceback?(most?recent?call?last): ??File?"<stdin>",?line?1,?in?<module> IndexError:?list?assignment?index?out?of?range
查看全部 -
這個時候我們可以使用列表的pop()方法,pop()方法默認刪除列表的最后一個元素,并返回。
L?=?['Alice',?'Bob',?'Candy',?'David',?'Ellena'] name?=?L.pop() print(name)?#?==>?Ellena print(L)?#?==>?L?=?['Alice',?'Bob',?'Candy',?'David']
pop()方法,除了可以刪除最后一個元素以外,pop()還可以接收一個參數,指定需要刪除的元素的位置。
L?=?['Alice',?'Bob',?'Candy',?'David',?'Ellena'] name?=?L.pop(2) print(name)?#?==>?Candy print(L)?#?==>?['Alice',?'Bob',?'David',?'Ellena']
查看全部 -
names?=?['Alice',?'Bob',?'David',?'Ellena'] names.append('Candy') print(names)?#?==>?['Alice',?'Bob',?'David',?'Ellena',?'Candy']
注意,
append()
方法總是將元素添加到list的尾部。?
如果上面的列表需要按照首字母排序的話,那么Candy應該是排在第三的位置的,這怎么辦呢?
這就需要使用list的insert()
方法,insert()方法和append()方法不一樣,insert()方法需要兩個參數,分別是需要插入的位置,以及需要插入的元素。names = ['Alice', 'Bob', 'David', 'Ellena']
names.insert(2, 'Candy')
print(names) # ==> ['Alice', 'Bob', 'Candy', 'David', 'Ellena']查看全部 -
Python的列表,除了支持正向順序索引獲取列表中的每一個元素以外,也支持倒序訪問list中的每一個元素。
names?=?['Alice',?'Bob',?'David',?'Ellena']
對于names列表,
Ellena
的名字排在最后,也就是我們所說的倒數第一個,在Python中,可以使用-1
來表示最后一個元素。names?=?['Alice',?'Bob',?'David',?'Ellena'] print(names[-1])?#?==>?Ellena
同樣的道理,我們可以通過
-2
,打印出David
的名字,通過-3
,打印出Bob
的位置。查看全部 -
回顧一下前面學習的,我們通過中括號
[]
來按位置訪問對應的元素。
注意,這里要注意區分,列表的定義也是通過中括號[]
來定義的,但這和通過索引訪問列表里面的元素并不沖突names?=?['Alice',?'Bob',?'David',?'Ellena'] print(names[0]) print(names[1]) print(names[2]) print(names[3])
查看全部 -
列表(list)是一種有序的容器,放入list中的元素,將會按照一定順序排列。構造list的方法非常簡單,使用中括號
[]
把需要放在容器里面的元素括起來,就定義了一個列表。
比如列出所有同學們的成績:scores?=?[45,?60,?75,?86,?49,?100]
查看全部 -
就像多層if-else嵌套一樣,python的循環也支持嵌套。
我們使用兩層嵌套循環輸出字符串'ABC'中每個字符和字符串'123'每個字符的排列。s1?=?'ABC' s2?=?'123' for?x?in?s1: ????for?y?in?s2: ????????print(x?+?y)
查看全部 -
這個時候for循環就可以派上用場了。
s?=?'ABCD' for?ch?in?s: ????print(ch)?#?注意縮進
在上述代碼中,
ch
是在for循環中定義的,意思是把字符串s
中的每一個元素依次賦值給ch,然后再把ch打印出來,直到打印出字符串s的最后一個字符為止。查看全部 -
我們可以使用if-elif-else語句來簡化以上的邏輯。其中elif就是else if的意思。
score?=?59 if?score?<?60: ????print('抱歉,考試不及格') elif?score?>=?90: ????print('恭喜你,拿到卓越的成績') elif?score?>=?80: ????print('恭喜你,拿到優秀的成績') else: ????print('恭喜你,考試及格')
這樣,我們就可以寫出代碼結構非常清晰的一系列條件判斷了。
查看全部 -
可以看到
print('抱歉,考試不及格')
這行代碼明顯比上一行代碼縮進了,這是因為這行代碼是if判斷的一個子分支,因此需要縮進,在Python規范中,一般使用4個空格作為縮進在if語句的最后,有一個冒號
:
,這是條件分支判斷的格式,在最后加入冒號:
,表示接下來是分支代碼塊
查看全部 -
# Enter a code
L = [75, 92, 59, 68, 99]
sum = 0.0
for ch in L:
? ? sum = sum + ch
? ? print(sum/5)
print(sum/5)
不縮進的print是循環結束之后的打印,只有一次;縮進的print是每一次循環都打印一次。
查看全部 -
3-9;Python的字符串切片
s = 'ABCDEFGHIJK'
abcd = s[0:4] # 取字符串s中的第一個字符到第五個字符,不包括第五個字符
print(abcd) # ==> ABCD
cdef = s[2:6] # 取字符串s中的第三個字符到第七個字符,不包括第七個字符
print(cdef) # ==> CDEF查看全部 -
Python的字符串format
# 指定順序 template = 'Hello {0}, Hello {1}, Hello {2}, Hello {3}.'
result = template.format('World', 'China', 'Beijing', 'imooc') print(result) # ==> Hello World, Hello China, Hello Beijing, Hello imooc.
# 調整順序 template = 'Hello {3}, Hello {2}, Hello {1}, Hello {0}.'
result = template.format('World', 'China', 'Beijing', 'imooc')
print(result) # ==> Hello imooc, Hello Beijing, Hello China, Hello World.
查看全部 -
如果要表示多行字符串,可以用
'''...'''
表示'''Python is created by "Guido". It is free and easy to learn. Let's start learn Python in imooc!'''
查看全部
舉報