您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關python編程中如何選擇執行語句與程序調試,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
現在,我們來編寫這樣一段程序:程序運行后,首先提示執行者輸入姓名,然后提示用戶輸入年齡。如果年齡小于7,輸出“你好,XXX小朋友”(注意:這里XXX是剛剛輸入的姓名);如果年齡小于等于15歲,輸出“你好,XXX少年”;如果年齡小于18歲,輸出“你好,XXX青少年”;如果年齡小于40歲,輸出“你好,XXX青年”;如果年齡小于60歲,輸出“你好,XXX中年人”;如果年齡大于等于60歲,則輸出“你好,XXX老年人”。
我們分析以上程序需求場景:輸入姓名、年齡后,根據年齡段把不同的文字(小朋友、少年、青少年、青年、中年人、老年人等)拼接到“你好,XXX”之后。
根據之前的經驗,可以用input()函數(這種帶有()的語句都叫函數調用,這里我們記住這個“函數”的說法就可以了,至于什么時函數,我們后續會詳細講解)獲取鍵盤輸入,print()函數時在屏幕輸出相關內容。
if語句通過一個邏輯判斷條件是否成立來執行某些代碼行。if語句的形式:
if 判斷條件 : 條件成立時執行的語句寫在這里 else 條件不成立時執行的語句寫在這里
在if關鍵字后面是判斷條件,如果判斷條件成立,則執行緊跟if之后具有縮進格式的代碼,如果條件不成立,則執行緊隨else之后的具有縮進格式的代碼。如果條件不成立時不執行任何語句,這個else部分的代碼可以省略。這里的判斷條件可以是數學上的是否相等、是否大于、是否小于、是否大于等于、是否小于等于等等比較運算。
基本理解了【if】的作用和語法形式后,我們就一步一步地實現上述的程序需求吧。
根據1章節的需求場景描述,我們可以采用if語句來判斷條件是否成立,以選擇執行不同的語句,這些語句可以向屏幕輸出不同的內容。新建文件“nameandage.py”(VSCode中新建文件過程詳見《二、編程相關重要的基本概念》),然后在文件中輸入以下內容:
#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中 name = input("請輸入姓名:") #提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中 age = input("請輸入年齡:") #將字符串的年齡轉換為數字的年齡后,保存到變量age中 age = int(age) if age < 7 : #年齡小于7,執行輸出語句,注意需要縮進 print("你好,", name, "小朋友!")
我們可以點擊組合鍵【Ctrl+F5】,執行程序,然后在編輯器下部的區域輸入姓名【海綿寶寶】,年齡輸入【3】,程序執行后,變量name中保存的值時字符串【海綿寶寶】,變量age的值時數字【3】。由于【age < 7】(變量age的值是3,3小于7,條件成立)的條件成立,會執行【print("你好,", name, "小朋友!")】語句,因此會看到程序輸出【你好, 海綿寶寶 小朋友!】。我們可以再次運行程序,輸入姓名保持不變,輸入年齡時輸入【10】,運行程序后,由于【age < 7】(age的值是10,10大于7,條件不成立)的條件不成立,因此不會執行【print("你好,", name, "小朋友!")】語句,而且在該行代碼之后沒有任何代碼(這里沒有else部分代碼),程序執行【if】判斷后就結束了,因此我們不會看到程序有任何輸出。
當根據需求描述,當輸入【10】的時候,實際應該輸出【你好,XXX少年】才符合要求啊。那么應該怎么做呢?之前的程序判斷了【age < 7】的情況,那么我們照葫蘆畫瓢,我們判斷另外一種情況:【age < 15】的情況:
#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中 name = input("請輸入姓名:") #提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中 age = input("請輸入年齡:") #將字符串的年齡轉換為數字的年齡后,保存到變量age中 age = int(age) if age < 7 : #年齡小于7,執行輸出語句 print("你好,", name, "小朋友!") if age < 15 : #年齡小于10,執行輸出語句 print("你好,", name, "少年")
注意:【if ...... :】語句后面的代碼需要縮進,我們在后續的學習中再來講解這個代碼縮進的意義。
再次運行程序,當我們輸入年齡【10】,那么【age < 7】條件不成立,不會執行【print("你好,", name, "小朋友!")】(注意:#開頭的行為注釋行,注釋行是不會被執行的),【age < 15】條件成立,因此會執行【print("你好,", name, "少年")】,最后我們看到程序的輸出符合我們前面對程序的需求描述。
于是,我們根據需求描述,最終我們的程序代碼如下:
#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中 name = input("請輸入姓名:") #提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中 age = input("請輸入年齡:") #將字符串的年齡轉換為數字的年齡后,保存到變量age中 age = int(age) if age < 7 : #年齡小于7,執行輸出語句 print("你好,", name, "小朋友!") if age < 15 : #年齡小于10,執行輸出語句 print("你好,", name, "少年") if age < 18 : #年齡小于18,執行輸出語句 print("你好,", name, "青少年") if age < 40 : #年齡小于40,執行輸出語句 print("你好,", name, "青年") if age < 60 : #年齡小于60,執行輸出語句 print("你好,", name, "中年人") if age >= 60 : #年齡大于等于60,執行輸出語句 print("你好,", name, "老年人")
根據前面的需求場景描述,我們多次點擊【Ctrl+F5】組合鍵,多次運行程序,每次都輸入不同的年齡來檢驗我們的程序是否正確。
代碼編寫完成了,我們把鼠標移動到VSCode程序編輯器代碼【age = int(age)】所在行的行號前,在鼠標左側會出現一個暗紅色的小圓點,將鼠標繼續向左側移動,點擊暗紅色小圓點,這時暗紅色小圓點會變成高亮的紅色圓點,說明我們在程序對應代碼和添加了斷點。這個斷點的作用就是我們在執行程序時,如果執行到有斷點的行,程序會在斷點行處暫停,然后我們可以一步一步、一行一行地執行程序,通過觀察程序的執行情況,以便我們判斷程序是否根據我們期望的那樣子執行。通過點擊【F5】(或者點擊主菜單Run--->Start Debugging菜單項啟動程序調試),然后在【選擇調試配置】對話框中選擇【Python 文件 調試打開的Python文件】項,如下圖所示:
然后在編輯器底部程序運行窗口輸入姓名【海綿寶寶】、年齡【25】后,VSCode編輯器會在斷點所在行暫停,如下圖所示:
暫停的程序行是即將被執行、但還沒有執行的代碼行,暫停行的背景與其他行的背景有所不同。點擊左側的三角和蟲子的圖標,可以打開或關閉程序變量監視器,如下圖所示:
我們可以看到,當程序暫停時,有兩個變量age和name,變量值分別時字符串的【25】和字符串【海綿寶寶】,這個正好是我們剛剛輸入的內容。點擊【F10】鍵或鼠標點擊文本編輯器頂部調試工具條中的【】圖標,代碼行【age = int(age)】被執行,執行后,我們可以看到變量age中的值變成了數字25(值的前后沒有了一對')。之后之后程序將在代碼行【if age < 7 :】處暫停(該行代碼即將被執行但還沒有執行),由于該行條件不成立,程序將跳過代碼行【print("你好,", name, "小朋友!")】,再次點擊【F10】按鈕后,程序將在【if age < 15 :】行暫停,多次點擊【F10】后,在代碼行【if age < 40 :】處暫停,由于該條件成立,因此點擊【F10】后,程序將在代碼行【print("你好,", name, "青年")】處暫停,再次點擊【F10】鍵,編輯器底部的控制臺窗口將輸出【你好, 海綿寶寶 青年】的字符串。之后程序暫停在代碼行【if age < 60 :】處,多次點擊【F10】后,程序運行結束。
通過點擊但不執行按鈕,跟蹤代碼執行過程,我們發現一個問題:一旦【if age < 7 :】條件成立后,后續的條件就肯定不再不再成立了,當然也就無需再去判斷了,如果還進行判斷,除了浪費時間、占用計算機資源外,沒有任何意義,因此我們采用另外一中方式優化以下這個程序。
強烈建議同學們每次運行程序的時候,都是通過添加斷點,然后點擊【單步執行按鈕】或者【F10】完成程序的跟蹤執行,以便加速對程序執行的過程的理解,為后續學習打下基礎。
既然條件一旦成立,后續條件判斷就無需再次判斷,那么我們可以采用if-elif語句進行優化。基本的if-elif語句如下:
if 條件1 : 條件1成立時執行的語句 elif 條件2 : 條件2成立時執行的語句 elif 條件3 : 條件2成立時執行的語句 else 以上條件都不成立時執行的語句
根據以上if-elif語句的執行規則描述,我們可以將程序優化如下:
#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中 name = input("請輸入姓名:") #提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中 age = input("請輸入年齡:") #將字符串的年齡轉換為數字的年齡后,保存到變量age中 age = int(age) if age < 7 : #年齡小于7,執行輸出語句 print("你好,", name, "小朋友!") elif age < 15 : #年齡小于10,執行輸出語句 print("你好,", name, "少年") elif age < 18 : #年齡小于18,執行輸出語句 print("你好,", name, "青少年") elif age < 40 : #年齡小于40,執行輸出語句 print("你好,", name, "青年") elif age < 60 : #年齡小于60,執行輸出語句 print("你好,", name, "中年人") else : #年齡大于等于60,執行輸出語句 print("你好,", name, "老年人")
我們再次在代碼行【age = int(age)】前添加斷點,點擊【F5】鍵啟動程序調試,輸入【齊天大圣】和【16】,然后點擊【F10】鍵一步步執行。我們發現在經歷【age < 7】、【age < 15】和【age < 18】后,由于【age < 18】條件成立,打印出了“XXX青少年”的信息,而后續的【age < 40】和其他判斷均未被執行。
通過以上練習,我們完成了if語句以及通過單步執行語句,跟蹤程序運行的過程。而跟蹤程序運行的方法時我們在整個編程過程中非常重要的排除問題的重要手段,當程序沒有按照我們設計的過程運行時,我們可以跟蹤程序代碼的執行過程。
強烈建議同學們每次運行程序的時候,都是通過添加斷點,然后點擊【單步執行按鈕】或者【F10】完成程序的跟蹤執行,以便加速對程序執行的過程的理解,為后續學習打下基礎。
以上就是python編程中如何選擇執行語句與程序調試,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。