Python实验指导书1223054756Word文件下载.docx
《Python实验指导书1223054756Word文件下载.docx》由会员分享,可在线阅读,更多相关《Python实验指导书1223054756Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
*10}
計讪"
它将且接执行]韭輕空丄阴和出如战J
print「敢裁|】『)foriui「训但社#16忙
z亠洁帕-iziri-住返聖抖干捷0畑「•用在曲别士fiPJfaff片些丄W
"
7器買1Tip]lr阳r!
1*}
在啊中/搭恂了謝Jft审曲扌瓮用曹"
fond"
■雨甲疔事苻肅.ft用单颅I
print「这是ALiw\・的问候*“)*訓号M,洼芋脱4檻游
print{'
^-^Eoti\r^问详."
)'
J
亠一
cotinter4cotiliter1
pararlpsecondParam.res})
Eg齐*和Oi苜市同
^lf(pdrdnl--42)^.-(5recon<
iParam--24)}:
*严雷运ti并-不価爲应&
«
)||<
世用直织I归E衣笙勇J
for(paramirsecondParaw):
res-paramiL+secondPiarawprint("
{}3!
]{}尊于{}"
fomnSif
jli1(res--50)print('
.-SP/J|
2⑸⑼时涸用,曰■朗三后逹代忖J
一.W于I
诉汨由:
占稔芥用[}之韭&
?
糾号翩ffl'
吉!
ft®
军十4啟碎P■在側师0冉事趾上)
也地君,M实S?
人了》.py
」那护oi—
-診在脾e甥炳■用主宙腐・M:
呱:
呵日煉网円議的逗庁・;
酉且旧斗期nW逅庁书祗*訶
_rwrhr_7rtr_mj»
in_:
这磔当片;
憩些«
t!
B快爵巧希冷车g齐nziru”.
酌mminSAfi勿了离狗愛伺也■购.”
2.Turtle库语法元素
3•基本数据类型
三、实验内容及步骤:
基础实验:
1.启动IDLE,新建文件,请根据课本中内容,将“蟒蛇绘制”程序逐行输入其中,并
运行效果。
2.正方形螺旋线的绘制。
(1)利用turtle库绘制一个正方形螺旋线,效果如下图所示。
importturtle
turtle.speed("
fastest'
)turtle,pensize
(2)|forxinrange(100):
turtle,forward(2*x)turtle*left(90)
(2)修改上面程序,绘制斜螺旋线,效果如下图所示。
turtle.sp已ed(fastest)turtle,pensize
(2)forxinrange(100):
turtle.forward(2*x)turtle,left(91)
(3)
修改上面程序,绘制彩色斜螺旋线,效果如下图所示。
.lturtlel
turtle,pensize⑵turtle.speed
colors二[*red*,*vellaw*3'
purple'
1blue'
]
xrange(100;
turtle,pencolor(colors[x%4_turtle,forward(2*x)turtle.left(91;
3.彩色蟒蛇绘制。
修改1中“蟒蛇绘制”程序,对Python蟒蛇的每个部分采用不同颜
色,绘制一条彩色蟒蛇。
(提示:
参考彩色斜螺旋线绘制程序。
实现方法有很多,按照你自己的思路发挥吧)
程序完成后,上传提交。
4.绘制奥运五环图,其中五种颜色分别为蓝色、黑色、红色、黄色和绿色。
注意根据实际效果调整圆形的大小和位置。
效果如图所示。
请补全绿色环的代码,将程序上传提交
■Turtl?
#导入tMTlo揍块
turtle.pensi2e(10)H定玄匮笔宽度
turtle,colorCblue"
)工走文颓色
turtle,penup()■:
endoim()设置區至抬起或放下时.昱百绘也亘红
Turtle.^010(-110,-25)碎初始位呂以中心坐标为(0,0:
1
tor〔亠巴.pencla^iiO
turt_e.circle(45)壬绘却1區的*拄
turtle,color(black*}
tanle.penupO
turtle.&
oto(0,-25)
Turtle,p()
turtle.circle(45)
turt1?
.color("
d"
)
rurrle.penup0
turtle,goto(110,-25)
turtle,pendown('
turtle,circle(45)
turtle,color(yellov"
tuit.e.penupO
tuttJ.e.goto(-55,-75)
turtle.pEndowni.)
5.参照课本中带刷新的文本进度条例子,制作一个模拟windows启动界面的文本进度条,
执行效果如下图所示。
C:
\WINDOWS\py.exe
—〜正在启动评indcws*…*---*-
[HillIII1111124%
源码如下:
#ycrwindows启动的文本进度条1
imp(_:
jLtime
Scale二10
print()
foriinrange(1,12):
ifiinti,6,11):
printC(0:
"
50:
\formatC-'
*20))
U]S£
:
“printCto:
>
15?
20}(2:
<
lo}format('
I'
「I'
T))
print("
正在启动聊indc讦s...'
.center(scale.'
-))
foriir.range(scale+1?
:
日二「I:
米i
b=\'
*(scale-i)
c=(i/scale)*100
print(*\r[{}{}1{:
3.Of}%*,formatb,c)>
eiid=,1)
Time,sleep(0・3)
print("
5+启动5E成!
.center(scale,-))
Python程序设计之结构与复用
1.实验目的
i掌握程序的分支、循环等控制结构;
2.掌握random随机库的使用方法;
3•了解程序的异常处理及用法;
4.掌握函数的定义和调用方法。
2.知识要点
1.程序控制结构
2.函数和代码复用
三实验内容及步骤
1.猜数字游戏。
在程序中预设一个0-9之间的整数,让用户通过键盘输入所猜的数,如
果大于预设的数,显示“你猜的数字大于正确答案”;
小于预设的数,显示“你猜的数字
小于正确答案”,如此循环,直至猜中该数,显示“你猜了N次,猜对了,真厉害”,其
中N是用户输入数字的次数。
#输入的数字secret^?
#锁设将数宇
times^l廿霜數宇药次数
print欢迎参加猜数字游戏,请开始*)
vliileguess!
=secret:
二条件’
guess=int(input(飞数字区间0-9,请输入你猜的数字:
写))print("
你嶽人数李是£
guess)
ifguess==secret:
print("
你猜了:
:
次•猜对7t真厉害"
・format(times))
ifguess<
secret:
你猜的数字小于正确答案"
)亡SprintC你猜的数字大于正确答案Jtimes+=l
printT游戏结束J
2.猜数字游戏续。
改编1中的猜数字游戏,让计算机能够随机产生一个预设数字,范围
在0-100之间,其他游戏规则不变。
importrandom
guess=O口输入的数字
times-1耳踌数字的决数
secret=random.randint(0,100)吃生成随机数
print(欢迈参加猜数字游我*请开始)
wqi1cguessl^sccret:
且条件
guess=int(input(理数宇区间OTQO,;
占縮i人你猜的数字;
))print(你谕入数字是:
、guess)
ifgu&
ss==sfLcr?
t*
printC*你猜了{}纭猜朮了.真讶害"
・format(times))else:
丄i呂u皂ss<
print「你猜的数字小于正确答案0
prime你猜的数字大于正确答案"
times+-l
print游戏结束"
3.猜数字游戏再续。
用变量maxtimes设置允许猜数字的最大次数(比如最多只允许猜6次maxtimes=6),并在猜错后提示还有几次机会。
用for循环改写整个程序,并提交。
(提示,猜对后可使用break跳出循环)
4.猜数字游戏之续了又续。
为了增加代码的复用性,将猜数字游戏封装为函数GuessSecret(maxtimes),将允许猜数字的最大次数maxtimes作为参数。
在调用GuessSecret时允许用户自己设置maxtimes,美化程序的输出界面。
提交程序文件。
importrandomj
defGuessSecret(maxtimes):
融数的实现代码
maxts^eval(input(乜请输入猜数字的最大次数:
))GuessSecret<
maxts^■—此逊嘀用Gut^Secrc诵藏|
LN巧卅口仃干币-T
斤£
E航SHikIOptidhtW-ndowHelp.
Pyrhon3G.1(vl6.L:
C9cOdb5,Mar212017,17:
54:
52)onWin32
Type"
copyright"
、"
crtjd.is"
or"
license(.)'
formore:
ZjTZ
RESTART:
C:
\Lsers\Heima\Desktop\05FythcrAFython实逆数小游戏04.py
上靑输人薙歡主門泵大丈竝書
欢迎參U詰豹字溝戏,茴产始
嫩字区间0-1003请搐入你猜的数字:
|
5.递归法绘制科赫曲线。
请根据课本中内容,将“科赫曲线绘制”程序逐行输入其中,
按自己的思路进行修改并运行效果,体会递归思想。
Python程序设计之组合数据类型
1•了解3类基本组合数据类型。
2.理解列表概念并掌握Python中列表的使用。
3.理解字典概念并掌握Python中字典的使用。
4.运用jieba库进行中文分词并进行文本词频统计。
1.知识要点总图
LI
屮血內
三•实验内容及步骤
1.利用列表实现石头剪刀布游戏。
请补全程序并提交。
请思考:
winList使用元组实现可以吗?
童鞋们,动手试试吧!
y~randoTii
瓷手势类型
allListI「占头S'
剪刀;
布’]
T布;
石人:
]
艺定义荻胜的情况
winList=[「石久打剪刀['
剪刀’「布J琴用户输入
chiiuin--l
prompt=
==或:
迎参加石头剪刀柱游戏==
#:
头刀不选石剪布我^0123
print「耶录.JFJT7亡Is亡■
MintC'
你输了!
!
Q
处intL游疋结頂!
2.利用字典实现大侠个人信息查询程序。
如何修改程序,使用户只有在输入“exit”的时候才退出程序?
诸位,亮亮你
的手段吧!
提示:
可参考1中的石头剪刀布游戏。
pege={
'
乔峰
绝技'
T降龙十人拿
1门派’「丐帮’
张无忌•:
{
<
®
g,:
乾坤大挪移'
,
门派V明就
•令统冲*・{
•绝技’独孤九剑S•门減「华山澹
}
labels-;
绝技’:
廿疋江制豹绝技S
1门派'
所在的门派'
七初始化名字
naiMFinputC请输入大快的名字:
#获取选项
r=inputC请选择大侠的绝技(q)或者门派(a)/)
萍获取键
if工=<
f:
y=!
樂我"
jfr—且"
y-门減
常查找
Ifnameinpeople:
printCJ)-J%;
}是{_.'
.format—・—
程序执行效果如下:
Python3.6.1Shel
FileEditShellDebugOpbon^WindowHdp
Python3.6.1fv3.6.1:
69c0db53Mar212onWin32
Tvpe*copvright"
^credits"
lieens»
>
================RESTART:
C:
\Users\H
诗输入大侠的名字:
请选择大侠的绝技(Q)或者门派(a):
Q齐峰大快行走江湖的绝技是降龙十八掌*»
\
3.利用jieba库对李之仪的《卜算子》进行分词,按以下要求编写程序。
(1)利用jieba库对李之仪的《卜算子》进行分词,并查看分词结果。
iifrp
iinporTjiebatxt二…
卜算子
【宋】李之仪我住长江头,君住长江尾◎日日思君不见君,共饮长江水。
此水几时休?
此恨何时已?
只愿君心似我心,定不负相思意。
words二jieba*lcut(txt)prim(words)
(2)对每个单词计数,并保存到字典类型counts中。
查看counts的内容。
counts={}
fcrwordinwords:
iflen(word)二二L:
continue
else:
rward二word
countsLrword]二counts■呂巳T(i■聊oid,0〉十1print(counts)
(3)按照单词出现的次数从高到低排序。
因为字典类型是无序的,无法排序,因此将
counts转为列表类型(列表排序的知识点详见"
python中列表的sort方法使用详解”)。
查看排序后的结果。
items二list(counts,items0)
items,sort(key=lambdarever&
e=True)
foriteminitems:
print(item)
4•《红楼梦》人物统计。
参考课本中《三国演义》人物出场统计的程序,编写程序统计
《红楼梦》中前20位出场最多的人物,并提交。
这里给出参考答案。
(贾宝玉,3908)、(王熙凤,1611)、(贾母,1429)、(林黛玉,1291)、(王夫人,1061)、(薛宝钗,929)、(袭人,745)、(贾琏,688)、(平儿,602)、(贾政,523)、(薛姨妈,455)、(探春,437)、(鸳鸯,423)、(史湘云,412)、(晴雯,336)、(贾珍,299)、(刘姥姥,288)、(紫鹃,288)、(邢夫人,287)、(香菱,264)
Python程序设计之文件
1.实验目的:
1•掌握文件的读写方法以及打开和关闭等基本操作。
2•掌握一二维数据的存储格式和读写方法。
3.运用json库进行数据的维度转换。
2.知识要点:
1.
文件知识要点总图
3.实验内容及步骤
在桌面上建立一个以自己学号命名的文件夹,所有实验内容都保存在该文件夹下。
1.在excel里录入如下学生信息,并另存为"
学生信息表.csv”(另存为时,保存类型选
择CSV)。
并按以下步骤进行操作,完成程序后提交。
参考教材中操作“城市价格
指数”的实例)
(1)从CSV文件中读取数据,去掉内容中的逗号,打印到屏幕。
RESTART:
\Lsers\Administrator.WIAT'
l7030710
导书\04实验四资料\0LlGetCS^vLine,py
学号姓名性别班级
lTOjpOOl张三丰男自动化1501
(2)将数据['
17010002'
'
赵四'
女'
自动化1701'
]追加到“学生信息表.csv”文件。
(3)将“学生信息表.csv”由CSV格式转换成JSON格式。
17010002\
2.编写程序,根据文件data.txt中的数据,使用turtle库来动态绘制图形路径。
3.
impnrtturtle
dufniciinf):
匸设骨.窗口信息
turtle*setup(1024,76S,0t0)往设冒画笔*-
turtle,pencolor(red*)turtle,width(5)turtle,speed(5)眾JR文件result^_]
file=open(data,txtTb"
forLineinfile:
resuIt*append(list(map(float?
line・split(,))))print(result)芒动态绘制
orii:
range(len(result));
color(
turtle,for阳rd仗
ifresult[i][1[:
turtle,rt(p
turtle.It(result[i][2])
turtle,gotoCO,0)
_nameT_--,—価rmainO
可否通过修改data.txt文件,绘制教材中第1章课后的“太阳花”?
对代码的一点说明:
其中的map函数用法:
第一个参数接收一个函数名,第二个参数接收一个可迭代对象
IS=[1,2,3]
rs=map(str.Is)#打印结果['
1'
2,3]
It=[1,2,3,4,5,6]
defadd(num):
returnnum+1
rs=map(add,lt)
print(rs)#[2,3,4,5,6,7]
4.编写程序将电子邮件EmailAddressBook.txt和电话薄TeleAddressBook.txt合并为
个完整的通讯录AddressBook.txt
给出程序代码如下。
利用字符串和列表将两个通讯录文本合并为一个文本defmain():
filel=open(TeleAddressBook・txt*,r*)
file2=open(*ErailAddressBook・txt*,r)
filel.readline()?
跳过第一行
file2.readline0
1inpsl=filftl.rpadlin<
^s()lines2=file2.readlines0
I]
listl_name=listl.tele=list2_name=list2_enail=
lorlineinlinesl:
4获取第一个文本中的姓名和电话f言息elements=line.split()lis:
l_name.append(elements[0[)lis:
l_tele.append(elements[1])
frlineinlines2:
9茯取第二个文本中的姓名和邮件仁息elements=line.split。
lis:
2_name・append(elements[0])
1is:
2_email・append(elements[1])
祈=开始处3?
splines=[]lines,append(*姓名\t电话\t邮箱\rf)
祥按索引方式遍历姓名列表1
toriir.range(len(listl.name)):
s=
iflistl-nane〔i[mlist2-name:
j=list2_name.index(listl_name[i])二找到[姓名列表1~一二的夕
s='
\t'
・join([listl_name[ihlistl.teleli\list2-emailLj]])s+=*\n*
\t'
・join([listl_name[i]wlistl_tele[i],*'
])
s+=,\n
lines.append(s)
Q处理姓名列表2中射余的姓名
1:
riirange(len(list2_name)):
Its=
fIist2_nanie2ijxrnlistl.name:
s='
\t・join([list2_naine[i],s+=■\n
lines・append(s)
file3■open(*AddressBook.txt*,*w*)
file3・writelines(lines)
file3.close0
filel.close0
file2.close0
print(^址溥合并完成"
)if_name_==~_main_"
mA<