Python实验指导书资料_第1页
Python实验指导书资料_第2页
Python实验指导书资料_第3页
Python实验指导书资料_第4页
Python实验指导书资料_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python实验指导书

马JII

燕山大学计算机教学实验中心

2017.5

实用文档

实验一:PYTHON程序设计之初观门径................................................................2

实验二:PYTHON程序设计之结构与复用.............................................................8

实验三:PYTHON程序设计之组合数据类型.........................................................12

实验四:PYTHON程序设计之文件.....................................................................16

实用文档

实验一:Python程序设计之初版门径

一、实验目的:

1.了解Python的基本编程环垸,熟悉其主要组成部分和使用。

2.熟悉turtle库语法元素,了解其绘图坐标体系、画笔控制函数和运动命令函数。

通过程序实例,初步掌握Python程序设计的基本概念、编程规则和开发过程。

3.掌握Python的基本数据类型的概念和使用;运用Python的标准数学库进行数值

计算;掌握字符串类型的格式化操作方法和应用。

二、知识要点:

1、一张图尽览Python:

实用文档

小g—电史吗(*—、NS

3ags

tu【tk•寿]札去兀索■»c*

—yL

«^m»»*>wO»gW二

3.基本数据栗•型

•»*•*-mw*^imtij■yr_KSj2X^^

w”,a5■■■

卜TO”《W«.1\

—U:MH

5***•,一■”\,.士r\

>yl

f-jir

一/

,II.»MLtiKWMMAt>•.,3MM・・MM*3*•,«>>»»i»X_T*^T-..尸

::itrt

■12•1:

•••*•—<«*>E»<tt>

I1n*■,•■・<A«»«*«•/♦・♦•

(il»**«<ailMwAM»iii«.*MMM«*KM>u-H*.*vmar.M>■=-・»•••etft♦•>T:;::\炉9^一

1JMaa

…二---------

基础实验:

1.启动IDLE,新戏文件,请根据课本中内容,将“蟒蛇绘制”程序逐行输入其中,并

运行效果。

2.正方形螺旋拢的绘制。

(1)利用turtle卑纥制一个正方后螺施线,效果如下囹所示。

实用文档

importturtle

turtle.speed("fastest")

turtle,pensize(2)|

forxinrange(100):

turtle,forward(2*x)

turtle,left(90)

(2)修改上面程序,绘制斜螺旋线,效果如下图所示。

importturtle

turtle.speedCfastest")

turtle,pensize(2)

forxinrange(100):

turtle,forward(2*x)

turtle,left(91)

(3)修改上面程序,绘制彩色斜螺旋线,效果如下图所示。

importturtle)

turtle.pensize(2)

turtle.speed("fastest")

colors=["red","yellow",'purple'blue']

forxinrange(100):

turtle,pencolor(colors[x%4])

turtle,forward(2*x)

turtle,left(91)

3.彩色蟒蛇绘制。修改1中“蟒蛇绘制”程序,对Python蟒蛇的每个部分采用不同颜色,

绘制一条彩色矫蛇。(提示:参考彩色斜螺旋线绘制程序。实现方法有很多,按照你自己

的鬼路发挥吧)

实用文档

程序完成后,上传提交。

4.绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。注意根据实际

效果调整圆形的大小和位置。效果如图所示。请补全绿色环的代码,将程序上传提交。

importturtle土导入turtle模块

turtle.pensize(lO)#定义画笔宽度

turtle,color("blue")#定义颜色

turtle,penup0#penup而pendown()设置画笔抬起或放下时是否绘制直线

turtle.goto(-110,-25)#初始位置以中心坐标为(0,0)

turtle,pendown()

turtle.circle(45)有绘制圆的半径

turtle,color("black')

turtle,penup()

turtle.goto(0,-25)

turtle,pendown()

turtle,circle(45)

turtle,colorCred")

turtle.penup()

turtle,goto(110,-25)

turtle.pendown()

turtle.circle(45)

turtle,color("yellow")

turtle.penup0

turtle,goto(-55,-75)

turtle,pendown0

turtle,circle(45)

5.参照课本中带刷新的文本进度条例子,制作一个模拟windows启动界面的文本进度条,

执行效果如下图所示。

实用文档

犷C:\WINDOWS\py.exe

-----------------正在启动windows・・・------------------

[IIIIIIIIIIII......................................124%

源码如下:

#Mc:模拟windows启动的文本进度条|

importtime

scale=50

print()

foriinrange(1,12):

ifiin(l,6,11):

print('{0:50}format('*20))

else:

printC{0:>15}{n20}{2:<15}";format|)

print("正在启动windows...center(scale,9-))

print()

foriinrange(scale+1):

a='**i

b=’.’*(scale-i)

c=(i/scale)*100

print(*\r[{}{}]{:3.Of}%”.format(a,b,c),end=',)

time,sleep(0.3)

print()

print启动完成!center(scale,t-'))

实用文档

实验二:Python程序设计之结构与复用

一.实验目的

1.掌握程序的分支、循环等控制结构;

2.掌握random通机库的使用方法;

3.了解程序的异常处理及用法;

4.掌握函数的定义和调用方法。

二,知识要点

1.程序控制结构

[-m,]\

直1h-\I/

7-'.-

S^EU±±-,----------------,

z叱Wjl—.y/

[<WM»______\/

4j\Az

*««»2・

«4WWTl_4A1rx-

7i

/-xsr-f-

gU•<••«*»wav4>

.m-L_Z>\/\

\/____________

f壬:二

<F^LR—•一

8ggs___―・・•■•*■1•<J-•■•••1•

「.—:・Q-i

・8M..a.一

3・,…~•・八”♦••--<e^«s>

■—A■^x--•fMMt*■•ClMllf

・«»MM»・«OMM>

r«««H»«••«■

2.函数和代码复用

i^^HSSSLSJJSS^

aA><r<<

"GF-&6gg

—3—2R

fc

…"O’—'>>*:\/、****^®^也文•<,2fi.ati.JI

……*

/…2cg・lAA\

[yi]/.i।8aM

〔V—w>,J、»

<\

)

口J

二----------V0,/

II—___/\的数用代用驾用Q

h<;_/\-i<

i.一二7'E一

mw*•anitokxamr»MM.f・

7g

Mtrvflft.*,*«■1*«•・yJMAMKWW.______1

ftwg-

三安哙内客■及步皿

实用文档

1.猜数字游戏。在程序中预设一个0-9之间的整数,让用户通过键盘输入所猜的数,如果

大于预设的数,显示“你份的数字大于正确答案”;小于预设的数,显示“你猜的数字小

于正确答案”,如此循环,宜至猜中该数,显示“你疥了N次,猜对了,真厉害”,其中N

是用户输入数字的次数。

guess=0#输入的数字

secret=7值预设的数字

times=1=猜数字的次数

printC---------欢迎参加猜数字游戏,请开始---------〃)

whileguess!=secret:#条件

guess=int(input(〃@数字区荷0-9,请输入你猜的数字:"))

print(〃你输入数字是:〃,guess)

ifguess二二secret:

print("你猜了{}次,猜对了,真厉害format(times))

else:

ifguess<secret:

print(〃你猜的数字小于正确答案〃)

else:

print(〃你猜的数字大于正确答案”)

times+=l

print(〃游戏结束〃)

2.猜数字游戏续。改编1中的猜数字游戏,让计算机能够随机产生一个预设数字,范围在

0-100之间,其他游戏规则不变。

实用文档

importrandom

guess=0#输入的数字

times=l#将数字的次数

secret=random.randint(0,100)女生成随机数

printC--------欢迎参加猜数字游戏,请开始----------〃)

whileguess!=secret:#条件

guess=int(input(空数字区间0-100,请输入你猜的数字:〃))

print(〃你输入数字是:〃,guess)

ifguess二二secret:

print(〃你猜了{}次,猜对了,真厉害format(times))

else:

ifguess<secret:

print(〃你猜的数字小于正确答案〃)

else:

print(〃你猜的数字大于正确答案〃)

times+=l

print(〃游戏结束〃)

3.猜数字游戏再续。用变斑maxtimes设置允许清数字的最大次数(比如最多只允许猜6

次maxtimes=6),并在猜错后提示还有几次机会。用for循环改写Jt个程序,并提交。(提

示,猜对后可使用break跳出循环)

4.猜数字游戏之续了又埃。为了增加代码的互用性,将猜数字游戏封装为函数

GucssSccrct(maxtimcs),将允许猜数字的最大次数maxtimes作为参数。在调用GucssSecrct时

允许用户自己设置maxtimes,美化程序的伽出界面。提交程序文件。

importrandom

defGuessSecret(maxtimes):

函数的实现代码

maxts=eval(input("@请输入猜卷主的最大次数:"))

GuessSecret(maxts)—一此处调用GuessSecret函故

执行效果如下图所示。

实用文档

[j'Python3.6.1Shell*

FileEditShellDebugOptionsWindowHelp

Python376.1(v3.6.l:69c0db5,Mar212017,17?54:52)-

onWin32

Type"copyright","credits"or"license。”formore:

»>

RESTART:C:\L'sers\Heima\Desktop\05Python\Python实驳

数小游表04.py

。请输入猜数字的最大次数:5

欢迎参加猜数字游戏,请开始

@数字区间0-100,请输入你猜的数字:|

5.递归法绘制科赫曲线。请根据课本中内容,将“科赫曲线绘制”程序逐行输入其中,

按自己的思路进行修改并运行效果,体会递归思想。

实用文档

实验三:Python程序设计之组合数据类型

.实验目的

1.了解3类基本组合数据类型。

2.理解列表概念并掌握Py【hon中列表的使用。

3.理解字典概念弁掌握Python中字典的使用。

4.运用jieba库进行中文分词并进行文本词频统计。

二,知识要点

1.知识要点总图

三.实险内容及步球

1.利用列表实现石头剪刀布游戏。请补全程序并提交©

请国考:winList使用元组实现可以吗?童鞋们,动手试试吧!

实用文档

impoirandom

#定义手势云取

a有/(1爷石头;剪刀「布」

#定义获胜的情况

winList=[「石头','剪刀’剪刀‘,'布'「布','石头’]]

#用户输入

chnum=-l

prompt=…

===欢迎参加石头剪刀布游戏===

选择

o头

1剪

2布

3我

请选择对应的数字:

whileTrue:

chnum=input(prompt)

ifchnumnotin['O','1','2','3']:

print(〃无效的选择,请选择0/1/2/3")

continue

ifchnum=='3':

break

cchoice=random.choice(allList)

uchoice=allList[int(chnum).

print("您选择了:j}\n计算机速择了:{}”.format(uchoice,cchoice))

ifuchoice==cchoice:

print(〃你输了!!!")

print(〃游戏结第!”)

2.利用字典实现大侠个人信息查询程序。请补全程序并提交。

沈思考:如何修改程序,使用户只有在输入“exit”的时候才退出程序?谛位,亮亮你的

手段吧!提示:可参考1中的石头剪刀布游戏。

实用文档

people-、

‘乔峰’:{

‘绝技‘:‘降龙十八掌’,

‘门派':'丐帮'

),

‘张无忌’:{

‘绝技‘:‘乾坤大挪移',

‘门派':'明教'

),

‘令狐冲’:{

‘绝技‘:‘独孤九剑’,

‘门派‘:‘华山派'

)

)

labels={

‘绝技‘:’行走江湖的绝技',

'门派’:’所在的门派’

)

#初始化名字

name=inputC请输入大侠的名字:’)

#获取选项

r=input('请选择大侠的绝技(q)或者门派(a)/)

#获取键

Q:,

r==

y=,

a:

r==

y=,派

并查找

ifnameinpeople:

print(〃{}大侠{}是{}.〃.format.—•‘1•一’|

程序执行效果如下:

白Python3.6.1Shell

FileEditShellDebugOptionsWindowHelp

Python3.6.1(v3.6.l:69c0db5,Mar212

onWin32

Type"copyright","credits"or"licens

»>

==================RESTART:C:\Users\H

■输入大侠的名字:乔峰

请选择大侠的绝技(q)或者门派(a):q

乔峰大侠行走江湖的绝技是降龙十八掌.

»>I

实用文档

3.利用jieba库对手之仪的《卜算子》进行分词,按以下要求编写程序。

(1)利用jicba库对手之仪的《卜算子》进行分词,并查看分词结果°

••—JJT♦T

importjieba

txt=…

卜算子

【宋】李之仪

我住长江头,君住长江尾。

日日思君不见君,共饮长江水。

此永几肝侏?曲:恨何时己?

,只,,愿君心似我心,定不负相思意。

words=jieba.Icut(txt)

print(words)

(2)对每个单词计数,并保存到字典类型counts中。查看counts的内容。

counts={}

forwordinwords:

iflen(word)==1:

continue

else:

rword=word

counts[rword]=counts.get(rword,0)+1

print(counts)

⑶按照单词出现的次数从高到低排序b因为字典类型是无序的,无法排序,因此将counts

转为列表类型(列表排序的知识点详见“python中列表的sort方法使用详解“\查看排序

后的结果。

items=list(counts,items())

items,sort(key=lambdax:x[l],reverse=True)

foriteminitems:

print(item)

(4)为了增强排序后结果的可读性,利用formal调整输出的格式。

实用文档

foriteminitems:

word,count=item,,

print("{0:<10}{1:〉5}format(word,count))

4.《红楼梦》人物统计。参考课本中《三国演义》人物出场统计的程序,编写程序统计《红

楼梦》中前20位出场垠多的人物,井提交。这里给出参考答案。

(贾宝玉,3908)、(王熙凤,1611)、(贾母,1429)、(林黛玉,1291)、(王夫人,1061)、(薛宝钗,929)、

(袭人,745)、(贾琏,688)、(平儿,602)、(贾政,523)、(薛姨妈,455)、(探春,437)、(资鸯,423)、

(史湘云,412)、(驻安,336)、(贾珍,299)、(刘姥姥,288)、(紫鹃,288)、(邢夫人,287)、(香菱,264)

实验四:Python程序设计之文件

一.实验目的:

1.掌握文件的读写方法以及打开和关闭等基本操作。

2.掌握一二维数据的存储格式和读写方法。

3.运用json库进行数据的维度转换。

二.知识要点:

1.文件知识要点总图

zumM

H

三.实验内容及步嘛

在桌面上残立一个以自己学号命名的文件夹,所有实险内容都保存在该文件夹下。

1.在excel里录入如下学生信息,并另存为“学生信息表.csv"(另存为时,保存类型选择

CSV)O并按以下步骤进行操作,完成程序后提交。(提示:参考教材中操作“城市价格指

数”的实例)

实用文档

D5▼(*A

ABCD-E

1学号姓名性别班级

217010001张三丰男自动化1701

⑴从CSV文件中读取数据,去掉内容中的逗号,打印到屏幕o

>>>-

RESTART:C:\Users\Administrator.WIX7-17030710^

导书\04实验血资料\01IGetCSVbyLine.py

学号姓名性别班级

1701.0001张三丰男自动化1701

(2)将数据口7()10002丁赵四','女丁自动化1701']追加利“学生信息表.csv”文件。

A1―A学号

/1A|BCD~

1I学号1姓刍性别班级

217010001张三丰男自动化1701

317010002赵四女自动化1701

(3)将“学生信息表.csv”由CSV格式转换成JSON格式。

学生信息表.json-记事本

文件(F)编以E)格式(O)查看(V)帮助(H)

F

“张三丰”,

T7010001”,

“里"

〃自弱化17c1〃

^〃

〒17

〃^

0100化02

别^

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论