Python语言程序设计.docx

上传人:b****5 文档编号:6208835 上传时间:2023-01-04 格式:DOCX 页数:11 大小:20.71KB
下载 相关 举报
Python语言程序设计.docx_第1页
第1页 / 共11页
Python语言程序设计.docx_第2页
第2页 / 共11页
Python语言程序设计.docx_第3页
第3页 / 共11页
Python语言程序设计.docx_第4页
第4页 / 共11页
Python语言程序设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

Python语言程序设计.docx

《Python语言程序设计.docx》由会员分享,可在线阅读,更多相关《Python语言程序设计.docx(11页珍藏版)》请在冰豆网上搜索。

Python语言程序设计.docx

Python语言程序设计

《Python语言程序设计》平时作业

姓名:

贺涛

学号:

2016120101013

1.Python语言有哪些数据类型?

数值类型(整型、浮点型、复数型)、布尔型、字符串、列表、元组、字典和集合等

2.Python语言有哪些运算符?

请列表说明它们各自的运算优先级。

算术运算符、位运算符、关系运算符、逻辑运算符、赋值运算符、成员运算符、身份运算符等

3.Python语言有哪些语句?

if语句、while语句、for语句

4.简述元组与列表的异同。

并简述它们各自的用途。

Python元组和列表一样,都是有序序列,在很多情况下可以相互替换,很多操作也类似,但它们也有区别:

●元组是不可变的序列类型,元组能对不需要改变的数据进行写保护,使数据更安全。

列表是可变的序列类型,可以添加、删除或搜索列表中的元素。

●元组使用小括号定义用逗号分隔的元素,而列表中的元素应该包括在中括号中。

虽然元组使用小括号,但访问元组元素时,要使用中括号按索引或分片来获得对应元素的值。

●元组可以在字典中作为关键字使用,而列表不能作为字典关键字使用,因为列表不是不可改变的。

●只要不尝试修改元组,那么大多数情况下把它们作为列表来进行操作

用途:

●列表可被用于保存多个互相独立对象的数据集合

●元组用于描述一个不会改变的事务的多个属性

5.简述字典和集合的异同。

并简述它们各自的用途。

字典和集合的数据元素之间没有任何确定的顺序关系,属于无序的数据集合体,因此不能像序列那样通过位置索引来访问数据元素。

作为一种复合数据类型,字典和集合之间的主要区别在于它们的操作,字典主要关心其元素的检索、插入和删除,集合主要考虑集合之间的并、交和差操作。

6.请分别举例说明遍历列表、元组、字典和集合中各元素的方法。

●列表:

列表与for循环语句配合使用,可实现对列表各个元素的遍历。

foriinlist:

print("序号:

%s值:

%s"%(list.index(i)+1,i))

●元组:

元组与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)

defpeek(self):

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='密码',justify=tkinter.RIGHT,bg='pink',width=80)

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=='admin'andPwd=='123456':

tkinter.messagebox.showinfo(title='Pythontkinter',message='登录成功!

')

else:

tkinter.messagebox.showerror(title='pythontkinter',message='登录失败')

#创建按钮组件,并且设置按钮事件的处理函数

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',background='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['text']="0"

    return

  ifnumin"=":

    label['text']=str(eval(label['text']))

    reset=True

    return

  s=label['text']

  ifs=='0'orreset==True:

    s=""

    reset=False

  label['text']=s+num

#主窗口

root=Tk()

root.wm_title("计算器")

#显示栏1

label=Label(root,text="0",background="white",anchor="e")

label['width']=35

label['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("",buttonCallBack)

showText="()"

foriinrange

(2):

  b=Button(root,text=showText[i],width=7)

  b.grid(row=6,column=2+i)

  b.bind("",buttonCallBack)

b=Button(root,text="=")

b.grid(row=6,columnspan=2,sticky="we")

b.bind("",buttonCallBack)

root.mainloop()

19.请用Python语言编写一个简易的猜数字游戏程序。

importrandom

answer=random.randint(1,10)

print('猜数游戏')

num=input('请输入你猜测的数字\n')

guess=int(num)

n=0

whilen<2:

ifguess==answerandn==0:

print('么么哒。

对啦')

print('厉害了一次就对了')

break

ifguess

print('不对哦,太小了')

elifguess>answer:

print('不对哦,太大了')

elifguess==answer:

print('么么哒。

对啦')

num=input('请你重新输入\n')

guess=int(num)

n=n+1

ifn==1andguess==answer:

print('可以哦,第二次就对了')

break

elifn==2andguess==answer:

print('还行,终于猜出来了')

break

elifn==2andguess!

=answer:

print('不行哦,三次都不对')

break

print('游戏结束')

20.请用Python语言编写一个简易的通讯录管理程序。

mydic={}

whileTrue:

print("="*7,"通讯录管理系统","="*7)

print("1.增加姓名和手机")

print("2.删除姓名")

print("3.修改手机号")

print("4.查询所有用户")

print("5.根据姓名查找手机号")

print("6.退出")

print("="*29)

a=input("请选择要执行的项目:

")

ifa=="1":

name=input("请输入联系人姓名:

")

tel=input("请输入手机号:

")

iftel.isdigit()andlen(tel)==11:

mydic[name]=tel

print("当前手机内联系人:

",mydic)

else:

print("输入有误")

elifa=="2":

name=input("请输入要删除的姓名:

")

tel=mydic.pop(name)

print("已删除:

"+name+tel)

print("当前手机联系人:

",mydic)

elifa=="3":

name=input("请输入要修改的手机号姓名:

")

tel=input("请输入新的手机号:

")

mydic[name]=tel

print("修改成功!

")

print("当前手机内联系人:

",mydic)

elifa=="4":

print("当前手机内联系人:

",mydic)

elifa=="5":

name=input("请输入要查询的联系人姓名:

")

print(name,mydic[name])

print("")

elifa=="6":

print("感谢使用通讯录系统")

break

else:

print("输入有误")

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1