溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python編程中如何選擇執(zhí)行語句與程序調(diào)試

發(fā)布時(shí)間:2021-10-09 15:22:00 來源:億速云 閱讀:211 作者:柒染 欄目:編程語言

本篇文章給大家分享的是有關(guān)python編程中如何選擇執(zhí)行語句與程序調(diào)試,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1、程序需求描述

現(xiàn)在,我們來編寫這樣一段程序:程序運(yùn)行后,首先提示執(zhí)行者輸入姓名,然后提示用戶輸入年齡。如果年齡小于7,輸出“你好,XXX小朋友”(注意:這里XXX是剛剛輸入的姓名);如果年齡小于等于15歲,輸出“你好,XXX少年”;如果年齡小于18歲,輸出“你好,XXX青少年”;如果年齡小于40歲,輸出“你好,XXX青年”;如果年齡小于60歲,輸出“你好,XXX中年人”;如果年齡大于等于60歲,則輸出“你好,XXX老年人”。
我們分析以上程序需求場(chǎng)景:輸入姓名、年齡后,根據(jù)年齡段把不同的文字(小朋友、少年、青少年、青年、中年人、老年人等)拼接到“你好,XXX”之后。
根據(jù)之前的經(jīng)驗(yàn),可以用input()函數(shù)(這種帶有()的語句都叫函數(shù)調(diào)用,這里我們記住這個(gè)“函數(shù)”的說法就可以了,至于什么時(shí)函數(shù),我們后續(xù)會(huì)詳細(xì)講解)獲取鍵盤輸入,print()函數(shù)時(shí)在屏幕輸出相關(guān)內(nèi)容。

2、if語句

if語句通過一個(gè)邏輯判斷條件是否成立來執(zhí)行某些代碼行。if語句的形式:

if 判斷條件 :
    條件成立時(shí)執(zhí)行的語句寫在這里
else
    條件不成立時(shí)執(zhí)行的語句寫在這里

在if關(guān)鍵字后面是判斷條件,如果判斷條件成立,則執(zhí)行緊跟if之后具有縮進(jìn)格式的代碼,如果條件不成立,則執(zhí)行緊隨else之后的具有縮進(jìn)格式的代碼。如果條件不成立時(shí)不執(zhí)行任何語句,這個(gè)else部分的代碼可以省略。這里的判斷條件可以是數(shù)學(xué)上的是否相等、是否大于、是否小于、是否大于等于、是否小于等于等等比較運(yùn)算。
基本理解了【if】的作用和語法形式后,我們就一步一步地實(shí)現(xiàn)上述的程序需求吧。

3、程序?qū)崿F(xiàn)

根據(jù)1章節(jié)的需求場(chǎng)景描述,我們可以采用if語句來判斷條件是否成立,以選擇執(zhí)行不同的語句,這些語句可以向屏幕輸出不同的內(nèi)容。新建文件“nameandage.py”(VSCode中新建文件過程詳見《二、編程相關(guān)重要的基本概念》),然后在文件中輸入以下內(nèi)容:

#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中
name = input("請(qǐng)輸入姓名:")
#提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中
age = input("請(qǐng)輸入年齡:")
#將字符串的年齡轉(zhuǎn)換為數(shù)字的年齡后,保存到變量age中
age = int(age)

if age < 7 :
    #年齡小于7,執(zhí)行輸出語句,注意需要縮進(jìn)
    print("你好,", name, "小朋友!")

我們可以點(diǎn)擊組合鍵【Ctrl+F5】,執(zhí)行程序,然后在編輯器下部的區(qū)域輸入姓名【海綿寶寶】,年齡輸入【3】,程序執(zhí)行后,變量name中保存的值時(shí)字符串【海綿寶寶】,變量age的值時(shí)數(shù)字【3】。由于【age < 7】(變量age的值是3,3小于7,條件成立)的條件成立,會(huì)執(zhí)行【print("你好,", name, "小朋友!")】語句,因此會(huì)看到程序輸出【你好, 海綿寶寶 小朋友!】。我們可以再次運(yùn)行程序,輸入姓名保持不變,輸入年齡時(shí)輸入【10】,運(yùn)行程序后,由于【age < 7】(age的值是10,10大于7,條件不成立)的條件不成立,因此不會(huì)執(zhí)行【print("你好,", name, "小朋友!")】語句,而且在該行代碼之后沒有任何代碼(這里沒有else部分代碼),程序執(zhí)行【if】判斷后就結(jié)束了,因此我們不會(huì)看到程序有任何輸出。
當(dāng)根據(jù)需求描述,當(dāng)輸入【10】的時(shí)候,實(shí)際應(yīng)該輸出【你好,XXX少年】才符合要求啊。那么應(yīng)該怎么做呢?之前的程序判斷了【age < 7】的情況,那么我們照葫蘆畫瓢,我們判斷另外一種情況:【age < 15】的情況:

#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中
name = input("請(qǐng)輸入姓名:")
#提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中
age = input("請(qǐng)輸入年齡:")
#將字符串的年齡轉(zhuǎn)換為數(shù)字的年齡后,保存到變量age中
age = int(age)

if age < 7 :
    #年齡小于7,執(zhí)行輸出語句
    print("你好,", name, "小朋友!")

if age < 15 :
    #年齡小于10,執(zhí)行輸出語句
    print("你好,", name, "少年")

注意:【if ...... :】語句后面的代碼需要縮進(jìn),我們?cè)诤罄m(xù)的學(xué)習(xí)中再來講解這個(gè)代碼縮進(jìn)的意義。
再次運(yùn)行程序,當(dāng)我們輸入年齡【10】,那么【age < 7】條件不成立,不會(huì)執(zhí)行【print("你好,", name, "小朋友!")】(注意:#開頭的行為注釋行,注釋行是不會(huì)被執(zhí)行的),【age < 15】條件成立,因此會(huì)執(zhí)行【print("你好,", name, "少年")】,最后我們看到程序的輸出符合我們前面對(duì)程序的需求描述。
于是,我們根據(jù)需求描述,最終我們的程序代碼如下:

#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中
name = input("請(qǐng)輸入姓名:")
#提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中
age = input("請(qǐng)輸入年齡:")
#將字符串的年齡轉(zhuǎn)換為數(shù)字的年齡后,保存到變量age中
age = int(age)

if age < 7 :
    #年齡小于7,執(zhí)行輸出語句
    print("你好,", name, "小朋友!")
if age < 15 :
    #年齡小于10,執(zhí)行輸出語句
    print("你好,", name, "少年")
if age < 18 :
    #年齡小于18,執(zhí)行輸出語句
    print("你好,", name, "青少年")
if age < 40 :
    #年齡小于40,執(zhí)行輸出語句
    print("你好,", name, "青年")
if age < 60 :
    #年齡小于60,執(zhí)行輸出語句
    print("你好,", name, "中年人")
if age >= 60 :
    #年齡大于等于60,執(zhí)行輸出語句
    print("你好,", name, "老年人")

根據(jù)前面的需求場(chǎng)景描述,我們多次點(diǎn)擊【Ctrl+F5】組合鍵,多次運(yùn)行程序,每次都輸入不同的年齡來檢驗(yàn)我們的程序是否正確。

4、調(diào)試程序

代碼編寫完成了,我們把鼠標(biāo)移動(dòng)到VSCode程序編輯器代碼【age = int(age)】所在行的行號(hào)前,在鼠標(biāo)左側(cè)會(huì)出現(xiàn)一個(gè)暗紅色的小圓點(diǎn),將鼠標(biāo)繼續(xù)向左側(cè)移動(dòng),點(diǎn)擊暗紅色小圓點(diǎn),這時(shí)暗紅色小圓點(diǎn)會(huì)變成高亮的紅色圓點(diǎn),說明我們?cè)诔绦驅(qū)?yīng)代碼和添加了斷點(diǎn)。這個(gè)斷點(diǎn)的作用就是我們?cè)趫?zhí)行程序時(shí),如果執(zhí)行到有斷點(diǎn)的行,程序會(huì)在斷點(diǎn)行處暫停,然后我們可以一步一步、一行一行地執(zhí)行程序,通過觀察程序的執(zhí)行情況,以便我們判斷程序是否根據(jù)我們期望的那樣子執(zhí)行。通過點(diǎn)擊【F5】(或者點(diǎn)擊主菜單Run--->Start Debugging菜單項(xiàng)啟動(dòng)程序調(diào)試),然后在【選擇調(diào)試配置】對(duì)話框中選擇【Python 文件 調(diào)試打開的Python文件】項(xiàng),如下圖所示:
python編程中如何選擇執(zhí)行語句與程序調(diào)試
然后在編輯器底部程序運(yùn)行窗口輸入姓名【海綿寶寶】、年齡【25】后,VSCode編輯器會(huì)在斷點(diǎn)所在行暫停,如下圖所示:
python編程中如何選擇執(zhí)行語句與程序調(diào)試
暫停的程序行是即將被執(zhí)行、但還沒有執(zhí)行的代碼行,暫停行的背景與其他行的背景有所不同。點(diǎn)擊左側(cè)的三角和蟲子的圖標(biāo),可以打開或關(guān)閉程序變量監(jiān)視器,如下圖所示:
python編程中如何選擇執(zhí)行語句與程序調(diào)試
我們可以看到,當(dāng)程序暫停時(shí),有兩個(gè)變量age和name,變量值分別時(shí)字符串的【25】和字符串【海綿寶寶】,這個(gè)正好是我們剛剛輸入的內(nèi)容。點(diǎn)擊【F10】鍵或鼠標(biāo)點(diǎn)擊文本編輯器頂部調(diào)試工具條中的【python編程中如何選擇執(zhí)行語句與程序調(diào)試】圖標(biāo),代碼行【age = int(age)】被執(zhí)行,執(zhí)行后,我們可以看到變量age中的值變成了數(shù)字25(值的前后沒有了一對(duì)')。之后之后程序?qū)⒃诖a行【if age < 7 :】處暫停(該行代碼即將被執(zhí)行但還沒有執(zhí)行),由于該行條件不成立,程序?qū)⑻^代碼行【print("你好,", name, "小朋友!")】,再次點(diǎn)擊【F10】按鈕后,程序?qū)⒃凇緄f age < 15 :】行暫停,多次點(diǎn)擊【F10】后,在代碼行【if age < 40 :】處暫停,由于該條件成立,因此點(diǎn)擊【F10】后,程序?qū)⒃诖a行【print("你好,", name, "青年")】處暫停,再次點(diǎn)擊【F10】鍵,編輯器底部的控制臺(tái)窗口將輸出【你好, 海綿寶寶 青年】的字符串。之后程序暫停在代碼行【if age < 60 :】處,多次點(diǎn)擊【F10】后,程序運(yùn)行結(jié)束。
通過點(diǎn)擊但不執(zhí)行按鈕,跟蹤代碼執(zhí)行過程,我們發(fā)現(xiàn)一個(gè)問題:一旦【if age < 7 :】條件成立后,后續(xù)的條件就肯定不再不再成立了,當(dāng)然也就無需再去判斷了,如果還進(jìn)行判斷,除了浪費(fèi)時(shí)間、占用計(jì)算機(jī)資源外,沒有任何意義,因此我們采用另外一中方式優(yōu)化以下這個(gè)程序。
強(qiáng)烈建議同學(xué)們每次運(yùn)行程序的時(shí)候,都是通過添加斷點(diǎn),然后點(diǎn)擊【單步執(zhí)行按鈕】或者【F10】完成程序的跟蹤執(zhí)行,以便加速對(duì)程序執(zhí)行的過程的理解,為后續(xù)學(xué)習(xí)打下基礎(chǔ)。

5、if-elif語句

既然條件一旦成立,后續(xù)條件判斷就無需再次判斷,那么我們可以采用if-elif語句進(jìn)行優(yōu)化。基本的if-elif語句如下:

if 條件1 :
    條件1成立時(shí)執(zhí)行的語句
elif 條件2 :
    條件2成立時(shí)執(zhí)行的語句
elif 條件3 :
    條件2成立時(shí)執(zhí)行的語句
else
    以上條件都不成立時(shí)執(zhí)行的語句

根據(jù)以上if-elif語句的執(zhí)行規(guī)則描述,我們可以將程序優(yōu)化如下:

#提示,等待輸入姓名,輸入后存入名叫name的盒子(變量)中
name = input("請(qǐng)輸入姓名:")
#提示,等待輸入年齡,輸入后存入名叫age的盒子(變量)中
age = input("請(qǐng)輸入年齡:")
#將字符串的年齡轉(zhuǎn)換為數(shù)字的年齡后,保存到變量age中
age = int(age)

if age < 7 :
    #年齡小于7,執(zhí)行輸出語句
    print("你好,", name, "小朋友!")
elif age < 15 :
    #年齡小于10,執(zhí)行輸出語句
    print("你好,", name, "少年")
elif age < 18 :
    #年齡小于18,執(zhí)行輸出語句
    print("你好,", name, "青少年")
elif age < 40 :
    #年齡小于40,執(zhí)行輸出語句
    print("你好,", name, "青年")
elif age < 60 :
    #年齡小于60,執(zhí)行輸出語句
    print("你好,", name, "中年人")
else :
    #年齡大于等于60,執(zhí)行輸出語句
    print("你好,", name, "老年人")

我們?cè)俅卧诖a行【age = int(age)】前添加斷點(diǎn),點(diǎn)擊【F5】鍵啟動(dòng)程序調(diào)試,輸入【齊天大圣】和【16】,然后點(diǎn)擊【F10】鍵一步步執(zhí)行。我們發(fā)現(xiàn)在經(jīng)歷【age < 7】、【age < 15】和【age < 18】后,由于【age < 18】條件成立,打印出了“XXX青少年”的信息,而后續(xù)的【age < 40】和其他判斷均未被執(zhí)行。

通過以上練習(xí),我們完成了if語句以及通過單步執(zhí)行語句,跟蹤程序運(yùn)行的過程。而跟蹤程序運(yùn)行的方法時(shí)我們?cè)谡麄€(gè)編程過程中非常重要的排除問題的重要手段,當(dāng)程序沒有按照我們?cè)O(shè)計(jì)的過程運(yùn)行時(shí),我們可以跟蹤程序代碼的執(zhí)行過程。
強(qiáng)烈建議同學(xué)們每次運(yùn)行程序的時(shí)候,都是通過添加斷點(diǎn),然后點(diǎn)擊【單步執(zhí)行按鈕】或者【F10】完成程序的跟蹤執(zhí)行,以便加速對(duì)程序執(zhí)行的過程的理解,為后續(xù)學(xué)習(xí)打下基礎(chǔ)。

以上就是python編程中如何選擇執(zhí)行語句與程序調(diào)試,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI