a = 10 b = 20 if a <= b: … smaller = a … else: … smaller = b … smaller 10
# 將上面的判斷改寫為條件表達式(也叫三元運算符)
s = a if a <= b else b s 10 ```
擴展if語句:多分支語句,滿足某一條件就執行相應的語句塊,其他條件不再判斷。多分支只會執行一個分支。
隨機數模塊
>>> import random
# random.choice從給定的列表中隨機選一項
>>> random.choice('abcdef')
'a'
>>> random.choice('abcdef')
'c'
>>> random.choice(['aaa', 'bb', 'cccc', 'ddd'])
'bb'
>>> random.choice(['aaa', 'bb', 'cccc', 'ddd'])
'ddd'
>>> random.choice(['aaa', 'bb', 'cccc', 'ddd'])
'ddd'
python中循環分為while循環和for循環,當循環次數未知時,使用while循環,循環次數已知,使用for循環。
while 循環條件:
循環體內代碼組
循環條件為真的時候,執行循環體內代碼組。條件為真的情況和if判斷一樣。
循環的else語句:當循環被break,else語句不執行,否則執行
用於生成整數。
>>> range(10) # 生成range對象
range(0, 10)
>>> list(range(10)) # 轉換成列表,只用於查看range能生成的數字
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for i in range(10):
... print(i)
>>> list(range(1, 11))
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> list(range(1, 11, 2))
[1, 3, 5, 7, 9]
>>> list(range(10, 0, -1))
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
便捷的快速生成列表的方法
>>> [10]
[10]
>>> [10 + 2] # 表達式計算結果放到列表
[12]
>>> [10 + 2 for i in range(5)] # 循環決定表達式計算幾次
[12, 12, 12, 12, 12]
>>> [10 + i for i in range(1, 11)] # 表達式可以用循環的變量
[11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
>>> [10 + i for i in range(1, 11) if i % 2 == 1] # 判斷條件為真才保留計算結果
[11, 13, 15, 17, 19]
# 等價於以下代碼:
>>> nums = []
>>> for i in range(1, 11):
... if i % 2 == 1:
... nums.append(10 + i)
...
>>> nums
[11, 13, 15, 17, 19]
通過列表解析生成192.168.1.0/24網段的所有IP地址:
>>> ['192.168.1.%s' % i for i in range(1, 255)]