版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Python語(yǔ)言程序課程設(shè)計(jì)(報(bào)告)《Python語(yǔ)言程序課程設(shè)計(jì)》(報(bào)告)題目:熊貓寶寶的繪制
摘要本文主要設(shè)計(jì)了如何利用Python實(shí)現(xiàn)圖形用戶界面設(shè)計(jì)。該設(shè)計(jì)的硬件平臺(tái)是計(jì)算進(jìn)。軟件采用Python語(yǔ)言編程。實(shí)現(xiàn)的主要功能是繪制各種圖形及實(shí)現(xiàn)編寫各種界面,本設(shè)計(jì)的優(yōu)點(diǎn)是使用戶方便快捷的使用電腦,可以應(yīng)用到界面繪制,游戲設(shè)計(jì)等領(lǐng)域。通過(guò)Python語(yǔ)言,可以看到相比其他語(yǔ)言,Python具有以下優(yōu)點(diǎn):(1)語(yǔ)法簡(jiǎn)單,(2)Python是開(kāi)源的,(3)通用且靈活,(4)具有高度的可擴(kuò)展性,(5)豐富的類庫(kù)。關(guān)鍵詞:turtle庫(kù)Python語(yǔ)言用戶界面設(shè)計(jì)目錄第1章概述 第1章概述1.1課題選擇Python自身強(qiáng)大的優(yōu)勢(shì)決定其不可限量的發(fā)展前景。Python作為一種通用語(yǔ)言,幾乎可以用在任何領(lǐng)域和場(chǎng)合,角色幾乎是無(wú)限的。Python具有簡(jiǎn)單、易學(xué)、免費(fèi)、開(kāi)源、可移植、可擴(kuò)展、可嵌入、面向?qū)ο蟮葍?yōu)點(diǎn),它的面向?qū)ο笊踔帘萰ava和C#.net更徹底。它是一種很靈活的語(yǔ)言,能幫你輕松完成編程工作。強(qiáng)大的類庫(kù)支持,使編寫文件處理、正則表達(dá)式、網(wǎng)絡(luò)連接等程序變得相當(dāng)容易。能運(yùn)行在多種計(jì)算機(jī)平臺(tái)和操作系統(tǒng)中,如unix、windows、MacOS、OS/2等等,并可作為一種原型開(kāi)發(fā)語(yǔ)言,加快大型程序的開(kāi)發(fā)速度。python已經(jīng)入侵到世界的各個(gè)領(lǐng)域,web開(kāi)發(fā),桌面軟件開(kāi)發(fā),大數(shù)據(jù),運(yùn)維,爬蟲(chóng),數(shù)據(jù)科學(xué),人工智能,人們對(duì)于它的喜愛(ài)程度與日俱增,我想,根本原因在于它是一種平民語(yǔ)言,拉近了非計(jì)算機(jī)專業(yè)人士與計(jì)算機(jī)的距離。最后,Python在未來(lái)的發(fā)展中還有很大的潛力。隨著人工智能、大數(shù)據(jù)、物聯(lián)網(wǎng)等領(lǐng)域的發(fā)展,Python的應(yīng)用也將越來(lái)越廣泛。同時(shí),Python的開(kāi)發(fā)社區(qū)也在不斷壯大,越來(lái)越多的人開(kāi)始學(xué)習(xí)和使用Python。Python未來(lái)的發(fā)展將會(huì)更加多樣化,包括但不限于Web開(kāi)發(fā)、數(shù)據(jù)科學(xué)、物聯(lián)網(wǎng)、自動(dòng)化等方向。1.2設(shè)計(jì)目的圖形用戶界面是一種人與計(jì)算機(jī)通信的界面顯示格式,允許用戶使用鼠標(biāo)等輸入設(shè)備操縱屏幕上的圖標(biāo)或菜單選項(xiàng),已選擇命令調(diào)用文件過(guò)執(zhí)行其它一些日常任務(wù)與通過(guò)鍵盤輸入文本或字符命令來(lái)完成例行任務(wù)的字符界面相比,圖形界面用戶界面有許多優(yōu)點(diǎn),圖形用戶界面由窗口,下拉菜單對(duì)話框及其相應(yīng)的控制機(jī)制構(gòu)成,在各種新式應(yīng)用程序中都是標(biāo)準(zhǔn)化的,即相擁同的操作總是以同樣的方式來(lái)完成。在圖形用戶界面,用戶看到和操作的都是圖形對(duì)象,應(yīng)用的式計(jì)算及圖形學(xué)的技術(shù),GUI的廣泛應(yīng)用是當(dāng)今計(jì)算機(jī)發(fā)展的重大成就之一,它極大地方便了非專業(yè)用戶的使用,人們從此不再需要死記硬背大量的命令。1.3設(shè)計(jì)工具Python3.3第2章設(shè)計(jì)內(nèi)容2.1題目1熊貓寶寶的繪制2.1.1設(shè)計(jì)任務(wù)及要求利用turtle庫(kù)實(shí)現(xiàn)熊貓寶寶的繪制2.1.2程序代碼importturtleastt.title("熊貓寶寶")t.shape("classic")t.pensize(3)t.color("black")t.fillcolor("black")t.speed(100)t.hideturtle()#左耳t.penup()t.goto(-105,97)t.setheading(160)t.begin_fill()t.pendown()t.circle(-30,230)t.setheading(180)t.circle(37,90)t.end_fill()#右耳t.penup()t.goto(105,97)t.setheading(20)t.begin_fill()t.pendown()t.circle(30,230)t.setheading(0)t.circle(-37,90)t.end_fill()#頭部輪廓t.penup()t.goto(-67,140)t.setheading(30)t.pendown()t.circle(-134,60)t.penup()t.goto(-50,-25)t.setheading(180)t.pendown()t.circle(-100,30)t.circle(-30,90)t.setheading(100)t.circle(-200,20)t.penup()t.goto(50,-25)t.setheading(0)t.pendown()t.circle(100,30)t.circle(30,90)t.setheading(80)t.circle(200,20)
#兩熊貓眼#左眼t.penup()t.goto(-90,25)t.setheading(-45)t.begin_fill()t.pendown()#橢圓繪制技巧a=0.2foriinrange(120):
if
0<=i<30or60<=i<90:
a=a+0.1
t.lt(3)
#向左轉(zhuǎn)3度
t.fd(a)
#向前走a的步長(zhǎng)
else:
a=a-0.1
t.lt(3)
t.fd(a)t.end_fill()t.fillcolor("white")t.penup()t.goto(-53,43)t.setheading(0)t.begin_fill()t.pendown()t.circle(13,360)t.end_fill()t.penup()t.pensize(4)t.goto(-60,57)t.setheading(30)t.pendown()t.circle(-12,60)#右眼t.penup()t.goto(90,25)t.setheading(45)t.pensize(2)t.fillcolor("black")t.begin_fill()t.pendown()#橢圓繪制技巧a=0.2foriinrange(120):
if
0<=i<30or60<=i<90:
a=a+0.1
t.lt(3)
#向左轉(zhuǎn)3度
t.fd(a)
#向前走a的步長(zhǎng)
else:
a=a-0.1
t.lt(3)
t.fd(a)t.end_fill()t.fillcolor("white")t.penup()t.goto(53,43)t.setheading(0)t.begin_fill()t.pendown()t.circle(13,360)t.end_fill()t.penup()t.pensize(4)t.goto(60,57)t.setheading(150)t.pendown()t.circle(12,60)#鼻子和嘴吧t.penup()t.goto(-16,20)t.setheading(-90)t.fillcolor("black")t.begin_fill()t.pendown()a=0.2foriinrange(120):
if
0<=i<30or60<=i<90:
a
=a+0.03
t.lt(3)
t.fd(a)
else:
a
=a-0.03
t.lt(3)
t.fd(a)t.end_fill()t.penup()t.goto(-24,0)t.setheading(-60)t.pendown()t.circle(28,120)#熊肢體#左肢t.penup()t.goto(-65,-24)t.setheading(-140)t.begin_fill()t.pendown()t.circle(100,40)t.setheading(180)t.circle(30,40)t.setheading(-40)t.circle(40,40)t.setheading(-150)a=0.5foriinrange(120):
if
0<=i<30or60<=i<90:
a=a+0.05
t.lt(3)
#向左轉(zhuǎn)3度
t.fd(a)
#向前走a的步長(zhǎng)
elif
30<=i<60or90<=i<100:
a=a-0.05
t.lt(3)
t.fd(a)t.setheading(93)t.circle(-150,30)t.end_fill()
t.penup()t.goto(-85,-115)t.setheading(-150)t.color("gray","gray")t.begin_fill()t.pendown()a=0.3foriinrange(120):
if
0<=i<30or60<=i<90:
a=a+0.03
t.lt(3)
#向左轉(zhuǎn)3度
t.fd(a)
#向前走a的步長(zhǎng)
else:
a=a-0.03
t.lt(3)
t.fd(a)t.end_fill()#每個(gè)腳趾繪制函數(shù)deftoe(x,y):
t.begin_fill()
t.goto(x,y)
t.circle(3,360)
t.end_fill()
t.penup()toe(-98,-120)toe(-96,-110)toe(-88,-105)toe(-80,-105)
#右肢t.color("black")t.penup()t.goto(65,-24)t.setheading(-40)t.begin_fill()t.pendown()t.circle(-100,40)t.setheading(0)t.circle(-30,40)t.setheading(-140)t.circle(-40,40)t.setheading(-30)a=0.5foriinrange(120):
if
0<=i<30or60<=i<90:
a=a+0.05
t.rt(3)
#向左轉(zhuǎn)3度
t.fd(a)
#向前走a的步長(zhǎng)
elif
30<=i<60or90<=i<100:
a=a-0.05
t.rt(3)
t.fd(a)t.setheading(87)t.circle(150,30)t.end_fill()
t.penup()t.goto(85,-115)t.setheading(150)t.color("gray","gray")t.begin_fill()t.pendown()a=0.3foriinrange(120):
if
0<=i<30or60<=i<90:
a=a+0.03
t.lt(3)
#向左轉(zhuǎn)3度
t.fd(a)
#向前走a的步長(zhǎng)
else:
a=a-0.03
t.lt(3)
t.fd(a)t.end_fill()
t.penup()toe(98,-120)toe(96,-110)toe(88,-105)toe(80,-105)
t.goto(-57,-140)t.color("black")t.setheading(-20)t.pendown()t.circle(165,40)
t.penup()t.goto(0,180)t.write("Pandasarethemostlovelyanimals",align="center"
,font
=("Times",18,"bold"))t.done()2.1.3編譯調(diào)試及運(yùn)行結(jié)果圖2.1熊貓運(yùn)行結(jié)果2.2題目2計(jì)算器的編寫2.2.1設(shè)計(jì)任務(wù)及要求利用tkinter模塊實(shí)現(xiàn)具有加減乘除功能的計(jì)算器2.2.2程序代碼importtkinterastk
classCalculate(tk.Frame):
def
__init__(self,parent=None):
"""構(gòu)造函數(shù)"""
tk.Frame.__init__(self,parent)
self.pack()
self.startOfNextOperand
=True
#開(kāi)始輸入下一個(gè)操作數(shù)
#
顯示運(yùn)算表達(dá)式
self.expr
=tk.StringVar()
self.expr.set('')
self.exprLabel
=tk.Label(self,font=('Helvetica',20),
fg
='#f40',width=42,anchor='w',textvariable=self.expr)
self.exprLabel.grid(row
=0,column=0,columnspan=4)
#
顯示結(jié)果
self.result
=tk.StringVar()
self.result.set(0)
self.resultLabel
=
tk.Label(self,font=('Helvetica',20),
width
=42,anchor='e',textvariable=self.result)
self.resultLabel.grid(row
=1,column=0,columnspan=4)
#
計(jì)算器按鈕的按鈕,使用二維列表表示
buttons
=[['CE','C','←','/'],
['7',
'8','9','×'],
['4',
'5','6','-'],
['1',
'2','3','+'],
['±',
'0','.','=']]
#
創(chuàng)建和布局3到7行各個(gè)按鈕
for
rinrange(5):
for
cinrange(4):
#
定義事件處理函數(shù)cmd(),默認(rèn)參數(shù)為按鈕標(biāo)簽buttons[r][c]
def
cmd(key=buttons[r][c]):
self.click(key)
if(r
==0orc==3):
button
=tk.Button(self,text=buttons[r][c],bg='#008c8c',fg='#fff',
width=15,
font=('Helvetica',15),command=cmd)
else:
button
=tk.Button(self,text=buttons[r][c],bg='#fff',fg='#666',
width=15,
font=('Helvetica',15),command=cmd)
button.grid(row
=r+2,column=c)
def
click(self,key):
"""事件處理"""
if
key=='=':
#按等號(hào)鍵時(shí),求值,并顯示結(jié)果
result
=eval(self.expr.get()+self.result.get())
self.result.set(result)
self.expr.set('')
self.startOfNextOperand
=True
elif
keyin'+-/×':
if
key=='×':key='*'
resultExpr
=self.expr.get()+self.result.get()+key
self.expr.set(resultExpr)
self.result.set(0)
self.startOfNextOperand
=True
elif
key=='C':
#全部清空,回到初始狀態(tài)
self.expr.set('')
self.result.set(0)
elif
key=='CE':
#清空當(dāng)前輸入
self.result.set(0)
elif
key=='←':
oldnum
=self.result.get()
if
len(oldnum)==1:#只有一個(gè)字符
newnum=0
else:
newnum
=oldnum[:-1]
self.result.set(newnum)
elif
key=='±':
#正負(fù)號(hào),切換正負(fù)號(hào)
oldnum
=self.result.get()
#獲取原來(lái)的值
if
oldnum[0]=='-':
newnum
=oldnum[1:]
else:
newnum
='-'+oldnum
self.result.set(newnum)
else:
#按數(shù)字或者小數(shù)點(diǎn)鍵
if
self.startOfNextOperand:
self.result.set(0)
self.startOfNextOperand
=False
oldnum
=self.result.get()
#獲取原來(lái)的值
if
oldnum=='0':
self.result.set(key)
else:
newnum
=oldnum+key
self.result.set(newnum)
if__name__=='__main__':
root
=tk.Tk()
root.title('簡(jiǎn)易計(jì)算器')
calculate
=Calculate(root)root.mainloop()2.2.3編程調(diào)試及運(yùn)行結(jié)果圖2.2.1計(jì)算器界面圖2.2.2計(jì)算其運(yùn)行結(jié)果2.3題目3五環(huán)的繪制2.3.1設(shè)計(jì)任務(wù)及要求利用turtle庫(kù)實(shí)現(xiàn)奧運(yùn)五環(huán)的繪制2.3.2程序代碼importturtleturtle.showturtle()turtle.width(10)turtle.color("black")turtle.circle(50)turtle.penup()turtle.goto(110,0)turtle.color("red")turtle.pendown()turtle.circle(50)turtle.penup()turtle.goto(-110,0)turtle.color("blue")turtle.pendown()turtle.circle(50)turtle.penup()turtle.goto(-55,-60)turtle.color("yellow")turtle.pendown()turtle.circle(50)turtle.penup()turtle.goto(55,-60)turtle.color("green")turtle.pendown()turtle.circle(50)turtle.done()2.3.3編程調(diào)試及運(yùn)行結(jié)果圖2.3奧運(yùn)五環(huán)運(yùn)行結(jié)果第3章總結(jié)其實(shí)上面的代碼中還有很多值得改進(jìn)的地方,比如刷新窗口以及讓球移動(dòng)起來(lái)的代碼并不應(yīng)該放在事件循環(huán)中,等學(xué)習(xí)了多線程的知識(shí)后,用一個(gè)后臺(tái)線程來(lái)處理這些事可能是更好的選擇。如果希望獲得更好的用戶體驗(yàn),我們還可以在游戲中加入背景音樂(lè)以及在球與球發(fā)生碰撞時(shí)播放音效,利用pygame的mixer和music模塊,我們可以很容易的做到這一點(diǎn),大家可以自行了解這方面的知識(shí)。事實(shí)上,想了解更多的關(guān)于pygame的知識(shí),最好的教程是pygame的官方網(wǎng)站,如果英語(yǔ)沒(méi)毛病就可以趕緊去看看啦。如果想開(kāi)發(fā)3D游戲,pygame就顯得力不從心了
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 租賃戶拆遷協(xié)議書
- 經(jīng)銷商的合同協(xié)議
- 續(xù)建項(xiàng)目合同范本
- 綠植栽植合同范本
- 總代理項(xiàng)目協(xié)議書
- 企業(yè)扣稅協(xié)議書
- 網(wǎng)套采購(gòu)合同范本
- 伐木協(xié)議合同書
- 惡意解除合同協(xié)議
- 手機(jī)研發(fā)合同范本
- 棉花種植培訓(xùn)課件
- 籌建期間會(huì)計(jì)管理制度
- 百萬(wàn)蛋雞養(yǎng)殖場(chǎng)項(xiàng)目環(huán)境影響報(bào)告書
- 著作權(quán)集體管理
- T-CEPPEA 5002-2019 電力建設(shè)項(xiàng)目工程總承包管理規(guī)范
- 25春國(guó)家開(kāi)放大學(xué)《中國(guó)古代文學(xué)(下)》形考任務(wù)1-4參考答案
- 2025年建筑施工安全管理工作總結(jié)
- 糖尿病診療的指南
- 2025年高考語(yǔ)文復(fù)習(xí)之文言文閱讀(全國(guó))12 選擇性必修下教材文言文挖空練習(xí)+重要知識(shí)點(diǎn)歸類(含答案)
- 《農(nóng)光互補(bǔ)光伏電站項(xiàng)目柔性支架組件安裝施工方案》
- 深圳大學(xué)《供應(yīng)鏈與物流概論》2021-2022學(xué)年第一學(xué)期期末試卷
評(píng)論
0/150
提交評(píng)論