目錄blog:https://www.cnblogs.com/Rohn
Tips:本文中代碼均使用
3.8.x版本的Python,部分文字和圖片源自網路,侵刪,
- 關于流程控制
- 布林值
- 比較運算子
- 布爾運算子
- 二元布爾運算子
- not運算子
- 混合布爾和比較運算子
- 控制流的元素
- 條件
- 代碼塊
- if陳述句
- if陳述句
- if-else陳述句
- if-elif-else陳述句
- 練習
- 英制單位英寸與公制單位厘米互換
- 百分制成績轉換為等級制成績,
- while陳述句
- 語法格式
- 練習
- 猜數字游戲
- for陳述句
- 語法格式
- 練習
- 1~100之間的偶數求和
- 輸入一個正整數判斷它是不是素數
- break陳述句
- continue陳述句
關于流程控制
Python 同樣提供了現代編程語言都支持的兩種基本流程控制結構,分支結構和回圈結構:
- 分支結構用于實作根據條件來選擇性地執行某段代碼;
- 回圈結構用于實作根據回圈條件重復執行某段代碼;
Python使用if陳述句提供分支支持,提供了while、for-in回圈,也提供了break和continue控制程式的回圈結構,
在學習流程控制前,需要了解布爾、比較運算子等知識,
布林值
雖然整型、浮點型和字串資料型別有無數種可能的值,但“布爾”資料型別只有兩種值:True和False,Boolean(布爾)的首字母大寫, 因為這個資料型別是根據數學家George Boole命名的,在作為Python代碼輸入時,布林值True和False不像字串,兩邊沒有引號,它們總是以大寫字母T或F開頭, 后面的字母小寫,
例如:
>>> 2==2
True
>>> a=true
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'true' is not defined
>>> a=True
>>> a
True
比較運算子
比較運算子比較兩個值,求值為一個布林值,
以下是運算子及其含義,這些運算子根據給它們提供的值,求值為True或False,
| 運算子 | 含義 |
|---|---|
| == | 等于 |
| != | 不等于 |
| < | 小于 |
| > | 大于 |
| <= | 小于等于 |
| >= | 大于等于 |
Tips:整型或浮點型的值永遠不會與字串相等,
<、>、<=和>=運算子僅用于整型和浮點型值,
例如:
>>> 33 == 33
True
>>> 33 != 33
False
>>> 33 != 34
True
>>> 33 < 34
True
>>> 33 > 34
False
>>> 33 > 32
True
布爾運算子
3 個布爾運算子(and、or和not)用于比較布林值,
二元布爾運算子
and和or運算子總是接受兩個布林值(或運算式),所以它們被認為是二元運算子,如果兩個布林值都為True,and運算子就將運算式求值為True,否則求值
為False,
運算子and的真值表
| 運算式 | 求值為 |
|---|---|
| True and True | True |
| True and False | False |
| False and True | False |
| False and False | False |
or運算子的真值表
| 運算式 | 求值為 |
|---|---|
| True or True | True |
| True or False | True |
| False or True | True |
| False or False | False |
not運算子
not運算子只作用于一個布林值(或運算式),not運算子求值為相反的布林值,
not運算子的真值表
| 運算式 | 求值為 |
|---|---|
| not True | False |
| not False | True |
混合布爾和比較運算子
既然比較運算子求值為布林值,就可以和布爾運算子一起,在運算式中使用,
例如:
>>> (2 < 3) and (22 > 1)
True
>>> (2 > 3) and (22 > 1)
False
>>> (1 == 2) or (3 == 3)
True
Tips:和算術運算子一樣,布爾運算子也有操作順序,在所有算術和比較運算子求值后,Python先求值
not運算子,然后是and運算子,然后是or運算子,
控制流的元素
控制流陳述句的開始部分通常是條件,接下來是一個代碼塊,稱為子句,
條件
你前面看到的布爾運算式可以看成是條件,它和運算式是一回事,條件只是在控制流陳述句的背景關系中更具體的名稱,條件總是求值為一個布林值,True 或False,控制流陳述句根據條件是 True 還是 False,來決定做什么, 幾乎所有的控制流陳述句都使用條件,
代碼塊
一些代碼行可以作為一組, 放在代碼塊 中, 可以根據代碼行的縮進,知道代碼塊的開始和結束,代碼塊有 3 條規則:
- 縮進增加時, 代碼塊開始;
- 代碼塊可以包含其他代碼塊;
- 縮進減少為零,或減少為外面包圍代碼塊的縮進,代碼塊就結束了;
if陳述句
選擇(條件)陳述句可細分為3種形式,分別是if陳述句、if-else陳述句和if-elif-else陳述句,
if陳述句
if 條件運算式:
代碼塊

if-else陳述句
if 運算式:
代碼塊 1
else:
代碼塊 2

if-elif-else陳述句
if 運算式 1:
代碼塊 1
elif 運算式 2:
代碼塊 2
elif 運算式 3:
代碼塊 3
...
else:
代碼塊 n

練習
英制單位英寸與公制單位厘米互換
value = https://www.cnblogs.com/Rohn/p/float(input('請輸入長度: '))
unit = input('請輸入單位: ')
if unit == 'in' or unit == '英寸':
print('%f英寸 = %f厘米' % (value, value * 2.54))
elif unit == 'cm' or unit == '厘米':
print('%f厘米 = %f英寸' % (value, value / 2.54))
else:
print('請輸入有效的單位')
百分制成績轉換為等級制成績,
要求:如果輸入的成績在90分以上(含90分)輸出A;80分-90分(不含90分)輸出B;70分-80分(不含80分)輸出C;60分-70分(不含70分)輸出D;60分以下輸出E,
score = float(input('請輸入成績: '))
if score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('對應的等級是:', grade)
while陳述句
利用while陳述句,可以讓一個代碼塊一遍又一遍的執行,只要while陳述句的條件為True,while子句中的代碼就會執行,在代碼中,while陳述句總是包含下面幾部分:
- 關鍵字;
- 條件(求值為
True或False的運算式); - 冒號;
- 從新行開始,縮進的代碼塊(稱為
while子句),
語法格式
語法格式如下:
while 條件運算式:
代碼塊

在while回圈中,條件總是在每次迭代開始時檢查(也就是每次回圈執行時),如果條件為True, 子句就會執行,然后,再次檢查條件,當條件第一次為False時,while子句就跳過,
例如:
spam = 0
while spam < 5:
print('hello world')
spam += 1
練習
猜數字游戲
import random
answer = random.randint(1, 100)
counter = 0
while True:
counter += 1
number = int(input('請輸入: '))
if number < answer:
print('大一點')
elif number > answer:
print('小一點')
else:
print('恭喜你猜對了!')
break
print('你總共猜了%d次' % counter)
if counter > 7:
print('你的智商余額明顯不足')
for陳述句
在條件為True時,while回圈就會繼續回圈(這是它的名稱的由來),但如果你想讓一個代碼塊執行固定次數,該怎么辦?可以通過for回圈陳述句和range()函式來實作,
常用于遍歷字串、串列、元組、字典、集合等序列型別,逐個獲取序列中的各個元素,
語法格式
語法格式如下:
for 迭代變數 in 字串|串列|元組|字典|集合:
代碼塊
在使用for回圈時,最基本的應用就是進行數值回圈,比如說,想要實作從1到100的累加,可以執行如下代碼:
print("計算 1+2+...+100 的結果為:")
# 保存累加結果的變數
result = 0
# 逐個獲取從 1 到 100 這些值,并做累加操作
for i in range(101):
result += i
print(result)
運行結果如下:
計算 1+2+...+100 的結果為:
5050
Tips:
range(101)可以用來產生0到100范圍的整數,需要注意的是取不到101,
練習
1~100之間的偶數求和
sum = 0
for x in range(2, 101, 2):
sum += x
print(sum) # Returns '2550'
輸入一個正整數判斷它是不是素數
from math import sqrt
num = int(input('請輸入一個正整數: '))
end = int(sqrt(num))
is_prime = True
for x in range(2, end + 1):
if num % x == 0:
is_prime = False
break
if is_prime and num != 1:
print('%d是素數' % num)
else:
print('%d不是素數' % num)
break陳述句
有一個捷徑,讓執行提前跳出while回圈子句,如果執行遇到break陳述句,就會馬上退出while回圈子句,在代碼中,break陳述句僅包含break關鍵字,
break用于完全結束一個回圈,跳出回圈體,不管是哪種回圈,一旦在回圈體中遇到break,系統就將完全結束該回圈,開始執行回圈之后的代碼,
例如:
for i in range(0, 10) :
print("i的值是: ", i)
if i == 2 :
# 執行該陳述句時將結束回圈
break
運行的結果為:
i的值是: 0
i的值是: 1
i的值是: 2
continue陳述句
和break陳述句相比,continue陳述句的作用則沒有那么強大,它只能終止本次回圈而繼續執行下一次回圈,
例如:
for i in range(0, 3 ) :
print("i的值是: ", i)
if i == 1 :
# 忽略本次回圈的剩下陳述句
continue
print("continue后的輸出陳述句")
運行結果如下:
i的值是: 0
continue后的輸出陳述句
i的值是: 1
i的值是: 2
continue后的輸出陳述句
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116847.html
標籤:Python
上一篇:Python:字典
下一篇:10.DRF-認證
