Python代碼結構——順序、分支、循環
## 順序結構
- 按照從上到下的順序,一條語句一條語句的執行,是最基本的結構
## 分支結構
if condition:
statement
statement
...
elif condition>:
statement
statement
...
else:
statement
statement
...
- if 語句可以嵌套,但不推薦, 盡量保持代碼簡潔
- Python沒有switch-case語句
x = 10
print(1 < x < 20) # -> True
print(1 < x < 20 < 100) # -> True
- 以下數據將被判定為False:
False、None、0、0.0、""、[]、()、{}、set()
## 循環結構
- 寫循環程序時需要註意循環變量的初值,循環條件和循環變量的增量,三者共稱為循環三要素
- while循環
count = 0 # -> 循環變量
while count < 5: # -> 循環條件
count += 1 # -> 循環變量的增量,對循環變量進行修改
- for叠代
- 在C或者Java等語言中,for循環將循環三要素結合在一行語句中:大概如下:
for(int i = 0; i < 10; i++){循環體}
- 但Python中的for循環相對而言更加簡潔
words = ["and", "or", "not"]
for word in words:
- 列表、元組、字典、集合、字符串都是可以叠代的對象
- 對字典的叠代可以:
a_dict = {"name": "Stanley", "age": "22"}
for k, v in a_dict.items():
print("{0}: {1}".format(k, v))
# -> name: Stanley
age: 22
- 單獨叠代字典的key或者value可以使用字典的keys()或values()函數
- break關鍵字
- 在循環體中使用break關鍵字,整個循環會立刻無條件停止
count = 0
while count < 5:
if count == 2:
break
print(count, end=" ")
count += 1
# -> 0 1
# -> 由於當count等於2時,進入if語句執行了break,所以循環結束,未完成的循環不再執行
- continue關鍵字
- 在循環體中使用continue關鍵字,此次循環無條件體停止,執行之後的循環
for i in range(0, 5):
if i == 2:
continue
print(i, end=" ")
# -> 0 1 3 4
# -> 當i等於2時進入if語句,執行continue,本次循環跳過,進入下一循環
- 與循環一起使用else
for i in range(0, 5):
print(i, end=" ")
else:
print("循環結束")
# -> 0 1 2 3 4 循環結束
- 當循環完全結束後(不被break和cuntinue打斷)執行else中的代碼
- else同樣適用於while循環
- 使用zip()並行叠代
numbers = [1, 2, 3, 4]
words = ["one", "two", "three", "four"]
days = ["Mon.", "Tues.", "Wed.", "Thur."]
for number, word, day in zip(numbers, words, days):
print(number, word, day)
輸出:
1 one Mon.
2 two Tues.
3 three Wed.
4 four Thur.
- zip()函數在長度最小的參數中的元素用完後自動停止,其他參數未使用的元素將被略去,除非手動擴展其他較短的參數長度
- zip()函數的返回值不是列表或元組,而是一個整合在一起的可叠代變量
list(zip(words, days))
# -> [(‘one‘, ‘Mon.‘), (‘two‘, ‘Tues.‘), (‘three‘, ‘Wed.‘), (‘four‘, ‘Thur.‘)]
本文參考書籍:[美]Bill Lubanovic 《Python語言及其應用》
Python代碼結構——順序、分支、循環