條件分支
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