python判斷語句_詳解Python判斷語句的使用方法

本篇介紹Python判斷語句的使用,主要討論簡單條件語句、多重條件語句和嵌套條件語句,在講解的每個案例中都配有流程圖和代碼說明。通過本篇的學習,可以達成如下目標。

● 掌握判斷語句的使用規則

● 判斷語句流程圖的畫法

前面我們學習了Python的數據類型和相關知識,現在可以開始編寫Python程序了,首先從條件判斷開始。

1、 簡單if-else語句

例1:要求用戶輸入兩個數,計算兩數的和。如果這兩個數的和大于100,則輸出“兩數和大于100”,否則輸出“兩數和小于100”。

程序要求用戶從鍵盤輸入兩個整數,求這兩個整數的和。如果和大于100,用print語句輸出“兩數和大于100”,否則輸出“兩數和小于100”。程序流程圖如下:

u=10091428,1238286396&fm=173&app=49&f=JPEG?w=554&h=332&s=798C3472018F654B5CDD10CB0000A0B1圖 1 例1流程圖

流程圖用到了判斷框,判斷框用于判斷兩數和結果result的值,并根據判斷情況選擇不同的分支。類似這樣的判斷情況,在程序中應用非常廣泛,需要對條件進行判斷,并根據判斷結果,進入不同的分支程序。這種流程稱為條件分支流程,其語句結構也稱為條件結構。

在Python語言中,條件結構由if—else語句構成,else語句也可以省略。if語句由三部分組成:關鍵字本身,用于判斷結果真假的條件表達式,以及當表達式為真或者非零時執行的代碼塊。else 語句與if語句搭配使用,如果if語句條件表達式的值為真,則執行if 后面的語句塊;如果if語句條件表達式的值為假,則執行else后面的語句塊。

if—else語句語法如下:

if 條件表達式:

語句塊

else:

語句塊

在if—else語句結構中,如果只對if語句條件表達式為真的情況進行處理,else語句可以省略。現在,我們已經了解了Python語言if-else結構的語法,下面探討一下如何在條件結構中使用條件表達式。

例如:要測試兩個整數類型的變量值num1和num2是否相等,可以編寫num1 == num2,然后將其放入一個if語句中,如下所示:

u=2853074706,3469969578&fm=173&app=49&f=JPEG?w=640&h=93

如果num1和num2的數值相等,則條件為真,執行if后面的語句塊,用print函數輸出“兩數相等”,否則執行else后面的語句塊,用print函數輸出“兩數不相等”。編寫代碼時,if和else后面的語句塊要縮進對齊。

下面根據圖1所示的流程圖給出例1的程序代碼。

u=290005421,3880737594&fm=173&app=49&f=JPEG?w=640&h=125&s=46C0F11A4B23672446F51CDA000050B2

input函數從標準輸入(如鍵盤)接收用戶或設備的輸入,input返回的是字符串類型,程序要求輸入整數,因此計算兩數和時,需要把num1和num2強制轉換為整數。最后再判斷result的值,根據result的值選擇不同的執行路徑。

2、 多重if結構語句

例2:編寫一個程序,根據用戶輸入的考試成績,輸出相應的成績評定信息。成績大于等于90分輸出“優”;成績大于等于80分小于90分輸出“良”;成績大于等于60分小于80分輸出“中”,成績小于60分輸出“差”。

程序的主要功能是對考生的考試成績進行評定,成績評定分成優、良、中、差四個檔次。成績大于等于90分為優,大于等于80分小于90分為良,大于等于60分小于80分為中,成績小于60分為差。用戶輸入考試成績后,程序需要對考試成績進行多次判斷,如果考試成績在90分至100分之間,用print函數輸出“優”;如果考試成績在80分至90分之間,用print函數輸出“良”;如果考試成績在60分至80分之間,用print函數輸出“中”;如果考試成績在60分以下,用print函數輸出“差”。程序流程圖如下:

u=2374959664,1280187222&fm=173&app=49&f=JPEG?w=554&h=414&s=5A283C62050FC54D5CF595DA0000C0B1圖 2 例2流程圖

流程圖用到了多個條件判斷,如果條件的值為真,則執行某些操作,否則,進一步進行條件判斷,執行其它操作。流程圖中需要逐級判斷輸入的考試成績在哪個分數段內,并輸出相應的等級。當遇到類似這種情況時,就可使用多重if結構解決。

多重if結構實際上是if-else結構的另一種形式;if-else-if,這種形式也稱為階梯式,當有多個分支選擇時,可采用多重if結構。

多重if結構語法如下:

if 條件表達式1:

語句塊

elif 條件表達式2:

語句塊

elif 條件表達式3:

語句塊

……

else:

語句塊

多重if結構從上到下依次對條件進行判斷,當條件滿足時就執行該條件后面的語句,并跳過其它的條件判斷;若沒有條件滿足,則執行最后的else語句塊,如果沒有else語句塊,則直接執行該結構后面的語句。

下面根據圖2所示的流程圖給出例2的程序代碼。

u=4117021834,3344525234&fm=173&app=49&f=JPEG?w=640&h=158&s=EEC0E0124B63472446758CDA000080B2

程序使用了if-elif-else多重條件結構,每個條件表達式使用了邏輯與運算符,用于連接兩個子表達式,只有兩個子表達式都滿足條件時,整個表達式的值才為真。

3、 嵌套if語句

前面介紹了簡單if和多重if語句,可以解決很多條件判斷問題。但還存在一種嵌套的判斷情況,即只有當前提條件滿足時,才判斷后續條件是否滿足。例如,如果星期日天氣晴朗,且能買到去青島的高鐵票就去青島玩,否則就在家休息。在這個例子中,第一條件是天氣晴朗,在天氣滿足的條件下,再判斷第二條件,是否能買到去青島的高鐵票,兩個條件全部滿足就去青島玩,否則就在家休息。

嵌套if語句是指在已有if語句塊中插入另一個if語句塊,實現條件的嵌套判斷,if語句塊可以多層嵌套。嵌套語句語法結構如下:

if 前提條件:

if 后續條件:

語句塊

else:

語句塊

else:

語句塊

嵌套if語句在Java、C等編程語言中,編寫不規范時,有時會引發一些疑問,下面是一個Java語言的例子:

u=1087072869,3757788466&fm=173&app=49&f=JPEG?w=640&h=70

按條件語句的語法形式,上面的例子似乎有兩種可能的解釋,第一種理解:外層的if是一個沒有else部分的條件語句,最后的else部分屬于內層的if語句;第二種理解:內層if是一個不帶else部分的條件語句,最后的else屬于外層的if條件語句。

為了避免這種二義性,Java語言規定,每個else部分總是屬于前面最近的那個缺少對應的else部分if語句。根據這一規定,上面的例子第一種解釋是正確的,第二種解釋是不正確的。

Python不會出現這樣的疑問,Python使用強制縮進使代碼正確對齊,讓程序員來決定else屬于哪一個if,從而減少了不確定性。例如,上面的例子代碼按照第一種理解可以這么寫:

u=4292248218,185092244&fm=173&app=49&f=JPEG?w=640&h=70

Python代碼可以很明顯看出,else是和內層if匹配的。

例3:編寫一個程序,要求用戶輸入兩個整數,如果輸入的兩個整數不相等,輸出最大的數。

程序的主要功能是練習嵌套if語句的使用,要求對用戶輸入的兩個整數首先判斷是否相等,在兩個數相等的條件下,再判斷哪個數大,并輸出較大的數。程序流程圖如下:

u=3816226744,2641342704&fm=173&app=49&f=JPEG?w=554&h=574&s=5EAA3C62410FE54F1EFD84DA0000C0B1圖 3 例3流程圖

流程圖用到了嵌套條件判斷。首先判斷num1和num2是否相等,如果相等,程序不做任何處理并結束程序;如果不相等,再判斷num1是否大于num2,若條件滿足輸出num1,程序結束,否則輸出num2,程序結束。

下面根據圖3流程圖給出例3的程序代碼。

u=1505298025,3927738263&fm=173&app=49&f=JPEG?w=640&h=137&s=4F40E8124F62472046F51CD8000050B2

代碼使用了嵌套if語句實現了程序任務要求,input獲取用戶輸入后,返回的是字符串,需要把字符串強制轉換為整數。

課程小結

(1)在Python語言中,if語句由三部分組成:關鍵字本身,用于判斷結果真假的條件表達式,以及當表達式為真或者非零時執行的代碼塊。else 語句與if語句搭配使用,如果if語句條件表達式的值為真,則執行if 后面的語句塊;如果if語句條件表達式的值為假,則執行else后面的語句塊。

(2)多重if結構語句實際上是if-else結構的另一種形式;if-else-if,這種形式也稱為階梯式,由多個條件判斷語句組成,如果條件的值為真,則執行某些操作,否則,進一步進行條件判斷,執行其它操作。

(3)嵌套if語句是指在已有if語句塊中插入另一個if語句塊,實現條件的嵌套判斷,if語句塊可以多層嵌套。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454555.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

迫在眉睫的職業規劃

對于大多數程序員來說,微軟是一家值得崇敬的公司,能夠加入微軟,也是很多程序員的愿望。在付出足夠的努力后,一旦進入了微軟,也就意味著可以和最先進的技術終日為伍,一直沿著技術這條路線走下去了。對嗎&…

js setTimeout 使用方法

在項目過程中遇到一些異步加載和其他js方法沖突的問題: 如圖初始化的時候會加載“商戶基本信息”,修改商戶名稱字段第二個頁面也需要修改: function setSeqAndName(){var pritab2 $("#allTabs").tabs("getTab", 1).find("ifra…

python中分支結構包括哪些_python中的分支結構

python不提供switch語句,但是python可以通過字典實現switch語句的功能 實現方法分兩步: 首先:定義一個地點 其次:調用字典的get()獲取相應的表達式 原始方法: from __future__ import division #內置函數,解…

機器學習算法之 logistic、Softmax 回歸

邏輯回歸本質是分類問題,而且是二分類問題,不屬于回歸,但是為什么又叫回歸呢。我們可以這樣理解,邏輯回歸就是用回歸的辦法來做分類。它是在線性回歸的基礎上,通過Sigmoid函數進行了非線性轉換,從而具有更強…

html上傳預覽圖片原理,關于html中圖片上傳預覽的實現

functionchange() {varpicdocument.getElementById("preview"),filedocument.getElementById("f");//得到后綴名varextfile.value.substring(file.value.lastIndexOf(".")1).toLowerCase();//gif在IE瀏覽器暫時無法顯示if(ext!png&&ext!…

程序員成功之路

程序員成功之路 ——The road ahead for programmer(演講稿) 一、我很羨慕在座的各位同學,因為你們是中國未來的程序員,而我不是,我一直很遺憾。 比爾蓋茨曾經寫過一本書叫做《未來之路》The road ahead, 那么今天我選…

【溫故知新】——原生js中常用的四種循環方式

一、引言 本文主要是利用一個例子,講一下原生js中常用的四種循環方式的使用與區別: 實現效果: 在網頁中彈出框輸入0 網頁輸出“歡迎下次光臨”在網頁中彈出框輸入1 網頁輸出“查詢中……”在網頁中彈出框輸入2 網頁輸出“取款中……”在…

部署egg需要用到pm2嗎_使用寶塔面板部署校園綜合服務平臺項目

本文檔為校園綜合服務平臺服務端的安裝部署教程,歡迎star小程序端下載地址:https://github.com/landalfYao/help.git后臺服務端下載地址:https://github.com/landalfYao/helpserver.git后臺客戶端下載地址:https://github.com/lan…

機器學習算法之線性回歸

一、什么是回歸算法 回歸算法是一種有監督算法 回歸算法是一種比較常用的機器學習算法,用來建立“解釋”變量(自變量X)和觀測值(因變量Y)之間的關系;從機器學習的角度來講,用于構建一個算法模型(函數)來做屬性(X)與標簽(Y)之間的映射關系&a…

html中怎么寫多選框,如何在HTML中實現“選擇所有”復選框?

checkboxes document.getElementsByName(foo);for(var checkbox in checkboxes)checkbox.checked source.checked;} Toggle AllBar 1 Bar 2Bar 3 Bar 4最新情況:這個for each...in構造在Safari 5或Chrome 5中似乎不起作用,至少在本例中是這樣的。這段代…

Console-算法[for]-國王與老人的六十四格

ylbtech-Arithmetic:Console-算法[for]-國王與老人的六十四格1.A,案例-- -- ylb:算法-- Type:算法[for]-- munu:國王與老人的六十四格-- 20:32 2012/3/16-- 案例:印度有個國王,他擁有超人的權力和巨大的財富。但權力和財富最終讓他…

程序人生感悟

<本來不想寫的&#xff0c;實在不想看到某些人誤人子弟&#xff0c;混淆視聽&#xff0c;耽誤了中國IT的未來&#xff0c;所以一吐為快) 一些人總是發出一些錯誤的聲音&#xff0c;形成了劣勝優汰可怕的現象。他們在誤導著中國&#xff0c;把我們的后繼軍訓練成軟件藍領―…

python的excel庫_Python-Excel 模塊哪家強?

0. 前言 從網頁爬下來的大量數據需要清洗&#xff1f; 成堆的科學實驗數據需要導入 Excel 進行分析&#xff1f; 有成堆的表格等待統計&#xff1f; 作為人生苦短的 Python 程序員&#xff0c;該如何優雅地操作 Excel&#xff1f; 得益于前人的辛勤勞作&#xff0c;Python 處理…

html如何設置滑輪效果,HTML中鼠標滾輪事件onmousewheel處理

滾輪事件是不同瀏覽器會有一點點區別&#xff0c;一個像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法綁定DomMouseScroll事件&#xff0c;其他的瀏覽器滾輪事件使用mousewheel&#xff0c;下面我來給大家具體介紹。Firefox使用DOMMouseScroll&#xff0c;其他…

在OOW2009上尋寶撞大運續(床上篇)

歷時5天的Oracle Open World 2009終于&#xff0c;終于結束了。今天最后的節目是去聽一場金融分析師的會議&#xff0c;“只”開了不到6個鐘。去的時候是毛毛雨&#xff0c;回來的時候終于看到了一縷陽光。說夕陽無限好不大合適。用Larry Ellison的說法是“太陽落下的地方也是太…

skynet記錄6:定時器

稍后填坑 kernel中&#xff0c;每一次時鐘中斷會trap到kernel code&#xff0c;這個時間間隔稱之為jiffies&#xff0c;每秒鐘發生的次數為HZ 如果是4核&#xff0c;分配到每個核就是HZ/4 cat /boot/config-uname -r | grep ^CONFIG_HZ 輸出&#xff1a; CONFIG_HZ250 cat /pro…

html圖片平鋪不重復整個頁面,JSP網頁背景圖片怎樣不平鋪,不重復出現啊...

2016-07-10 13:12最佳答案1,Q:怎樣把別人網頁上的背景音樂保存下來?A:瀏覽該網頁后,在你的 Windows\Temporary Internet Files 文件夾下可以找到該背景音樂的緩存文件&#xff0c;拷貝出來即可使用。如果還是找不見該文件&#xff0c;可以打開網頁的源文件&#xff0c;找到音樂…

特征圖注意力_從數據結構到算法:圖網絡方法初探

作者 | 朱梓豪來源 | 機器之心原文 | 從數據結構到算法&#xff1a;圖網絡方法初探如果說 2019 年機器學習領域什么方向最火&#xff0c;那么必然有圖神經網絡的一席之地。其實早在很多年前&#xff0c;圖神經網絡就以圖嵌入、圖表示學習、網絡嵌入等別名呈現出來&#xff0c;其…

FFMPEG 源碼分析

FFMPEG基本概念&#xff1a; ffmpeg是一個開源的編解碼框架&#xff0c;它提供了一個音視頻錄制&#xff0c;解碼和編碼庫。FFMPEG是在linux下開發的&#xff0c;但也有windows下的編譯版本。 ffmpeg項目由以下幾部分組成: ffmpeg 視頻文件轉換命令行工具,也支持經過實時電視…

面試之 Redis匯總

簡介 Redis 持久化機制 RDB&#xff08;Redis DataBase&#xff09; AOF&#xff08;Append-only file&#xff09; Redis 4.0 對于持久化機制的優化 補充&#xff1a;AOF 重寫 二者的區別 二者優缺點 Memcache與Redis的區別都有哪些&#xff1f; 緩存雪崩、緩存穿透、…