Python 3.三大結構(基礎篇)


  三大結構:
-順序-
-分支-
-循環-


-分支-:
1.分支的基本語法
1.if 條件表達式:
2.語句1
3.語句2 等等....
2.條件表達式就是計算結果必須為布爾值的表達式
3.不同於java,python分支表達式使用了冒號來代替大括號
4.注意表達式后面出現的語句,如果屬於同一級別,則必須同一距離縮進
5.條件表達式結果為True執行下面同一級別的語句塊
6.關於條件表達式的運算符是比較運算符(如不知道請去找字符串+變量的文章)
7.if語句可以嵌套使用,但不推薦
8.python沒有switch-case語句,乖乖用if吧


if語句例子
條件:如果age小於18歲,則打印“你還未成年,請去請示你家長”

age = 17
if age < 18:
    print("你還未成年,請去請示你家長")
 
        
結果如下:
你還未成年,請去請示你家長

 


關於if語句級別問題
age = 18  #我們可以在這里測試一下
if age < 18:
    print("你還未成年,請去請示你家長")  #下面的句子與if為同一級別,所以不進入if的判斷機制
print("這個句子不進入if判斷語句中")
結果如下:
這個句子不進入if判斷語句中

 


-雙向分支-:
if..else..語句
語法:
if 條件表達式:
語句1
語句2
else:
語句1
語句2
雙向分支由兩個分支,當程序執行到if...else語句的時候,一定會執行其中一個,也僅僅執行一個(如果你的雙向分支語句兩個分支都沒執行,那一定是你程序問題)
縮進問題,else和if是同一級別,其余的語句也同一個級別


雙向分支例子
age = 18
if age < 18:
    print("你還未成年,請去請示你家長")
else:
    print("你已經成年,需要擔負成年的責任了")

 

結果如下:
你已經成年,需要擔負成年的責任了

 


-多路分支-:
當雙向分支已經不足以去判斷很多分支的情況下,請使用多路分支
多路分支語法
if..else..語句
if 條件表達式:
語句1
語句2
elif 條件表達式:
語句1
語句2
...
else:
語句1
語句2

使用雙向分支去完成多路分支的工作顯得代碼很繁雜,沒有聯動性
案例如下:
input():在控制台商輸出括號內的字符串,接收用戶在控制台上輸入的內容並返回(返回的值一定是字符串類型)
 案例條件:
90以上: 輸出優秀
80-90:良
70-80:中
60-70:平
60以下: 輸出:請補考

 score = input("請輸入你的成績:")
 score = int(score)# 將字符串轉化為整數
 if score >= 90:
     print("優秀")
 if score < 90 and score >= 80:
     print("")
 if score < 80 and score >= 70:
     print("")
 if score < 70 and score >= 60:
     print("")
 if score< 60:
     print("請補考")

 

結果如下:
請輸入你的成績:88

 


還是剛剛的例子,這次用多路分支來實現

 score = input("請再次輸入你的成績:")
 score = int(score)
 if  score >= 90:  #是不是感覺清晰很多
     print("優秀")
 elif score >= 80:
     print("")
 elif score >= 70:
     print("")
 elif score >= 60:
     print("")
 else :
     print("請補考")
結果如下:
請再次輸入你的成績:88

 

 



-循環語句-
重復執行某些固定動作或者處理基本固定的事物
分類
for循環
for循環語法: (不同於java C,python的for語法跟foreache相似)
for 變量 in 序列:
語句1
語句2
....
while 循環
表示當某條件成立的時候,就循環
不知道具體循環次數,但能確定循環的成立條件的時候用while循環
while語法:
while 條件表達式:
語句1



序列=一列數字或者其他值,一般用中括號"[]"表示
例如 ['haha','hihi','wawa']
for循環案例:
案例條件:打印學生列表姓名
for name in ['zhangsan','lisi','wangwu']:
    print(name)

 

結果如下:
zhangsan
lisi
wangwu

 



for循環嵌套if語句使用
for name in ['zhangsan','lisi','wangwu']:
    if name == "wangwu":
        print("{0}同學犯錯了,請罰站".format(name))
    else :
        print("{0}同學做的不錯,獎勵".format(name))

 

結果如下:
zhangsan同學做的不錯,獎勵
lisi同學做的不錯,獎勵
wangwu同學犯錯了,請罰站

-range-:
生成一個數字序列
具體范圍可以設定
在python,如果有表示數字范圍的兩個數,一般左邊的數字為首,右邊的數字為尾但是不包含
range函數在python2和python3里面右嚴重的區別(這里以python3為例子)

range案例
案例條件:打印1到10的數字
for i in range(1,11):
    print(i)

 

結果如下:
1
2
3
4
5
6
7
8
9
10


   in 后面的變量要求是可以可迭代的內容

for i in range(1,10):
    print(i)
print(type(range(1,10)))

 

結果如下:
1
2
3
4
5
6
7
8
9
<class 'range'>

 


-for-else語句-:
當for循環結束的時候,就會執行else語句(跟if有區別,前者是當for執行完才執行,后者是只執行一個
我個人喜歡數字3 ,所以當循環到數字3時候就打印出來,其他則打印"我不喜歡這個數字",在整個循環結束之后打印“我熱愛數字”這句話
for i in range(1,11):
    if i == 3:
        print("我喜歡數字{0}".format(i))
    else:  #這里請看仔細,兩個else的階級是不一致的,一個是if的else,一個是for的else
        print("我不喜歡這個數字")
else:
    print("我熱愛數字")
結果如下:
我不喜歡這個數字
我不喜歡這個數字
我喜歡數字3
我不喜歡這個數字
我不喜歡這個數字
我不喜歡這個數字
我不喜歡這個數字
我不喜歡這個數字
我不喜歡這個數字
我不喜歡這個數字
我熱愛數字

 

 



關於循環的關鍵字:break ,contineu ,pass
break :無條件結束整個循環,簡稱循環猝死
continei: 無條件結束本次循環,重新進入下一輪循環
pass:表示略過,通常用於占位

for 循環中的變量表示,一般用i,k,m,n之類的(約定俗成)
如果循環變量不重要,可以用下划線(_)表示

-break-:
案例條件:在數字1到10里面尋找3,找到之后打印並且馬上結束循環,可以避免過多的進程
for _ in range(1,11):
    if _ == 3:
        print("我找到了{0}".format(_))
        break
    else:
        print(_) #打印到2
結果如下:
1
2
我找到了3

 

 



-contineu-:
案例條件在數字1到10里面尋找所有偶數,並且打印出來
a = 1
for i in range(1,11):
    if i%2 == 1:
        continue;  #直接本次循環結束,也不進行a的運算
        a += 1;
    else:
        print("{0}是偶數".format(i))
        print("a的值為{0}".format(a))  #如果a的值大於1,則代表沒有結束循環
 
結果如下:
2是偶數
a的值為1
4是偶數
a的值為1
6是偶數
a的值為1
8是偶數
a的值為1
10是偶數
a的值為1

 


有時候,能運用一些細節來縮寫代碼達到同樣的效果
for i in range(1,11):
    if i%2 == 0:  #直接判斷是否為偶數,而不是進行篩選
        print("{0}是偶數".format(i))
結果如下:
2是偶數
4是偶數
6是偶數
8是偶數
10是偶數

 

 



-pass-:
運用pass關鍵字進行占位,占據一個空格的位置
很多時候我們創建一些函數或者循環等等是覺得在后面會有用,但是目前來說不確定里面怎么運算,空着呢又會出錯,這時就需要pass來進行占位
for i in range(1,2):
    pass # 不會報錯
結果如下:

 
        

-while-:
案例條件:年利率是6.7%,本利是每年翻滾,則多少年后本錢會翻倍
當前知道年利率(循環條件),不知道多少年(循環次數)
year = 0
qian = 100000
while qian < 200000:  #利用知道本錢這個循環條件來建立循環
    year += 1
    qian = qian*(1+0.067)
    print("第{0}年,我現在有{1}".format(year,qian))
結果如下:
第1年,我現在有106700.0
第2年,我現在有113848.9
第3年,我現在有121476.77629999998
第4年,我現在有129615.72031209998
第5年,我現在有138299.97357301068
第6年,我現在有147566.07180240238
第7年,我現在有157452.99861316333
第8年,我現在有168002.34952024528
第9年,我現在有179258.5069381017
第10年,我現在有191268.8269029545
第11年,我現在有204083.83830545243

 

 

 while...else,和for...else...用法一樣
條件跟前面一致,當本錢翻倍時候,就用print慶祝一下
year = 0
qian = 100000
while qian < 200000:
    qian = qian * (1+0.067)
    year += 1
    print("第{0}年,我現在有{1}".format(year,qian))
else:  #當前else和while處於同一級
    print("終於翻倍了,不容易啊") 
結果如下:
第1年,我現在有106700.0
第2年,我現在有113848.9
第3年,我現在有121476.77629999998
第4年,我現在有129615.72031209998
第5年,我現在有138299.97357301068
第6年,我現在有147566.07180240238
第7年,我現在有157452.99861316333
第8年,我現在有168002.34952024528
第9年,我現在有179258.5069381017
第10年,我現在有191268.8269029545
第11年,我現在有204083.83830545243
終於翻倍了,不容易啊

 

 
        
 順序結構
在不包含分支結構(條件判斷),循環結構(for ,while)情況下一步一步往下執行

 
        

 文筆不好,僅供參考

 
        

要有錯誤或者有其他更多的見解,歡迎大家加我QQ384435742來交流

 
        

想第一時間看更新的文章,請關注,謝謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM