Python语言程序设计Word文档下载推荐.docx
- 文档编号:19213635
- 上传时间:2023-01-04
- 格式:DOCX
- 页数:11
- 大小:20.71KB
Python语言程序设计Word文档下载推荐.docx
《Python语言程序设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《Python语言程序设计Word文档下载推荐.docx(11页珍藏版)》请在冰豆网上搜索。
元组与for循环语句配合使用,可实现对元组各个元素的遍历。
示例同列表。
●字典:
⏹遍历字典的关键字:
d.keys():
返回一个包含字典所有关键字的列表,所以对字典关键字的遍历转换为对列表的遍历。
⏹遍历字典的值:
d.values():
返回一个包含字典所有值的列表,所以对字典值的遍历转换为对列表的遍历。
⏹遍历字典的元素:
d.items():
返回一个包含所有(关键字,值)元组的列表,所以对字典元素的遍历转换为对列表的遍历。
●集合:
集合与for循环语句配合使用,可实现对集合各个元素的遍历。
7.在Python中如何实现二维数组、结构体、结构体数组(二维表)、链表?
请举例说明。
二维数组:
列表中嵌套列表
matrix=[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
结构体:
使用字典数据类型实现结构体
当列表的元素也是一个列表时,列表就表示二维矩阵或锯齿阵。
8.在Python中如何实现栈和队列?
classStack(object):
def__init__(self):
self.stack=[]
defisEmpty(self):
returnself.stack==[]
defpush(self,item):
self.stack.append(item)
defpop(self):
ifself.isEmpty():
raiseIndexError,'
popfromemptystack'
returnself.stack.pop()
defpeek(self):
returnself.stack[-1]
defsize(self):
returnlen(self.stack)
classQueue:
def__init__(self,head=None):
self.storage=[head]
defenqueue(self,new_element):
self.storage.append(new_element)
returnself.storage[0]
defdequeue(self):
returnself.storage.pop(0)
9.请分别说明Python中正则表达式、lambda函数、装饰器、异常处理、断言处理各自的用途。
正则表达式:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
lambda函数:
是指没有函数名的简单函数,只可以包含一个表达式,不允许包含其他复杂的语句,表达式的结果是函数的返回值。
用匿名函数有个好处,因为函数没有名字,所以不必担心函数名冲突。
装饰器:
可简单地理解为一个函数,这是一个用来包装函数的函数,经常用于为已经存在的函数添加额外的功能。
当多个函数有重复代码时,可以将此部分代码单独拿出来整理成一个装饰器,然后对每个函数调用该装饰器,这样可以实现代码的复用,而且可以让原来的函数更轻便。
当需要为多个己经写好的函数添加一个共同功能,例如检查参数的合法性时,就可以单独写一个检查合法性的装饰器,然后在每个需要检查参数合法性的函数处调用即可,而不用去每个函数内部修改。
断言处理:
10.请分别举例说明,在Python中函数的实在参数与形式参数间单向和双向传递数据是如何实现的。
函数的位置参数与关键字参数有何区别?
在Python中,实参向形参传送数据的方式是“值传递”,即“拷贝”或“复制”。
实参的值传给形参,是对象间整体赋值,是一种单向传递方式,不能由形参传回给实参。
函数体传入的参数,为函数体外变量引用的副本。
在函数体中改变变量指向的堆中的值,对函数外变量有效。
在函数体中改变变量的引用,对函数外变量无效。
关键字参数和位置参数的区别:
函数调用时的参数通常采用按位置匹配的方式,即实参按顺序传递给相应位置的形参。
实参的个数应与形参个数必须完全相等。
在函数调用中使用关键字参数,是指通过形式参数的名称来指示为哪个形参传递什么值,这可以跳过某些参数或脱离参数的顺序。
11.请简述Python中类对象与实例对象、类属性与实例属性各自的区别?
类对象与实例对象的区别:
在一个类中,类对象只有一个,但实例对象可以有多个。
类对象在定义类后便自然存在,而实例对象需要人为创建。
类属性与实例属性的区别:
实例属性是实例对象所特有的。
类对象并不拥有实例属性,所以不能通过类对象来访问实例属性。
实例属性也只能用实例对象来访问,不能用类对象来访问实例属性。
类属性即可用类对象访问,也可用实例对象访问。
12.请简述Python中类方法、实例方法、静态方法各自的区别?
实例方法只能用实例对象来调用,不能用类对象来调用实例方法。
类方法:
类方法是类对象所拥有的方法,类方法的第一个参数必须是类对象,可以通过实例对象和类对象去访问类方法,类方法可以对类属性进行修改。
实例方法:
实例方法是类中最常定义的成员方法,它至少有一个参数并且必须以实例对象作为其第一个参数,在类外实例方法只能通过实例对象去调用,不能通过其他方式去调用。
静态方法:
静态方法需要通过修饰器“@staticmethod”来进行修饰,静态方法不需要多定义参数。
静态方法中不需要额外定义参数,因此如果在静态方法中引用类属性,则必须通过类对象来引用。
13.请举例说明Python面向对象的多态性(例如函数重载、运算符重载)是如何实现的?
父类和多个子类中都有同名的方法,虽然方法同名,但该方法在不同类中的行为是不同的。
当向一个对象发送消息(即调用该方法)时,所得结果取决于是哪一个对象接收。
多个不同的对象都支持相同的消息,但各对象响应消息的行为不同,这种能力就是多态性的体现,即同一操作在不同的上下文环境中具有不同形态的意思。
14.请分别简述利用thinter模块、turtle模块和graphics模块绘图时各自的绘图步骤。
thinter模块:
·
1.导入Tkinter模块
2.创建控件
3.指定这个控件的master,即这个控件属于哪一个
4.告诉GM(geometrymanager)有一个控件产生了。
turtle模块:
1.引入turtle模块
2.创建画布。
调用turtle中的Pen函数。
3.移动海龟。
4.提起画笔
graphics模块:
1.导入graphics模块包
2.使用GraphWin
3.调用Point()类,设置X坐标和Y坐标
4.调用draw()方法,绘制
15.简述使用tkinter模块创建一个图形用户界面应用程序的主要步骤。
1.导入Tkinter模块
2.创建一个顶层窗口对象,来容纳你的整个GUI程序
3.在你的顶层窗口对象上(或者其中)创建所有的GUI模块(以及功能)
4.把这些GUI模块与底层代码相连接
5.进入主事件循环
16.在tkinter模块中事件绑定方式有哪几种?
widget.bind(event,handler)
使用frame的bind方法将一个callback方法绑定到一个事件
绑定到widgetinstance使用bind方法
绑定到widget的toplevelwindows,顶层窗口,也是用bind
绑定到widgetclass,使用bind_class
17.请用Python语言编写一个简易的系统登录程序。
importtkinter.messagebox
importtkinter
my_window=tkinter.Tk()#生成my_window主窗口
my_window.title('
welcomemy_window'
)#设置窗口标题
cv=tkinter.Canvas(my_window,bg='
lightcyan'
)#用画布设置窗口的颜色
cv.pack()
my_window.geometry('
200x150'
)#设置窗口大小
#label标签(用户名和密码的变量)
varName=tkinter.StringVar()#文字变量储存器器
varName.set('
admin'
)
varPwd=tkinter.StringVar()
varPwd.set('
123456'
#创建账户的标签
labname=tkinter.Label(my_window,text='
用户名'
justify=tkinter.RIGHT,bg='
pink'
width=80)
labname.place(x=10,y=5,width=80,height=20)
#创建文本框,同事设置关联变量
enterName=tkinter.Entry(my_window,width=80,textvariable=varName)
enterName.place(x=100,y=5,width=80,height=20)
#创建密码的标签和文本框
labPwd=tkinter.Label(my_window,text='
密码'
labPwd.place(x=10,y=30,width=80,height=20)
enterPwd=tkinter.Entry(my_window,show='
*'
width=80,textvariable=varPwd)
enterPwd.place(x=100,y=30,width=80,height=20)
#登录按钮事件处理函数
deflogin():
Name=enterName.get()
Pwd=enterPwd.get()
ifName=='
andPwd=='
:
tkinter.messagebox.showinfo(title='
Pythontkinter'
message='
登录成功!
!
'
else:
tkinter.messagebox.showerror(title='
pythontkinter'
登录失败'
#创建按钮组件,并且设置按钮事件的处理函数
buttonOK=tkinter.Button(my_window,text='
login'
background='
lightskyblue'
command=login())
buttonOK.place(x=30,y=70,width=50,height=20)
#取消按钮的时间处理函数
defcancel():
#清空用户输入的用户名和密码
varName.set('
varPwd.set('
)
buttonCancel=tkinter.Button(my_window,text='
Cancel'
lightgray'
command=cancel())
buttonCancel.place(x=100,y=70,width=50,height=20)
#启动消息循环
my_window.mainloop()
18.请用Python语言编写一个简易的计算器程序。
fromtkinterimport*
reset=True
defbuttonCallBack(event):
globallabel
globalreset
num=event.widget['
text'
]
ifnum=='
C'
label['
]="
0"
return
ifnumin"
="
]=str(eval(label['
]))
s=label['
ifs=='
0'
orreset==True:
s="
"
reset=False
]=s+num
#主窗口
root=Tk()
root.wm_title("
计算器"
#显示栏1
label=Label(root,text="
background="
white"
anchor="
e"
width'
]=35
height'
]=2
label.grid(row=1,columnspan=4,sticky=W)
#按钮
showText="
789/456*123-0.C+"
foriinrange(4):
forjinrange(4):
b=Button(root,text=showText[i*4+j],width=7)
b.grid(row=i+2,column=j)
b.bind("
<
button-1>
buttonCallBack)
()"
foriinrange
(2):
b=Button(root,text=showText[i],width=7)
b.grid(row=6,column=2+i)
b=Button(root,text="
b.grid(row=6,columnspan=2,sticky="
we"
root.mainloop()
/button-1>
19.请用Python语言编写一个简易的猜数字游戏程序。
importrandom
answer=random.randint(1,10)
print('
猜数游戏'
num=input('
请输入你猜测的数字\n'
guess=int(num)
n=0
whilen<
2:
ifguess==answerandn==0:
print('
么么哒。
对啦'
厉害了一次就对了'
break
ifguess<
answer:
不对哦,太小了'
elifguess>
answer:
不对哦,太大了'
elifguess==answer:
num=input('
请你重新输入\n'
guess=int(num)
n=n+1
ifn==1andguess==answer:
可以哦,第二次就对了'
break
elifn==2andguess==answer:
还行,终于猜出来了'
elifn==2andguess!
=answer:
不行哦,三次都不对'
游戏结束'
20.请用Python语言编写一个简易的通讯录管理程序。
mydic={}
whileTrue:
print("
*7,"
通讯录管理系统"
"
*7)
1.增加姓名和手机"
2.删除姓名"
3.修改手机号"
4.查询所有用户"
5.根据姓名查找手机号"
6.退出"
*29)
a=input("
请选择要执行的项目:
ifa=="
1"
name=input("
请输入联系人姓名:
tel=input("
请输入手机号:
iftel.isdigit()andlen(tel)==11:
mydic[name]=tel
当前手机内联系人:
mydic)
输入有误"
elifa=="
2"
请输入要删除的姓名:
tel=mydic.pop(name)
已删除:
+name+tel)
当前手机联系人:
3"
请输入要修改的手机号姓名:
请输入新的手机号:
修改成功!
4"
5"
请输入要查询的联系人姓名:
print(name,mydic[name])
6"
感谢使用通讯录系统"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 语言程序设计