第四課 條件語句(if、else和elif) # coding:utf-8 python語言中是已縮進的代碼塊進行界定的 # 條件語句(if、else和elif) ''' if logic_expression: statement1 statement2 statement3 ... ... statementn elif logic_expression: statement1 statement2 ... ... statementn else: statement1 statement2 ... ... statementn otherstatement ''' n = 3 if n == 3: # python 語言中 默認是以4個空格或者1個tab鍵 print("n == 3") print("hello world") # 同屬於一個代碼塊的縮進必須是同樣的 print("------------------") w = 2 if w == 1: print("w ==1") else: #別忘了else後面有個冒號 print("w !=1") print("------------------") n = 5 if n == 3: print("n == 3") print("xyz") elif n == 4: print("n == 4") print("ddd") elif n == 5: print("n == 5") print("xxx") else: print("n != 3") print("abc") name = input("請輸入您的名字:") if name.startswith("B"): #這個表示字符串的前綴,也就是說以B開頭的 這是一個方法 print("名字以B開頭") elif name.startswith("F"): print("名字以F開頭") elif name.startswith("T"): print("名字以T開頭") else: print("名字以其餘字母開頭") 這一部分的代碼用shell來寫 [hadoop@dev-hadoop-test03 majihui_test]$ cat a.sh #!/bin/bash read -t 6 -p "pls input you name:" name if [ $name == "majihui" ];then echo "你的名字:$name" elif [ $name == "mjh" ];then echo "你的名字:$name" else echo "你的名字是其餘" fi [hadoop@dev-hadoop-test03 majihui_test]$ sh a.sh pls input you name:majihui 你的名字:majihui [hadoop@dev-hadoop-test03 majihui_test]$ sh a.sh pls input you name:mjh 你的名字:mjh [hadoop@dev-hadoop-test03 majihui_test]$ sh a.sh pls input you name:sdd 你的名字是其餘 [root@localhost if]# cat ifjiaoben5.sh 【此腳本有bug 沒有去作出判斷是否兩個參數都是正整數】判斷正整數的方法上面有解釋到! #!/bin/bash if [ $1 -lt $2 ];then echo "$1<$2" elif [ $1 -eq $2 ];then echo "$1=$2" else echo "$1>$2" fi [root@localhost if]# sh ifjiaoben5.sh 1 2 1<2 [root@localhost if]# sh ifjiaoben5.sh 2 1 2>1 [root@localhost if]# sh ifjiaoben5.sh 1 1 1=1 --------------------------------------------------------------------- 第五課 if條件語句嵌套代碼塊 如下是老師的代碼 # coding:utf-8 name = input("您叫什麼名字?") if name.startswith("Bill"): if name.endswith("Gates"): print("歡迎Bill Gates先生") elif name.endswith("Clinton"): print("歡迎克林頓先生") else: print("未知姓名") print("hello world") elif name.startswith("李"): if name.endswith("寧"): print("歡迎李寧老師") else: print("未知姓名") else: print("未知姓名") --------------------------- 下面咱們本身寫一個代碼 # coding:utf-8 name = input("請輸入 A B C 三個字母") if name.startswith("A"): #表示以A字母開頭的 if name.endswith("a"): #表示以a字母結尾的 print("您輸入的是Aa") elif name.endswith("b"): print("您輸入的是Ab") else: print("不知道你輸入的什麼鬼") print("hello world") #這個代碼的意思是無論是什麼都會輸出hello world elif name.startswith("李"): if name.endswith("寧"): print("歡迎李寧老師") else: print("未知姓名") else: print("不符合條件的輸入") —————————————————————————————————————————————————————————————————————————————— 第六課 比較運算符 # coding:utf-8 # 比較運算符 ''' x == y x等於y x < y x 小於 y x > y x 大於 y x <= y x 小於等於 y x >= y x 大於等於 y x != y x 不等於 y x is y x和y是同一個對象 x is not y x和y不是同一個對象 是指x y 是由徹底不一樣的2個類建立的 x in y x 是 y容器的成員,y是列表[1,2,3,4],1 in y,10 in y x not in y x 不是y容器的成員 全部的比較運算符的比較以後的值都是boolean類型 ****** shell中 整數二元比較操做符 在[]中使用的比較符 在(())和[[]]中使用的比較符 說明 -eq == equal的縮寫 相等 -ne != not equal 不相等 -gt > 大於 -ge >= 大於等於 -lt < 小於 -le <= 小於等於 ''' print("Hello" == "Hello") #值爲True print("hello" == "Hello") #值爲flase 說明python是嚴格按照字母大小寫的 # print("hello" = "Hello") #只用一個等號 = 的話 直接報錯了 print(10 == 20) #值爲false print("hello" > "Hello") #值爲true 說明小寫字母的h 阿斯克碼值大於 H print("hello" > "hello world") #值爲flase 這個表示首先比較hello前綴是同樣的 那麼就比較程度了 很明顯後面的長度大於前面的長度 list = [1,2,3,4,5] # 此爲列表 print(1 in list) #值爲true print(10 in list) #值爲false print(10 not in list) #值爲true print("--------------------------------") # 把比較運算符運用到咱們的條件語句中 x = 40 y = 30 s1 = "Hello" s2 = "World" if x < y: print("x < y") else: print("x >= y") # or 邏輯或 這個相似於shell總的 || # and 邏輯與 這個相似於shell中的 && shell 中爲: 邏輯操做符 在[]中使用的邏輯操做符 在[[]]中使用的邏輯操做符 說明 -a 【and與】 && 「與」兩端都是真,則爲真 -o 【or或】 || 「或」兩端有一個爲真就爲真 ! ! 「非」相反則爲真 ''' and True and True == True or False or False == False ''' if x < y and s1 < s2: print("知足條件") elif not s1 > s2: print("基本知足條件") else: print("不知足條件")
第七課 斷言(Assertions //斷言從字面上解釋就是 在知足某一個條件以後,整個就斷了 斷言至關於 條件語句 + 拋出異常 # 斷言(assertions) ''' if not condition crash program 若是不知足條件就跑出異常 //主要用到TDD的開發模式上 TDD(Test-driven development) #測試驅動開發 正常的開發模式是 開發完成以後 再進行黑盒 白盒測試 #TDD的這個過程是相反的 我在編寫程序以前 我先把這個塊給規定了 好比說咱們的這個程序涉及到 x y z 好比我這個程序 必需要知足 x > 20 y < 10 z == 50 纔算成功 只要你改了條件,我這個程序就人爲的讓他出錯 x y z x > 20 if x <= 20: 拋出異常 y < 10 z == 50 ''' value = 20 assert value > 10 #這樣的輸出結果爲 真的 可是 在輸出臺 沒有任何的輸出 value = 4 assert value > 10 #他不知足條件了,就會跑出異常 也就是一堆代碼錯誤。 錯誤代碼爲: /Users/majihui/pycharm_work/venv/bin/python /Users/majihui/pycharm_work/test05.py Traceback (most recent call last): File "/Users/majihui/pycharm_work/test05.py", line 2, in <module> assert value > 10 AssertionError Process finished with exit code 1