1. 程式人生 > >[Python 3系列]控制流

[Python 3系列]控制流

控制流

編程的真正力量不僅僅在於運行一條條的指令,就像任務清單那樣。根據表達式求值的結果,程序可以決定下一步的操作。“控制流語句”決定了在什麽條件下執行哪些python語句。


布爾值

雖然整型、浮點型和字符串數據類型有無數種可能的值,但“布爾”數據類型只有兩種值:True和False。在作為python代碼輸入時,布爾值True和False不像字符串,兩邊沒有引號,它們總是以大寫字母開頭。布爾值也可以用在表達式中,並且可以保存在變量中。如果大小寫不正確,或者試圖用True和False作為變量名,python會給出錯誤信息。

>>> abc=True
>>> abc
True
>>> false
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name ‘false‘ is not defined
>>> False
False


比較操作符

比較兩個值,求值為一個布爾值。

整型或浮點型的值永遠不會與字符串相等。

==與=的區別:==用於判斷是否一致,而=用於賦值。

▎常用比較操作符:

== 等於

!= 不等於

< 小於

> 大於

<= 小於等於

>= 大於等於

測試示例:

>>> 40==40
True
>>> 40!=42
True
>>> 40<=42
True
>>> 40>=42
False
>>> 40>=40
True
>>> 40==‘40‘
False
>>> ‘tom‘==‘Tom‘
False
>>> ‘tom‘!=‘Tom‘
True


布爾操作符

and和or操作符總是接受兩個布爾值(或表達式),所以它們被認為是“二元”操作符。

如果兩個布爾值都為True,and操作符就將表達式求值為True,否則求值為false。

只要有一個布爾值為真,or操作符就將表達式求值為True。如果都是False,所求值為False。

和and和or不同,not操作符只作用於一個布爾值(或表達式)。not操作符求值為相反的布爾值。

>>> (4<5) and (5<6)
True
>>> (4>5) or (5>6)
False
>>> (4<5) and (5>6)
False
>>> (4<5) and not (5>6)
True
>>> (4<5) and not not (5>6)
False


控制流語句

控制流語句的開始部分通常是“條件”,接下來是一個代碼塊,稱為“子句”。

1)if...elif...else 判斷

只有if語句為False時,後面的子句才會執行。

一個控制流中可以有有多個elif子句。

[[email protected] test]# cat if.py
a=6
if a<5 :
    print(‘a<5‘)
elif a==5 :
    print(‘a=5‘)
elif a==6 :
    print(‘a=6‘)
else :
    print(‘a>6‘)
[[email protected] test]# python3 if.py
a=6


2)while和for 循環

while和for都可以循環,但for循環相對更簡潔。

while示例:

[[email protected] test]# cat while.py
a=0
while a<5:
    print(‘Hello world.‘)
    a=a+1
[[email protected] test]# python3 while.py
Hello world.
Hello world.
Hello world.
Hello world.
Hello world.

for示例:

[[email protected] test]# cat for.py
for a in range(0,6):
    print(‘Hello world.‘)
[[email protected] test]# python3 for.py
Hello world.
Hello world.
Hello world.
Hello world.
Hello world.


3)break和continue 中斷

當循環時,如果執行遇到break語句,就會馬上退出循環。

[[email protected] test]# cat break.py
a=0
while a<5:
    print(‘Hello world.‘)
    a=a+1
    if a==3:
        break
[[email protected] test]# python3 break.py
Hello world.
Hello world.
Hello world.

當循環時,如果執行遇到continue語句,就會跳回循環開始處,繼續循環。

[[email protected] test]# cat continue.py
a=0
while a<5:
    if a==3:
        a=a+1
        continue
    print(‘Hello world.‘)
    a=a+1
[[email protected] test]# python3 continue.py
Hello world.
Hello world.
Hello world.
Hello world.


4)range()

range()函數可以被傳遞多個參數。上限為3個參數。第一個為變量開始的值,第二個參數是上限(不包含),第三個參數是“步長”。

>>> for i in range(0,15,3):
...     print(i)
...
0
3
6
9
12


終止程序

使用import語句導入模塊,可以使用內建函數。可以直接用import語句,也可以用from import語句。

使用from import語句,調用模塊中的函數時不需要模塊的前綴。

推薦使用import語句,因為完整的名稱讓代碼更可讀。

通過調用sys.exit()函數,可以讓程序終止或退出。因為這個函數在sys模塊中,所以必須先導入sys,才能使用它。

[[email protected] test]# cat sys.py
import sys
a=1
while True:
    print(‘Type exit to exit.‘)
    text=input()
    if text==‘exit‘:
        sys.exit()
    print(str(a)+‘> ‘+text)
    a=a+1
[[email protected] test]# python3 sys.py
Type exit to exit.
hello
1> hello
Type exit to exit.
world
2> world
Type exit to exit.
exit


本文出自 “亂碼時代” 博客,請務必保留此出處http://juispan.blog.51cto.com/943137/1943869

[Python 3系列]控制流