#!/usr/bin/python3
# Fibonacci series: 斐波納契數列
# 兩個元素的總和確定了下一個數
a, b = 0, 1
while b < 10:
print(b)
a, b = b, a+b
計算步驟如下:
其中代碼 a, b = b, a+b 的計算方式爲先計算右邊表達式,然後同時賦值給左邊。
關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾添加不同的字符,實例如下:
#!/usr/bin/python3
# Fibonacci series: 斐波納契數列
# 兩個元素的總和確定了下一個數
a, b = 0, 1
while b < 1000:
print(b, end=',')
a, b = b, a+b
執行以上程序,輸出結果爲:
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
if 語句
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- 每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。
- 使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。
- 在Python中沒有switch – case語句。
#!/usr/bin/python3
age = int(input("請輸入你家狗狗的年齡: "))//input爲字符型轉換爲int
print("")
if age <= 0://在python中if語句不需要加小括號
print("你是在逗我吧!")
elif age == 1:
print("相當於 14 歲的人。")
elif age == 2:
print("相當於 22 歲的人。")
elif age > 2:
human = 22 + (age -2)*5
print("對應人類年齡: ", human)
### 退出提示
input("點擊 enter 鍵退出")
將以上腳本保存在dog.py文件中,並執行該腳本:
$ python3 dog.py
請輸入你家狗狗的年齡: 1
相當於 14 歲的人。
點擊 enter 鍵退出
if 嵌套
在嵌套 if 語句中,可以把 if…elif…else 結構放在另外一個 if…elif…else 結構中。
if 表達式1:
語句
if 表達式2:
語句
elif 表達式3:
語句
else:
語句
elif 表達式4:
語句
else:
語句
實例:
# !/usr/bin/python3
num=int(input("輸入一個數字:"))
if num%2==0:
if num%3==0:
print ("你輸入的數字可以整除 2 和 3")
else:
print ("你輸入的數字可以整除 2,但不能整除 3")
else:
if num%3==0:
print ("你輸入的數字可以整除 3,但不能整除 2")
else:
print ("你輸入的數字不能整除 2 和 3")
將以上程序保存到 test_if.py 文件中,執行後輸出結果爲:
$ python3 test.py
輸入一個數字:6
你輸入的數字可以整除 2 和 3
while 循環
while 判斷條件(condition):
執行語句(statements)……
同樣需要注意冒號和縮進。另外,在 Python 中沒有 do…while 循環。
無限循環:我們可以通過設置條件表達式永遠不爲 false 來實現無限循環
while 循環使用 else 語句
在 while … else 在條件語句爲 false 時執行 else 的語句塊。
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
實例爲:
#!/usr/bin/python3
count = 0
while count < 5:
print (count, " 小於 5")
count = count + 1
else:
print (count, " 大於或等於 5")
for 語句
for循環可以遍歷任何序列的項目,如一個列表或者一個字符串。
for <variable> in <sequence>:
<statements>
else:
<statements>
>>>languages = ["C", "C++", "Perl", "Python"]
>>> for x in languages:
... print (x)
...
C
C++
Perl
Python
以下 for 實例中使用了 break 語句,break 語句用於跳出當前循環體:
#!/usr/bin/python3
sites = ["Baidu", "Google","Runoob","Taobao"]
for site in sites:
if site == "Runoob":
print("菜鳥教程!")
break
print("循環數據 " + site)
else:
print("沒有循環數據!")
print("完成循環!")
執行腳本後,在循環到 "Runoob"時會跳出循環體:
循環數據 Baidu
循環數據 Google
菜鳥教程!
完成循環!
range()函數
使range以指定數字開始並指定不同的增量(甚至可以是負數,有時這也叫做’步長’):
>>>for i in range(0, 10, 3) :
print(i)
0
3
6
9
>>>
可以結合range()和len()函數以遍歷一個序列的索引,如下所示:
>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Google
1 Baidu
2 Runoob
3 Taobao
4 QQ
break 和 continue 語句及循環中的 else 子句
break 語句可以跳出 for 和 while 的循環體。如果你從 for 或 while 循環中終止,任何對應的循環 else 塊將不執行
continue 語句被用來告訴 Python 跳過當前循環塊中的剩餘語句,然後繼續進行下一輪循環
while 中使用 break:
n = 5
while n > 0:
n -= 1
if n == 2:
break
print(n)
print('循環結束。')
輸出結果爲:
4
3
循環結束。
while 中使用 continue:
n = 5
while n > 0:
n -= 1
if n == 2:
continue
print(n)
print('循環結束。')
輸出結果爲:
4
3
1
0
循環結束。