[11] Python條件判斷語句(二)

1. 概述

今天我們繼續看條件判斷語句,主要看兩種運算符和布爾型變數。首先看一下學習計劃列表,粗體為已學,斜體為新增或修改內容。

  • 計算機編程的原理簡要介紹
  • 集成開發環境PyCharm
  • 變數名、數字、字元串、列表
  • 句式、注釋
  • 輸入和輸出
  • 條件判斷語句
  • 循環語句
  • 函數
  • 模塊和引入
  • 各類數據結構

2. 比較運算符

這個簡單,比大小。

小於: <n大於: >n小於等於: <=n大於等於: >=n等於: ==n不等於: !=n

比如我們有兩個變數,a和b,如何判斷它們是不是相等?我們寫下a==b,Python就能判斷是不是相等,相等的話,a==b就給出值True(正確),不等的話就是False(錯誤)。

這裡要記住,判斷兩個東西是不是相等,我們得連打兩個等號,一個等號意思是賦值,兩個等號才是判斷相等。其實要更好理解怎麼使用這些運算符,我們可以試著寫一個小程序。

問題:

要求用戶輸入兩個整數,判斷兩個數是否相等,若相等,輸出兩數相等;若不等,輸出兩數不等,再輸出兩者大小關係。

這個問題看著挺蠢的,但是我們要熟悉新內容,必須一步一步來。在你看答案之前,最好試著自己先編寫一下程序,試著自己調試。

答案:

# Ask user to type in two numbers (assume they will enter integers)nfirst_num = int(input("Please enter the first number: "))nsecond_num = int(input("Please enter the second number: "))nn# Now run the comparisonnif first_num == second_num:n print("{} and {} are equal.".format(first_num, second_num))nelse:n print("{} and {} are not equal.".format(first_num, second_num))n if first_num < second_num:n print("{} is less than {}.".format(first_num, second_num))n else:n print("{} is greater than {}.".format(first_num, second_num))n

if和elif後面的條件語句有沒有括弧都可以,看你編寫代碼時覺得哪一個看著順眼。

3. 成員運算符

成員運算符很簡單,就兩個:

in: 判斷序列裡面是否有要找的值,是的話返回True,否則Falsennot in: 判斷序列厘米是否沒有要找的值,沒有的話True,否則Falsen

最直觀的就是用列表來看了,字元串也可以,比如我們有兩個班級,每個班4個學生,假設沒有重名,我們想要輸入學生名字,查看學生屬於哪個班級:

# Define two lists that represent two classesnclass1 = [Sam, Peter, Nancy, Alice]nclass2 = [Bob, David, June, Mary]n# Ask user to type in a students namenstudent = input("Please type the students name here: ")n# Check the students class numbernif student in class1:n print("Student {} is in Class 1.".format(student))nelif student in class2:n print("Student {} is in Class 2.".format(student))nelse:n print("Student {} is not found.".format(student))n

通過這個例子,我們可知in的作用就是判斷一個值是否在序列裡面,在這個例子里,我們判斷的是用戶輸入的學生名字是否在我們以及定義好的學生列表中,「student in class1」,如果學生名字在class1這個列表中找到了,判斷為True,沒有找到,則為False。比如我輸入Peter,Peter在class1這個列表裡,所以student in class1判斷為True,屏幕上顯示該學生在一班;如果我輸入Mary,則顯示在二班;如果輸入Chris,我們知道他既不在class1里也不在class2里,程序則輸出找不到該學生。

in和not in也同樣適用於字元串:

s1 = I love eating fish.ns2 = isnprint(s2 in s1) # Truenprint(s2 not in s1) # Falsen

s2的「is」在s1中是存在的,可以看s1中的fish這個單詞裡面包含了is,第三行代碼判斷s2是否在s1這句話中,答案是是,給了True;第四行代碼判斷s2是否不在s1中,答案是False。

4. 布爾型變數

我們知道所有的判斷,等於、不等於、大於小於、在和不在等等,都類似一個數學公式,計算後產生值為布爾型,對或者錯。既然像公式能算值,我們也能把判斷結果賦給變數。

# Ask user to type in two numbers (assume they will enter integers)nfirst_num = int(input("Please enter the first number: "))nsecond_num = int(input("Please enter the second number: "))n# Assign boolean results to different variablesnis_equal = first_num == second_numnis_smaller = first_num < second_numnis_bigger = first_num > second_numn

這裡比如is_equal這一行,我們首先判斷等號右邊「first_num == second_num」,兩個輸入的數字是否相同,相同的話,is_equal這個變數就被賦值True,否則是False。其餘兩個變數也同理,那接下來,我們直接用這幾個變數去替代if後面的條件判斷,可以讓代碼更簡潔易讀:

# Run the comparisonnif is_equal:n print("They are equal")nelif is_bigger:n print("First number is bigger")nelif is_smaller:n print("First number is smaller")n

5. 注釋英文化

上次從一個大神同學那裡得知,要學好代碼,英語很重要,從現在開始,我所有的注釋開始使用英文,但是不會出現過於難的單詞或者複雜的句型,也是給大家的一個小福利(其實是嫌麻煩不想切換輸入法,可恥地逃了)。

這兩天比較忙,更新沒開始那麼勤快了,不過忙完了就又可以高產了,視頻也在慢慢錄製,我會在做好後第一時間把鏈接貼出來。下一章我們要介紹邏輯運算符的相關知識。


推薦閱讀:

20170402Python變數類型 知識點梳理
[21] Python函數(二)
跟黃哥學習python第三章

TAG:Python | 计算机科学 | 编程 |