在python中逻辑量有_(五)我的魔法竟有了一丝逻辑
學習目標
了解魔法世界中的結構表現——縮進
了解魔法世界的邏輯判斷——if
了解魔法世界的多次邏輯判斷——ifelse嵌套
了解魔法世界中的邏輯運算——且 and 與或 or
一、了解魔法世界中的邏輯判斷
在python中進行邏輯判斷其實指的是流程控制,那什么是流程控制呢?流程控制指的是在編寫代碼時,有不同條件下需要執行的代碼,滿足該條件后將會執行這部分流程;這一部分流程可以是一條代碼、空或多條代碼。那我們的代碼如何體現這個流程控制呢?其實在我們的程序運行中,會出現一些可能預計的情況,通過對這些情況的判定從而在某些情況出現時做響應;例如在做一臺壁障小車時,判斷前方是否有障礙物,若有則轉彎或后退,其它情況則直走;在整個過程中,轉彎和后退表示一個情況觸發后需要響應的流程,其它情況則直走,這就是流程控制。從壁障小車的表現上看,則是有了邏輯;在魔法世界中,釋放有邏輯的魔法就像一枚跟蹤導彈,放出去必定命中敵人。
1.1 了解邏輯判斷咒語——if關鍵字if在python中是用來表示邏輯判斷的關鍵字(關鍵字指系統中內定已有功能的字符組合,就像魔法中的咒語一樣),使用if,在if后拼接觸發的條件,則會在程序運行過程中觸發指定的流程。現在我們來看一下以下示例:
以上代碼使用了if關鍵字,之后接上了一個條件,這個條件是1>10;我們現在先別管條件是怎么寫,剛剛說了,條件滿足后將會觸發指定的流程。那的指定流程改如何編寫呢?我們可以看一下這一行代碼中有一個冒號,冒號的一般作用是解釋說明,那在代碼中是否也可以使用冒號用作一種類似于“解釋說明”的作用?恭喜你,如果你這么想那就是猜對了。那我們就在1>10的時候就顯示“1>10”吧,查看以下代碼:
在以上代碼中整體的代碼意思為,使用if關鍵字,判斷1是否大于10,大于10則執行冒號后的代碼;運行python文件:
發現什么都沒有出現,這是為什么呢?因為1>10這個條件不成立,在一般情況下1是不可能大于10的;那修改條件為1
運行結果:
成功顯示了1
首先我們需要使用input魔法接收用戶輸入的值,并且使用一個變量存儲該值:
隨后使用a變量進行判斷,查看是否小于10:
我們運行代碼,輸入一個數10,結果發現了錯誤;這是博主我翻車了嗎?當然是的,還好我有安全氣囊。首先我們查看一下我們的魔法到底哪里錯了:
以上錯誤提示中,告訴我們使用
怎么回事?難道我輸入10不是數字?在python中當然不是數字呢,當前輸入的10是一個字符串;可能你會一巴掌打我,并且說“10明明是數字,你是在忽悠我顛倒我的世界觀嗎?”。其實數字可以做為字符也可以作為數字,例如在一串字符串中“小明今年17歲了”,其中出現了數字17,那這個17是字符串還是數字?在我們腦海里它是個數字,我們覺得這個17是個數字是因為我們進行了邏輯判斷,知道它是個量詞;所有的這一切邏輯是基于我們所學過知識的基礎上進行的判定,但計算機并沒有學過,它并不能判斷,只能通過我們所告訴它存在那個容器,這個容器是什么類型,數據存儲進去后將會按照容器的類型從而改變值。
那接下來怎么做呢?這個很簡單,只需要在判斷的時候轉換一下變量a的值就可以了:
以上代碼中,在變量a與10進行判斷時轉變了a的表現,為整數形式;運行結果如下:
程序運行后輸入了一個值2,判斷條件成立,那么則運行顯示出 a小于10。
1.2 了解縮進的使用想必有細心的魔法師還記得我之前說“流程可以是多條代碼”,那這個多條代碼怎么寫呢?難道是:
不不不,這個是錯的,我們需要使用一個叫做縮進的表示形式去凸顯代碼只能夠的層次。例如:
就這?對的,就這。這就是縮進,縮進其實就是把版面給排得整齊了。查看如上代碼,在if條件判斷冒號后換了一行,并且在這一條代碼 前添加了4個空格,并且也在這個流程內的代碼 前也添加了4個空格,一般4個空格指一個tab鍵自動輸入的4個空格。
這樣的編寫形式非常容易凸顯層次,例如if執行判斷后,該執行多條代碼,這屬于共同流程內的代碼需要整體的使用縮進進行控制層次。
二、了解魔法世界中的邏輯判斷嵌套
在python代碼編寫中也可以使用嵌套的判斷用于流程的控制。例如我們做一個“作弄人”的小魔法,輸入3次,第一次輸入一個數小于10,之后的每次輸入都只能輸入比上一次小的數,如果輸錯了則游戲結束。
2.1 if的嵌套使用知道了游戲規則,那到底什么是嵌套呢?嵌套用最近流行的一個詞來說就是“套娃”(2020年10月31日),用現實中的類似食物做一個比方就是一個碗上面又疊了一個,這就是嵌套。
在python代碼中if的表現形式為:
if的嵌套就是指在if條件判斷的流程代碼中再使用if判斷。以上表現形式中使用了#號來修飾一些說明,這是什么東西?這是表示這是注釋,注釋表示這一行或者這一塊代碼的說明,方便你進行查看解釋的標注,在通過解釋器時并不會去翻譯使用#號標注的內容。
為什么玩這個游戲需要使用if嵌套呢?我先跟你說一下我的實現思路:從鍵盤上輸入一個值,我們接著判斷這個值是否小于10,判斷成功后進入正確的流程,在條件判斷正確所需要執行的代碼中繼續使用input語句接收一個值,完成我們的二次輸入,然后使用if繼續判斷這個值是否小于第一次輸入的值,那么小于的話繼續執行這個if語句判斷正確的代碼,那么接下來該怎么做呢?當然是跟之前一樣的操作流程呢,添加一個input和一個if就可以了(當然也可以不用if嵌套也有別的方法,不過在此演示的示例是基于教學內容而設定)。
我們看一下正確的代碼:
以上代碼中首先使用一個變量a接收輸入的值,之后判斷是否小于10,小于10則執行指定流程內的代碼,之后在該流程內重復與之前代碼類似的編寫;不同的有使用了一個變量b作為值的接收,隨后判斷變量b與變量a的值,變量a是第一次輸入的值存儲,游戲規定一定要小于上一次的值,所用用剛剛輸入的值與上一次的值做對比;第三次的操作類似不在贅述,這樣就完成了這個游戲的編寫。運行結果:
2.2 if不成立時 else來幫你在2.1中我們的邏輯判斷存在一絲缺陷,缺少了條件不成立時該執行代碼什么代碼。在python中提供了else關鍵字讓我們解決該問題:
當條件成立時執行條件冒號后的對應流程代碼,當條件不執行時執行else流程的代碼。查看一示例:
如果我們把else加到2.1的游戲中,代碼可以寫成:
以上代碼在每一個if結構后都跟了一個else,在此要注意縮進的結構喲,每個if都是有自己的結構的,可以看以下圖示說明:
運行結果如下:
2.3 多條件時怎么辦?使用if elif輕松解決現在假設我需要判斷我輸入的是1還是2或者是3從而執行不同的流程,這時可以使用if elif結構判斷多個條件。
以上示例中,在使用了if判斷值是否是1,使用兩個等于號“==”表示判斷左右兩邊的值是否相等,在python中使用一個等于“=”表示賦值;假設值等于1則輸出,假設需要判斷是否輸入的值等于2這時就需要使用elif,在elif后添加判斷條件 ,假設所有條件都不滿足,那么則輸出else部分的內容。運行結果如下:
當然也可以多個elif組合:
2.3 使用邏輯運算 and 與 or 進行編程假設在魔法世界,你釋放了一個封印魔法封印一把鎖,需要輸入一個小于10的數并且能夠被2整除才可以打開;這時需要判斷的條件為2個,一個是小于10另外一個是除2余數等于0。這時我想用一個if語句就可以解決,這時就可以使用邏輯運算,查看示例:
以上示例中使用了and運算符,表示“與”;and運算發坐標為一個條件(表達式)右邊也是一個條件,首先判斷坐標條件a是否小于10,如果成立則判斷右邊a除2取余數是否為0,如果為0就顯示“打開盒子”。在這and 表示左右兩邊條件都正確即為整個表達式 正確,換句話說就是and的坐標和右邊的判斷都正確才是最終答案。再次用了運算發百分號%,百分號表示取余數。
運行結果如下:
如果使用 or 進行表達式運算則只需要一個表達式正確即可,意思就是左邊和右邊只要有一個條件成立就表示正確了:
假設我輸入一個值100,它是大于10的條件1不成立,但是它卻可以被2整數余數為0,在使用or的情況是會顯示“打開盒子”的,若屬于111則不行,因為條件都沒滿足。運行結果如下:
使用運算符and 和 or 并不只是能判斷2個條件,也可以判斷多個條件:
也可以or 和 and 混合使用:
以上條件判斷為表示a小于10并且除2余數為0,假設這一部分不滿足則判斷a是否等于200,由于與之間使用or進行連接,則表示兩者之間即使左邊全錯,右邊對了那么就正確,如果與全錯則整個條件判斷錯誤。運行結果如下:
四、總結
了解了在python中是使用縮進代表的層次結構
了解了使用if可以進行邏輯判斷進行流程控制
了解了邏輯判斷是可以嵌套的
了解了邏輯運算可以使用 and 和 or 進行邏輯運算
總結
以上是生活随笔為你收集整理的在python中逻辑量有_(五)我的魔法竟有了一丝逻辑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 供应链金融业务信息化平台搭建要点分享
- 下一篇: 开始研究反垃圾评论