用做表達(dá)式(如用if語句中的條件)時,下面的值都將被解釋器視為假:
False 、 None 、 0 、 " " 、 ( ) 、 [ ] 、 { }
標(biāo)準(zhǔn)值False 和None、各種類型(包括浮點(diǎn)數(shù)、負(fù)數(shù)等)的數(shù)值0、空序列(如空字符串、空元組和空列表)以及空映射(如空字典)都視為假。而其他各種值都被視為真,包括特殊值True。
其意思值為0(表示假)和1(表示真),True和False不過是0和1的別名。
>>> True
> True
>>> False
> False
>>> True == 1
> True
>>> False ==0
> True
>>> True + False?。?2
> 43
布爾值True和False屬于類型bool,而bool與list、str和tuple一樣,可用來轉(zhuǎn)換其他的值。
>>> bool('jack')
> True
>>> bool(42)
> True
>>> bool('')
> False
>>> bool(0)
> False
Python里自動將值轉(zhuǎn)化成bool值
>>> num = 1
>>> if num ==1:
>>> print("hello world")
if和冒號之間的表達(dá)式為真!!!!!!,就執(zhí)行后續(xù)的代碼(即print代碼),如果條件為假,就不執(zhí)行。
注意?。。。。。簯?yīng)注意縮進(jìn)行,if下面的代碼區(qū)應(yīng)縮進(jìn)4個空格,默認(rèn)table為四個空格,在編寫代碼時空格鍵和table不要混合使用
else所起的作用為除if(如果)以外,還有其他選擇,else不是單獨(dú)的一部分,與if的語句是同一個部分。
>>> num =1 ###直觀一點(diǎn)
>>> if num = 2:
>>> print("hello")
>>> else:
>>> print("hello world")
此代碼的意思是,如果沒有執(zhí)行第一個代碼塊(因?yàn)闂l件為假),將進(jìn)入第二個代碼塊。
還有一種語句和它們很像,那就是條件表達(dá)式
status = "friend" if name.endswith("Jack") else "stranger"
如果為真則,結(jié)果是第一個提供值,如果為假就是第二個值stranger。
要檢查多個條件,可使用elif 即else if的縮寫
>>> num = int(input('Number: '))
>>> if num > 0:
>>> print("正整數(shù)")
>>> elif num < 0:
>>> print("負(fù)整數(shù)")
>>> else:
>>> print("0")
用戶輸入一個數(shù),如果輸入的是大于0的數(shù)則輸出正整數(shù),如果輸入的是小于0的數(shù),那么就輸出負(fù)整數(shù),剩下的只有等于0的數(shù)了,所以直接用else。
is: 相同運(yùn)算符
>>> x = y = [1,2,3]
>>> z = [1,2,3]
>>> x == y
> True
>>>x == z
>True
>>> x is y
> True
>>> x is z
> False
is 檢查兩個元素是否相同(而不是相等)
x,y指向同一個列表而z指向另一個列表雖然相等,但不是同一個對象。
>>> x = [1,2,3]
>>> y = [1,2,3]
>>> x == y
> True
>>> x is y
> False
==用來檢查兩個對象是否相等,而is用來檢查兩個對象是否相同(是同一個對象)。
與其它比較運(yùn)算符一樣,它也可用于條件表達(dá)式。
>>> name = input('What is your name?')
>>> if 's' in name:
>>> print('Yes')
>>> else:
>>> print('No')
>>> x = 1
>>> while x<=100:
>>> print(x)
>>> x+=1
以上用while打印1~100的數(shù)字,while和冒號之間的為條件滿足后(如x<=100)才執(zhí)行代碼區(qū)的語句。
可迭代對象是用for循環(huán)進(jìn)行遍歷的
>>> words = ['What','is','your','name']
>>> for word in words:#word:目標(biāo)標(biāo)識符,words:列表
>>> print(word)
或
>>> numbers = [0,1,2,3,4,5,6,7,8,9]
>>> for number in numbers:
>>> print(number)
迭代(也就是遍歷)特定范圍內(nèi)的數(shù)是一種常見任務(wù)
如有兩個列表
>>> names = ['jack','Ammy','Steven','Make']
>>> ages = [1,2,3,4]
如果要打印名字和對應(yīng)的年齡
>>> for i in range(len(names)):
>>> print(names[i],'is',ages[i],'years old')
i 是用作循環(huán)索引的變量的標(biāo)準(zhǔn)名稱,并行迭代工具是內(nèi)置的zip,將兩個序列“縫合起來”,并返回一個元組組成的序列。返回值是一個適合迭代的對象。
要查看內(nèi)容,是用list轉(zhuǎn)換為列表。
>>> list(zip(names,ages))
>>> [('jack',1),('Ammy',2),('Steven',3),(Make,4)]
“縫合”后,可在循環(huán)列表中將元組解包
>>> for names,ages in zip(names,ages)
>>> print(name ,'is',age,'years old')
zip可以縫合任意數(shù)量的序列,當(dāng)序列長度不同時,函數(shù)zip將在最短的序列用完后停止“縫合”
>>> list(zip(range(5)),range(10000000000))
> [(0,0),(1,1),(2,2),(3,3),(4,4)]
要跳出循環(huán)可以用break
>>> from math import sqrt
>>> for n in range(99,0,-1):
>>> root = sqrt(n)
>>> if root == int(root):
>>> print(n)
>>> break
以上是遍歷從100到1,找到一個可開平方的值,找到以后要跳出
range傳遞了第三個參數(shù)—步數(shù),即序列中相鄰數(shù)的差。通過將步數(shù)調(diào)成負(fù)數(shù),可讓range往下迭代
結(jié)束當(dāng)前迭代,并跳到下一次迭代的開頭,意味著跳過循環(huán)體中余下的語句,但不結(jié)束循環(huán)。
>>> for x in seq:
>>> if x:continue:
>>> if y:continue:
>>> if z:continue:
>>>
>>> do_something()
>>> do_something_else()
>>> do_another_thing()
>>> etc()
其實(shí)一條語句就夠了
>>> for x in seq:
>>> if not(x or y or z):
>>> do_something()
>>> do_something_else()
>>> do_another_thing()
>>> etc()