下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
例3-20生成金字塔圖形例3-20生成金字塔圖形本例將編寫程序,實現(xiàn)根據(jù)輸入的數(shù)字和符號生成金字塔圖形。本例代碼的實現(xiàn)原理可以分為以下幾個關(guān)鍵部分。(1)輸入驗證和錯誤處理:使用while循環(huán)和try-except結(jié)構(gòu)來確保用戶輸入有效的金字塔層數(shù)。通過int()函數(shù)嘗試將輸入轉(zhuǎn)換為整數(shù),如果失敗則捕獲ValueError異常。使用條件語句檢查輸入是否在1到10的范圍內(nèi)。(2)金字塔繪制邏輯:使用for循環(huán)遍歷從1到金字塔高度的每一層。每一層的空格數(shù)量為:金字塔高度減去當(dāng)前層數(shù)。每一層的符號數(shù)量為:2*當(dāng)前層數(shù)-1。使用字符串乘法(""*空格數(shù))和(symbol*符號數(shù))來生成每一行的內(nèi)容。使用f-string格式化字符串來組合空格和符號,并打印每一行。(3)遞歸和程序控制流:繪制完金字塔后,詢問用戶是否繼續(xù)。如果用戶輸入不是x(忽略大小寫),則遞歸調(diào)用draw_pyramid()函數(shù),重新開始繪制過程。如果用戶輸入x,則打印告別信息并結(jié)束程序。(4)模塊化和入口點:使用if__name__=="__main__":結(jié)構(gòu)作為程序的入口點。這確保了當(dāng)腳本作為主程序運行時才執(zhí)行draw_pyramid()函數(shù),而作為模塊導(dǎo)入時不會自動執(zhí)行。(5)用戶交互設(shè)計:使用input()函數(shù)獲取用戶輸入,包括金字塔高度、繪制符號和繼續(xù)/退出選擇。提供清晰的提示信息,指導(dǎo)用戶操作。以上實現(xiàn)方式結(jié)合了輸入驗證、錯誤處理、字符串操作、循環(huán)控制和遞歸,創(chuàng)造了一個交互式、用戶友好且功能完整的金字塔繪制程序。程序設(shè)計流程展示了如何將復(fù)雜的任務(wù)分解成smaller、可管理的步驟,并通過函數(shù)封裝來組織代碼結(jié)構(gòu)。#-*-coding:utf-8-*-defdraw_pyramid():"""繪制金字塔圖形的函數(shù)"""whileTrue:try:height=int(input("請輸入您要顯示的金字塔層數(shù)(1~10):"))if1<=height<=10:breakelse:print("請輸入1到10之間的整數(shù)。")exceptValueError:print("請輸入有效的整數(shù)。")symbol=input("請輸入要顯示的符號:")forlevelinrange(1,height+1):spaces=""*(height-level)symbols=symbol*(2*level-1)print(f"{spaces}{symbols}")choice=input("按x鍵離開,按任意鍵繼續(xù):")ifchoice.lower()!="x":draw_pyramid()else:print("再見!")#程序入口if__name__=="__main__":print("程序名稱:輸出金字塔圖形")draw_pyramid()輸出結(jié)果:程序名稱:輸出金字塔圖形請輸入您要顯示的金字塔層數(shù)(1~10):8↙請輸入要顯示的符號:+↙++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++按x鍵離開,按任意鍵繼續(xù):x↙代碼解釋:(1)定義繪制金字塔的函數(shù)defdraw_pyramid():定義了一個名為draw_pyramid的函數(shù),用于繪制金字塔圖形。(2)獲取金字塔的層數(shù)whileTrue:try:height=int(input("請輸入您要顯示的金字塔層數(shù)(1~10):"))if1<=height<=10:breakelse:print("請輸入1到10之間的整數(shù)。")exceptValueError:print("請輸入有效的整數(shù)。")使用whileTrue循環(huán),不斷提示用戶輸入金字塔的層數(shù),直到輸入有效為止。使用try-except塊捕獲可能的輸入錯誤:①如果用戶輸入的不是整數(shù),會觸發(fā)ValueError,提示用戶輸入有效的整數(shù)。②如果用戶輸入的整數(shù)不在1到10之間,提示用戶重新輸入。一旦輸入有效,通過break跳出循環(huán)。(3)獲取顯示符號symbol=input("請輸入要顯示的符號:")提示用戶輸入一個符號,用于繪制金字塔。(4)繪制金字塔forlevelinrange(1,height+1):spaces=""*(height-level)symbols=symbol*(2*level-1)print(f"{spaces}{symbols}")使用for循環(huán),從第1層到第height層。每一層的繪制邏輯:①spaces:計算當(dāng)前層前面的空格數(shù)量,公式為height-level。②symbols:計算當(dāng)前層的符號數(shù)量,公式為2*level-1。③使用格式化字符串f"{spaces}{symbols}",將空格和符號拼接后打印。(5)用戶選擇是否繼續(xù)choice=input("按x鍵離開,按任意鍵繼續(xù):")ifchoice.lower()!="x":draw_pyramid()else:print("再見!")提示用戶輸入選擇,按x鍵退出,按任意鍵繼續(xù)繪制金字塔。如果用戶輸入的不是x(忽略大小寫),則遞歸調(diào)用draw_pyramid()函數(shù),重新開始繪制。如果用戶輸入x,打印“再見!”并退出程序。(6)程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 戶外廣告牌防雨加固協(xié)議
- 2026年浙江育英職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫參考答案詳解
- 2026年重慶機電職業(yè)技術(shù)大學(xué)單招職業(yè)技能考試題庫及完整答案詳解1套
- 2026年臨汾職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案詳解一套
- 承攬合同協(xié)議質(zhì)量保證條款
- 2026年寧波工程學(xué)院單招職業(yè)適應(yīng)性測試題庫及參考答案詳解一套
- 2026年重慶人文科技學(xué)院單招職業(yè)適應(yīng)性考試題庫含答案詳解
- 2026年承德護理職業(yè)學(xué)院單招職業(yè)技能考試題庫及答案詳解1套
- 2026年浙江特殊教育職業(yè)學(xué)院單招職業(yè)技能測試題庫參考答案詳解
- 2026年遼寧裝備制造職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案詳解一套
- 日歷表2026年日歷 英文版 橫向排版 周一開始
- 2025版人教版高中物理精講精練必修1專題強化03:水平和傾斜傳送帶模型 原卷版
- 統(tǒng)編版四年級上冊語文期末專題復(fù)習(xí)課件2-6-文言文之超級訪問
- 湘少版英語-6年級上冊-單詞表(帶音標(biāo))
- 新概念英語第一冊隨堂練習(xí)-Lesson53~54 有答案
- 2020年智慧樹知道網(wǎng)課《非英語國家文化(山東聯(lián)盟)》課后章節(jié)測試滿分答案
- 壅水計算完整版本
- 07FJ02防空地下室建筑構(gòu)造
- 外研版(三起)(2024)三年級上冊英語Unit 2 My school things單元測試卷(含答案)
- 化工建設(shè)綜合項目審批作業(yè)流程圖
- 馬工程《經(jīng)濟法學(xué)》教學(xué)
評論
0/150
提交評論