python-10.菜鳥教程-1

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!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章