[TOC]
*****
# 4.1 遍歷整個列表
**遍歷列表**
:之后可以包含縮進的多行代碼,代碼塊
```
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician.title() + ", that was a great trick!")
print("I can't wait to see your next trick, " + magician.title() + ".\\n")
```
# 4.2 避免縮進錯誤
Python根據縮進來判斷代碼行與前一個代碼行的關系。在前面的示例中,向各位魔術師顯示消息的代碼行是for循環的一部分,因為它們縮進了

**注意**
for語句末尾不要漏掉冒號
# 4.3 創建數值列表
## 4.3.1 使用函數 range()
range()生成一系列的數字

## 4.3.2 使用 range()創建數字列表
用函數list()將range()的結果轉換為列表
生成1到5的數字列表

**指定生成數字列表的步長**

**兩個星號(**)表示乘方運算**
```
int a = 5;
b = a**2;
# b =25
```
## 4.3.3 對數字列表執行簡單的統計計算
```
digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
min(digits)
max(digits)
sum(digits)
```
## 4.3.4 列表解析
創建數字列表
```
squares = [value**2 for value in range(1,11)]
#結果
#[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
```
# 4.4 使用列表的一部分
切片: 列表的部分元素
## 4.4.1 切片
在到達你指定的第二個索引前面的元素停止,要輸出列表中的前三個元素,需要指定索引0~3
```
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3])
#結果
# ['charles', 'martina', 'michael']
```
沒有指定第一個索引, Python將自動從列表開頭開始:
```
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[:4])
#結果
#['charles', 'martina', 'michael', 'florence']
```
讓切片終止于列表末尾 例如: 從第3個元素到列表末尾的所有元素
```
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[2:])
#結果
#['michael', 'florence', 'eli']
```
負數索引返回離列表末尾相應距離的元素
例如: 返回從倒數第三個元素到列表末尾的所有元素
使用切片players[-3:]
## 4.4.2 用for循環遍歷切片
```
players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
print(player.title())
#Here are the first three players on my team:
#Charles
#Martina
#Michael
```
## 4.4.3 使用切片復制列表
```
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
```
friend_foods 是 my_foods 列表的復制
# 4.5 元組
不可變的列表被稱為元組
## 4.5.1 定義元組
```
dimensions = (200, 50)
print(dimensions[0])
#結果
# 200
```
如果試圖修改元組中的元素,將返回錯誤消息
dimensions[0] = 250
```
Traceback (most recent call last):
File "dimensions.py", line 3, in
dimensions\[0\] = 250
TypeError: 'tuple' object does not support item assignment
```
## 4.5.2 for循環遍歷元組中的所有值
```
dimensions = (200, 50)
for dimension in dimensions:
print(dimension)
```
200
50
## 4.5.3 修改元組變量
```
dimensions = (200, 50)
dimensions = (400, 100)
```
# 4.6 設置代碼格式
PEP 8:請訪問 https://python.org/dev/peps/pep-0008/