Python3 編程第一步
在前面的教程中我們已經學習了一些 Python3 的基本語法知識,下面我們嘗試來寫一個斐波納契數列
# Fibonacci series: 斐波納契數列
# 兩個元素的總和確定了下一個數
a, b = 0, 1
while b < 10:
print(b)
a, b = b, a + b
'''
這個例子介紹了幾個新特徵。
第一行包含了一個複合賦值:變量 a 和 b 同時得到新值 0 和 1。最後一行再次使用了同樣的方法,可以看到,右邊的表達式會在賦值變動之前執行。右邊表達式的執行順序是從左往右的。
'''
print("-------------------------------------------------------------------------------")
# 關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾添加不同的字符
# Fibonacci series: 斐波納契數列
# 兩個元素的總和確定了下一個數
a, b = 0, 1
while b < 1000:
print(b, end=',') # 關鍵字end可以用於將結果輸出到同一行,或者在輸出的末尾添加不同的字符
a, b = b, a+b
執行以上程序,輸出結果爲:
1
1
2
3
5
8
-------------------------------------------------------------------------------
1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,
Python3 條件控制
Python 條件語句是通過一條或多條語句的執行結果(True 或者 False)來決定執行的代碼塊。
可以通過下圖來簡單瞭解條件語句的執行過程:
代碼執行過程:
if 語句
Python中if語句的一般形式如下所示:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
- 如果 "condition_1" 爲 True 將執行 "statement_block_1" 塊語句
- 如果 "condition_1" 爲 False,將判斷 "condition_2"
- 如果 "condition_2" 爲 True 將執行 "statement_block_2" 塊語句
- 如果 "condition_2" 爲 False,將執行"statement_block_3"塊語句
Python 中用 elif 代替了 else if,所以if語句的關鍵字爲:if – elif – else。
注意:
- 1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。
- 2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。
- 3、在Python中沒有switch – case語句。
Gif 演示:
實例
var1 = 100
if var1:
print("1 - if 表達式條件爲 true")
print(var1)
var2 = 0
if var2:
print("2 - if 表達式條件爲 true")
print(var2)
print("Good bye!")
執行以上代碼,輸出結果爲:
1 - if 表達式條件爲 true
100
Good bye!
從結果可以看到由於變量 var2 爲 0,所以對應的 if 內的語句沒有執行。
以下實例演示了狗的年齡計算判斷:
age = int(input("請輸入你家狗狗的年齡: "))
if age <= 0:
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 鍵退出
cmd命令下執行情況如下所示
以下爲if中常用的操作運算符:
操作符 | 描述 |
---|---|
< |
小於 |
<= |
小於或等於 |
> |
大於 |
>= |
大於或等於 |
== |
等於,比較兩個值是否相等 |
!= |
不等於 |
實例
# 程序演示了 == 操作符
# 使用數字
print(5 == 6)
# 使用變量
x = 5
y = 8
print(x == y)
以上實例輸出結果:
False
False
high_low.py文件演示了數字的比較運算:
# 該實例演示了數字猜謎遊戲
number = 7
guess = -1
print("數字猜謎遊戲!")
while guess != number:
guess = int(input("請輸入你猜的數字:"))
if guess == number:
print("恭喜,你猜對了!")
elif guess < number:
print("猜的數字小了...")
elif guess > number:
print("猜的數字大了...")
執行以上腳本,實例輸出結果如下:
$ python3 high_low.py
數字猜謎遊戲!
請輸入你猜的數字:1
猜的數字小了...
請輸入你猜的數字:9
猜的數字大了...
請輸入你猜的數字:7
恭喜,你猜對了!
cmd命令下執行情況如下所示
if 嵌套
在嵌套 if 語句中,可以把 if...elif...else 結構放在另外一個 if...elif...else 結構中。
if 表達式1:
語句
if 表達式2:
語句
elif 表達式3:
語句
else:
語句
elif 表達式4:
語句
else:
語句
實例
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
cmd命令下執行情況如下所示
Python3 循環語句
本章節將爲大家介紹 Python 循環語句的使用。
Python 中的循環語句有 for 和 while。
Python 循環語句的控制結構圖如下所示:
while 循環
Python 中 while 語句的一般形式:
while 判斷條件(condition):
執行語句(statements)……
執行流程圖如下:
執行 Gif 演示:
同樣需要注意冒號和縮進。另外,在 Python 中沒有 do..while 循環。
以下實例使用了 while 來計算 1 到 100 的總和:
n = 100
summary = 0
counter = 1
while counter <= n:
summary = summary + counter
counter += 1
print("1 到 %d 之和爲: %d" % (n, summary))
執行結果如下:
1 到 100 之和爲: 5050
無限循環
我們可以通過設置條件表達式永遠不爲 false 來實現無限循環,實例如下:
var = 1
while var == 1: # 表達式永遠爲 true
num = int(input("輸入一個數字 :"))
print("你輸入的數字是: ", num)
print("Good bye!")
執行以上腳本,輸出結果如下:
輸入一個數字 :5
你輸入的數字是: 5
輸入一個數字 :
你可以使用 CTRL+C 來退出當前的無限循環。
無限循環在服務器上客戶端的實時請求非常有用。
while 循環使用 else 語句
在 while … else 在條件語句爲 false 時執行 else 的語句塊。
語法格式如下:
while <expr>:
<statement(s)>
else:
<additional_statement(s)>
循環輸出數字,並判斷大小:
count = 0
while count < 5:
print(count, " 小於 5")
count = count + 1
else:
print(count, " 大於或等於 5")
執行以上腳本,輸出結果如下:
0 小於 5
1 小於 5
2 小於 5
3 小於 5
4 小於 5
5 大於或等於 5
簡單語句組
類似if語句的語法,如果你的while循環體中只有一條語句,你可以將該語句與while寫在同一行中, 如下所示:
flag = 1
while flag: print('歡迎訪問菜鳥教程!')
print("Good bye!")
注意:以上的無限循環你可以使用 CTRL+C 來中斷循環。
執行以上腳本,輸出結果如下:
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
歡迎訪問菜鳥教程!
for 語句
Python for循環可以遍歷任何序列的項目,如一個列表或者一個字符串。
for循環的一般格式如下:
for <variable> in <sequence>:
<statements>
else:
<statements>
流程圖:
Python for 循環實例:
languages = ["C", "C++", "Perl", "Python"]
for x in languages:
print(x)
C
C++
Perl
Python
以下 for 實例中使用了 break 語句,break 語句用於跳出當前循環體:
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(5):
print(i)
0
1
2
3
4
你也可以使用range指定區間的值:
for i in range(5, 9):
print(i)
5
6
7
8
也可以使range以指定數字開始並指定不同的增量(甚至可以是負數,有時這也叫做'步長'):
for i in range(0, 10, 3):
print(i)
0
3
6
9
負數:
for i in range(-10, -100, -30):
print(i)
-10
-40
-70
您可以結合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
還可以使用range()函數來創建一個列表
list(range(5))
break 和 continue 語句及循環中的 else 子句
break 執行流程圖:
continue 執行流程圖:
代碼執行過程:
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
循環結束。
更多實例如下:
for letter in 'Runoob': # 第一個實例
if letter == 'b':
break
print('當前字母爲 :', letter)
var = 10 # 第二個實例
while var > 0:
print('當期變量值爲 :', var)
var = var - 1
if var == 5:
break
print("Good bye!")
執行以上腳本輸出結果爲:
當前字母爲 : R
當前字母爲 : u
當前字母爲 : n
當前字母爲 : o
當前字母爲 : o
當期變量值爲 : 10
當期變量值爲 : 9
當期變量值爲 : 8
當期變量值爲 : 7
當期變量值爲 : 6
Good bye!
以下實例循環字符串 Runoob,碰到字母 o 跳過輸出:
for letter in 'Runoob': # 第一個實例
if letter == 'o': # 字母爲 o 時跳過輸出
continue
print('當前字母 :', letter)
var = 10 # 第二個實例
while var > 0:
var = var - 1
if var == 5: # 變量爲 5 時跳過輸出
continue
print('當前變量值 :', var)
print("Good bye!")
執行以上腳本輸出結果爲:
當前字母 : R
當前字母 : u
當前字母 : n
當前字母 : b
當前變量值 : 9
當前變量值 : 8
當前變量值 : 7
當前變量值 : 6
當前變量值 : 4
當前變量值 : 3
當前變量值 : 2
當前變量值 : 1
當前變量值 : 0
Good bye!
循環語句可以有 else 子句,它在窮盡列表(以for循環)或條件變爲 false (以while循環)導致循環終止時被執行,但循環被 break 終止時不執行。
如下實例用於查詢質數的循環例子:
for n in range(2, 10):
for x in range(2, n):
if n % x == 0:
print(n, '等於', x, '*', n // x)
break
else:
# 循環中沒有找到元素
print(n, ' 是質數')
執行以上腳本輸出結果爲:
2 是質數
3 是質數
4 等於 2 * 2
5 是質數
6 等於 2 * 3
7 是質數
8 等於 2 * 4
9 等於 3 * 3
pass 語句
Python pass是空語句,是爲了保持程序結構的完整性。
pass 不做任何事情,一般用做佔位語句,如下實例
>>>while True:
... pass # 等待鍵盤中斷 (Ctrl+C)
以下實例在字母爲 o 時 執行 pass 語句塊:
for letter in 'Random':
if letter == 'o':
pass
print('執行 pass 塊')
print('當前字母 :', letter)
print("Good bye!")
當前字母 : R
當前字母 : a
當前字母 : n
當前字母 : d
執行 pass 塊
當前字母 : o
當前字母 : m
Good bye!