1. 程式人生 > >運算符、單雙分支&多分支、while循環

運算符、單雙分支&多分支、while循環

分支 ... 9.png 部分 很好 nbsp 所有 控制流程 最小化

一 、運算符:

1. 算術運算符:

“ + ”、“ - ” 、“ * ” 、“ / ” 分別為加、減、乘、除。

% 是“取模運算符”,就是返回除法的余數。eg. a = 3, b=5, b % a 就是b/a的余數2。 常見用處:判斷奇偶性及跟奇偶性有關的需求。

** 是“冪運算符”。eg. a**b為a的b次方。

// 是“取整除”, 就是返回商的整數部分。eg. 9//2輸出結果為4。

2. 比較運算符:

== 是“等於”;

!= 是“不等於”;

<> 是“不等於” (Python2 語法,Python3不能用);

> 是“大於”;

< 是“小於”;

>= 是“大於等於”;

<= 是“小於等於”;

3. 賦值運算符:

= 是簡單的賦值運算符;

+= 是加法賦值運算符。c += a 等效於 c = c+a;

-= 是減法賦值運算符。c -= a等效於 c = c - a;

*= 是乘法賦值運算符。c *= a 等效於 c = c * a;

/= 是除法賦值運算符。c /= a 等效於 c = c/a;

%= 是取模賦值運算符。c %= a 等效於 c = c % a;

**= 是冪賦值運算符。c **= a 等效於 c = c ** a;

//= 是取整除賦值運算符。c //= a等效於 c = c // a 。

4. 邏輯運算符:

and 布爾“與”; (用途:用戶登錄時需要 用戶名正確 and 密碼正確)

or 布爾“或”;

not 布爾“非”。

二、控制流程

1. 單分支:

定義:

if 條件:

滿足條件後要執行的代碼

2.雙分支:

定義:

if 條件 :

滿足條件執行代碼

else :

if條件不滿足就走這段

(1). if_else用戶名、密碼登錄代碼及運行:

技術分享圖片

技術分享圖片

這段代碼用到的知識點:if...else語法、邏輯運算符“and”。

(2). if...else程序練習: 輸入姓名、性別、年齡,判斷如果是女生且年齡小於28歲,打印我喜歡女生,否則,打印姐弟戀也很好哦。如果是男生,打印一起來搞基。

源代碼如下:

技術分享圖片

這段代碼中用到的知識點:1. if...else中又嵌套了一個if...else語句,2. 因為 變量age要跟28這個數字做大小比較,字符串(str)和數字(int)不能比較大小,所以需要把input( ‘ Age:‘) 這個字符串用int()處理變成數字。

3. 多分支:

定義:

if條件 :

滿足條件執行代碼

elif條件 :

上面的條件不滿足就走這個

elif條件 :

上面的條件不滿足就走這個

elif條件 :

上面的條件不滿足就走這個

else:

上面所有的條件不滿足就走這段

匹配成績小程序:

要求:成績有ABCDE 5個等級,對應關系如下

A 90~100

B 80 ~ 89

C 60~79

D 40~60

E 0~40

根據輸入的分數來查詢成績等級。

下圖是別人寫的的比較正確規範的代碼:

技術分享圖片

下圖是我當時自己寫的代碼:

技術分享圖片

對比我寫的 “ elif 80 <=grade <90 : ” 和別人寫的 “ elif grade >= 90 : ” ,發現我一個認識不足的地方,這個不足也反映了我對elif語句的理解不透徹。 我不應該再去強調 “ grade < 90 ”,因為elif 的定義就是 “如果上面的條件不成立,就走elif”,程序既然能走到 “ 80 <= grade < 90 ”這一步,輸入的分數肯定不能滿足“ grade >= 90 ”,要不然程序不會走到這一步。

四、while循環

語法:

while 條件:

執行代碼...

基礎程序: 寫個程序從0打印到100,每循環一次+1。

技術分享圖片

程序練習1: 編寫一個程序打印1到100的偶數。

下圖是我當時寫的錯誤代碼:

技術分享圖片

執行結果:

技術分享圖片

我的錯誤之處:我寫的while語句意思是“count小於等於100,且count對2取模為0”,下面的程序才會執行,count第一個數是1, 滿足小於等於100這個條件,但卻不滿足對2取模為0這個條件,所以後面的代碼就直接不執行了。

正確代碼:

技術分享圖片

關於這段代碼有一點需要註意,如下圖

技術分享圖片

程序練習2: 循環打印1到100,第50次不打印值,第60-80次,打印對應值的平方。

我當時寫的代碼:

技術分享圖片

別人寫的更簡潔的代碼:

技術分享圖片

我的代碼和別人簡潔代碼產生出入的原因: 1. pass這個功能以前不會用,pass的作用就是什麽都不執行; 2. 寫作時的思路不同: 我的代碼是先寫“大眾化的需求”,例如先寫了count 位於1~60和 位於 80~100時的代碼,後來在這兩行代碼中間加上了60~80這個“小眾化的要求”, 最後在while語句的最前部分加上了“排除50”這個“最小化的要求”;但別人的寫作思路是最先把50這個“最小眾化的要求”寫出來,然後再寫60~80這個“小眾化的需求”, 最後再寫其他所有的、也是“最大眾化的需求”。

還有一個猜年齡3次的程序,我第一次寫的時候忘記把 guess_age = int( input(‘ your guess:‘) ) 這句代碼寫到while語句裏面。因為需要輸入3次。 如下圖

技術分享圖片

運算符、單雙分支&多分支、while循環