維也納的雨落 2018-08-21 18:52:52 1.條件和條件語句1.1 布爾值用做表達式(如用if語句中的條件)時,下面的值都將被解釋器視為假: False 、 None 、 0 、 " " 、 ( ) 、 [ ] 、 { } 標準值False 和None、各種類型(包括浮點數(shù)、負數(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值 1.2 執(zhí)行if語句內(nèi)容>>> num = 1 >>> if num ==1: >>> print("hello world") if和冒號之間的表達式為真!!!!!!,就執(zhí)行后續(xù)的代碼(即print代碼),如果條件為假,就不執(zhí)行。 注意?。。。。。簯⒁饪s進行,if下面的代碼區(qū)應縮進4個空格,默認table為四個空格,在編寫代碼時空格鍵和table不要混合使用 1.3 else語句else所起的作用為除if(如果)以外,還有其他選擇,else不是單獨的一部分,與if的語句是同一個部分。 >>> num =1 ###直觀一點 >>> if num = 2: >>> print("hello") >>> else: >>> print("hello world") 此代碼的意思是,如果沒有執(zhí)行第一個代碼塊(因為條件為假),將進入第二個代碼塊。 還有一種語句和它們很像,那就是條件表達式 status = "friend" if name.endswith("Jack") else "stranger" 如果為真則,結(jié)果是第一個提供值,如果為假就是第二個值stranger。 1.4 elif要檢查多個條件,可使用elif 即else if的縮寫 >>> num = int(input('Number: ')) >>> if num > 0: >>> print("正整數(shù)") >>> elif num < 0: >>> print("負整數(shù)") >>> else: >>> print("0") 用戶輸入一個數(shù),如果輸入的是大于0的數(shù)則輸出正整數(shù),如果輸入的是小于0的數(shù),那么就輸出負整數(shù),剩下的只有等于0的數(shù)了,所以直接用else。 1.5 比較運算符is: 相同運算符 >>> 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用來檢查兩個對象是否相同(是同一個對象)。 in :成員資格運算符與其它比較運算符一樣,它也可用于條件表達式。 >>> name = input('What is your name?') >>> if 's' in name: >>> print('Yes') >>> else: >>> print('No') 2. while循環(huán)>>> x = 1 >>> while x<=100: >>> print(x) >>> x+=1 以上用while打印1~100的數(shù)字,while和冒號之間的為條件滿足后(如x<=100)才執(zhí)行代碼區(qū)的語句。 3. for循環(huán)可迭代對象是用for循環(huán)進行遍歷的 >>> words = ['What','is','your','name'] >>> for word in words:#word:目標標識符,words:列表 >>> print(word) 或 >>> numbers = [0,1,2,3,4,5,6,7,8,9] >>> for number in numbers: >>> print(number) 迭代(也就是遍歷)特定范圍內(nèi)的數(shù)是一種常見任務 4. 迭代如有兩個列表 >>> names = ['jack','Ammy','Steven','Make'] >>> ages = [1,2,3,4] 如果要打印名字和對應的年齡 >>> for i in range(len(names)): >>> print(names[i],'is',ages[i],'years old') i 是用作循環(huá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ù)量的序列,當序列長度不同時,函數(shù)zip將在最短的序列用完后停止“縫合” >>> list(zip(range(5)),range(10000000000)) > [(0,0),(1,1),(2,2),(3,3),(4,4)] 5. 跳出循環(huán)5.1 break要跳出循環(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)成負數(shù),可讓range往下迭代 5.2 continue結(jié)束當前迭代,并跳到下一次迭代的開頭,意味著跳過循環(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() 其實一條語句就夠了 >>> for x in seq: >>> if not(x or y or z): >>> do_something() >>> do_something_else() >>> do_another_thing() >>> etc() |
|