《Python編程入門與實踐(微視頻版)》代碼 例3-20 生成金字塔圖形_第1頁
《Python編程入門與實踐(微視頻版)》代碼 例3-20 生成金字塔圖形_第2頁
《Python編程入門與實踐(微視頻版)》代碼 例3-20 生成金字塔圖形_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論