Python課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告熊貓寶寶的繪制_第1頁(yè)
Python課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告熊貓寶寶的繪制_第2頁(yè)
Python課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告熊貓寶寶的繪制_第3頁(yè)
Python課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告熊貓寶寶的繪制_第4頁(yè)
Python課程設(shè)計(jì)實(shí)訓(xùn)報(bào)告熊貓寶寶的繪制_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論