python中的條件分支和循環控制語句

條件分支

if 語句

Python中if語句的一般形式如下所示:

if condition_1:
    statement_block_1
elif condition_2:
    statement_block_2
else:
    statement_block_3

 Python 中用 elif 代替了 else if,所以if語句的關鍵字爲:if – elif – else

注意:

  • 1、每個條件後面要使用冒號 :,表示接下來是滿足條件後要執行的語句塊。
  • 2、使用縮進來劃分語句塊,相同縮進數的語句在一起組成一個語句塊。
  • 3、在Python中沒有switch – case語句。

 以下爲if中常用的操作運算符:

操作符 描述
< 小於
<= 小於或等於
> 大於
>= 大於或等於
== 等於,比較兩個值是否相等
!= 不等於
age = int(input('請輸入你家狗的年齡:'))
if age <= 0:
    print('你是在逗我吧!')
elif age == 1:
    print('相當於14歲的人!')
elif age == 2:
    print('相當於22歲的人!')
else:
    human = 22 + (age - 2)* 5
    print('對應人類年齡:', human)

 

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整除!')
else:
    if num %3 == 0:
        print('輸入的數字只能被3整除!')
    else:
        print('輸入的數字不能被2和3整除!')

循環控制

Python 中的循環語句有 for 和 while。

while 循環

Python 中 while 語句的一般形式:

while 判斷條件(condition):
    執行語句(statements)……

同樣需要注意冒號和縮進。另外,在 Python 中沒有 do..while 循環

以下實例使用了 while 來計算 1 到 100 的總和:

>>> sum = 0
>>> counter = 1
>>> while counter  <= 100:
	sum = sum + counter
	counter = counter + 1

	
>>> sum
5050

無限循環

我們可以通過設置條件表達式永遠不爲 false 來實現無限循環,實例如下:

while var == 1 :  # 表達式永遠爲 true
   num = int(input("輸入一個數字  :"))
   print ("你輸入的數字是: ", num)

 你可以使用 CTRL+C 來退出當前的無限循環。無限循環在服務器上客戶端的實時請求非常有用。

while 循環使用 else 語句

在 while … else 在條件語句爲 false 時執行 else 的語句塊。

語法格式如下:

while <expr>:
    <statement(s)>
else:
    <additional_statement(s)>
num = int(input ('請輸入一個正整數:'))
sum1 = 0
counter = 1
while counter <= num:
    sum1 = sum1 + counter
    counter = counter + 1
else:
    print('1+....+%d的和爲:%d' %(num, sum1))

for 語句

Python for循環可以遍歷任何序列的項目,如一個列表或者一個字符串,也可以是一個文件

for循環的一般格式如下:

for <variable> in <sequence>:
    <statements>
else:
    <statements>
>>> for i in range(5, 10):
	print(i)

	
5
6
7
8
9
>>> a = ['taobao', '亞馬遜', '京東', 'pdd', '噹噹']
>>> a = ['taobao', '亞馬遜', '京東', 'pdd', '噹噹']
>>> for i in a:
	print(i)

	
taobao
亞馬遜
京東
pdd
噹噹

break 和 continue 語句

break和continue的作用於其他語言相同,分別是終止循環和跳出本次循環

>>> a = ['taobao', '亞馬遜', '京東', 'pdd', '噹噹']
>>> for i in a:
	if i == 'pdd':
		continue
	print(i)

	
taobao
亞馬遜
京東
噹噹
>>> for i in a:
	if i == 'pdd':
		break
	print(i)

	
taobao
亞馬遜
京東

循環語句可以有 else 子句,它在窮盡列表(以for循環)或條件變爲 false (以while循環)導致循環終止時被執行,但循環被 break 終止時不執行

#尋找一定範圍內的素數

for n in range (5, 13):
    for x in range (2, n):
        if n % x == 0:
            print(str(n) +'等於'+ str(x) +'*' + str(n // x))
            break #跳出內層循環
    else:
        print(str(n) +'是素數')

pass 語句

Python pass是空語句,是爲了保持程序結構的完整性。pass 不做任何事情,一般用做佔位語句,如下實例:

for cet in 'runoob':
    if cet == 'o':
        pass
        print('執行pass塊')
    print('當前字母:', cet)

 

if a>1:
    pass #如果沒有內容,可以先寫pass,但是如果不寫pass,就會語法錯誤;pass只是爲了防止語法錯誤

筆記

if None:
    print(“Hello”)

 以上代碼輸出的結果是:沒有任何輸出!

 與C不同,在python中是沒有NULL,但存在相近意義的None。None表示空值,它是一個特殊 Python 對象, None的類型是NoneType

None在 Python 解釋器啓動時自動創建, 解釋器退出時銷燬。
在一個解釋器進程中只有一個 None 存在, 因爲不可能有其他對象會使用 None 已佔用的內存(它就是佔了個坑)
所以只有: None is None and None == None

  • None不支持任何運算也沒有任何內建方法
  • None和任何其他的數據類型比較永遠返回False
  • None有自己的數據類型NoneType,不能創建其他NoneType對象(它只有一個值None)
  • None與0、空列表、空字符串不一樣
>>> None == 0
False
>>> None == ' '
False
>>> None == None
True
>>> None == False
False
  • 可以將None賦值給任何變量,也可以給None值變量賦值
  • None是沒有像len,size等屬性的,要判斷一個變量是否爲None,直接使用
>>> a = None
>>> a == None
True

 結合is和== 說明None和空列表、空字符串的區別

用指針來說
is: 指向同一內存地址
==: 指向的內存地址中的內容是相同的

a = list()
b = []
print a == b # True
print a is b # False

c = "abc"
d = "abc"
print c == d # True 字符串池
print c is d # True

 此時爲 list() 和 [] 相當於各自分配了一次內存,所以 a is not b,但是 各自分配的內存中的內容是一樣的,故而 a == b

c 和 d 指向同一個內存地址(字符串池、引用計數機等機制)所以 c is d,c 和 d 指向的內存中存的內容也是相同的("abc"),所以 c == d。

而 None,可以認爲是內存中不同於其他的一塊內存空間,a b c d 都有各自的指向,所以不是指向 None,故而 a b c d is not None,且None是唯一的,自然 a b c d != None

 

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