《Python语言程序设计》平时作业_第1页
《Python语言程序设计》平时作业_第2页
《Python语言程序设计》平时作业_第3页
《Python语言程序设计》平时作业_第4页
《Python语言程序设计》平时作业_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

《Python语言程序设计》

平时作业

目录

(Python语言程序设计》........................................................1

平时作业....................................................................1

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

2.Python语言有哪些运算符?请列表说明它们各自的运算优先级................6

3.Python语言有哪些语句?..................................................7

4.简述元组与列表的异同。并简述它们各自的用途。...........................7

定义的异同:............................................................7

相同点..................................................................7

不同点..................................................................8

5.简述字典和集合的异同。并简述它们各自的用途。...........................8

相同点..................................................................8

不同点..................................................................8

用途....................................................................9

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

遍历字典元素............................................................9

遍历列表元素...........................................................10

遍历元祖元素...........................................................10

7.在Python中如何实现二维数组、结构体、结构体数组(二维表)、链表?请举例说

明。........................................................................11

二维数组...............................................................11

结构体.................................................................11

结构体数组(二维表)...................................................11

链表...................................................................12

8.在Python中如何实现栈和队列?请举例说明。.............................12

栈.....................................................................12

队列...................................................................13

9.请分别说明Python中正则表达式、lambda函数、装饰器、异常处理、断言处理

各自的用途。...............................................................14

正则表达式.............................................................14

lambda函数............................................................14

装饰器.................................................................14

异常处理...............................................................14

断言处理...............................................................15

10.请分别举例说明,在Python中函数的实在参数与形式参数间单向和双向传递数

据是如何实现的。函数的位置参数与关键字参数有何区别?.....................15

在参数与形式参数间单向传递数据........................................15

在参数与形式参数间双向传递数据........................................15

函数的位置参数与关键字参数的区别......................................16

11.请简述Python中类对象与实例对象、类属性与实例属性各自的区别?并简述它

们各自的用途。.............................................................17

类对象和实例对象的区别................................................17

类属性和实例属性的区别................................................17

类对象的用途...........................................................17

类属性的用途...........................................................17

实例属性的用途.........................................................17

实例对象的用途.........................................................18

12.请简述Python中类方法、实例方法、静态方法各自的区别?并简述它们各自的

用途........................................................................18

类方法、实例方法、静态方法各自的区别..................................18

类方法的用途...........................................................18

实例方法的用途.........................................................18

静态方法的用途.........................................................19

13.请举例说明Python面向对象的多态性(例如函数重载、运算符重载)是如何实

现的?.....................................................................19

14.请分别简述利用thinter模块、turtle模块和graphics模块绘图时各自的绘

图步骤。...................................................................20

thinter模块...........................................................20

turtle模块............................................................20

graphics模块.........................................................21

15.简述使用tkinter模块创建一个图形用户界面应用程序的主要步骤.........22

16.在tkinter模块中事件绑定方式有哪几种?并简述它们各自的用途..........23

1、捕获鼠标单击时的位置...............................................23

2、捕获键盘事件........................................................24

3、捕获鼠标在组件上的运动轨迹.........................................24

17.请用Python语言编写一个简易的系统登录程序。.......................24

程序代码:.............................................................24

运行结果:.............................................................26

18.请用Python语言编写一个简易的计算器程序0...................26

程序代码:.............................................................26

运行结果...............................................................30

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

程序代码:.............................................................30

运行结果...............................................................32

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

程序代码:.............................................................32

运行结果...............................................................36

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

数字类型,字符串类型,元祖类型,列表类型,文件类型,字典类型.

2.Python语言有哪些运算符?请列表说明它们各自的运算优先级

运算符:算术运算符,比较(关系)运算符、逻辑(布尔)运算符、位运算符、、赋值

运算符、成员运算符、身份运算符。

运算符优先级从低到高:

运算符描述

LambdaLambda表达式

or布尔“或”

and布尔“与”

notx布尔“非”

in,notin成员测试

is,isnot

同一性测试

<,<=,>,>=,!=,二比较

1按位或

**按位异或

&按位于

«,»移位

加法与减法

*,/,%乘法、除法与取余

+x,-X11:负号

-X按位翻转

**指数

x.attribute属性参考

x[index]下标

x[index:index]寻址段

f(arguments...)函数调用

(experession,...)绑定或元组显示

[expression,...]列表显不

{key:datum,...}字典显示

'expression,...J字符串转换

3.Python语言有哪些语句?

if语句、while语句、for语句、break和continue语句用于循环语句中、pass语

句。

4.简述元组与列表的异同。并简述它们各自的用途。

定义的异同:

列表(list):[]

list是一种有序的集合,可以随时添加和删除其中的元素,用口表示。列表的三个

特性:①创建之后也可以加减修改元素;②元素可以是数字、字符、变量等,也可以混

杂;③列表可以嵌套。

元组(tuple):()

tuple也是有序的集合,它和list不同的是它只能在初始化的时候赋值,之后就不能

再进行添加删除元素了,用()表示。

元组的三个特性:①创建之后不能加减修改元素;②元素也可以是数字、字符、变量

或者混杂;③元组也可以嵌套。

相同点

用法上的相同点:

1、如果只有一个元素,要在后面加个‘,',否则只相当于定义了一个变量;

2、利用索引输出元素(注意索引从0开始);

3、索引为负数,表示从尾往前搜索(T表示最后一个元素);

4、tuple和list可以相互嵌套;

方法上的相同点:

1、count(elem)count(elem):返回元素中elem的个数

>>>tuple_example=(7,8,(7,10),7,12)

>>>tuple_example.count(7)

2、index(elem)index(elem):返回元素elem的索引

»>list_example=[7,8,(7,10),8,12]

>>>list_example.index(8)

不同点

1、append(object)append(object):在末尾添加元素;

2、extend(object)extend(object):在末尾添加元素,但object必须是列表,object

的元素将会添加到列表的末尾;

3、insert(index,object)insert(index,object):将元素object添加到索引为index的

位置;

4、pop(index)pop(index):将索引为index的元素弹出列表''

5、remove(value)remove(value):删除元素value(只删除第一个出现的);

6、sort(cmp=None,key=None,reverse=False)sort(cmp=None,key=None,reverse=False)

:对元素排序。默认是从小到大,不同类型的元素按数字一>列表一>字符一>元组先

后排序。

5.简述字典和集合的异同。并简述它们各自的用途。

相同点

1、都可以应用于海量数据中查找元素;

2、都包含无序对象;

3、都可以进行读写;

不同点

1、集合不可索引,不可切片;

2、字典可以含有重复元素,集合不可以;

3、集合不可以读元素,字典可以

用途

字典

字典类似于我们通过联系人名称查找地址和联系人详细情况的地址簿,即,我们把键(名

字)和值(详细情况)联系在一起。

集合

基本功能是进行成员关系测试和消除重复元素。

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

遍历字典元素

第一种利用字典自身的方法diet,items。遍历

mydict={

〃keyl〃:10.00,

keyz:Inisisstring,

〃key3〃:[1,2,3]

)

forkey,valueinmydict.items():

printkey,mydict[key]

第二种方法,利用.keys。,.values。方法:

forkeyinmydict.keys():

printkey,mydict[key]

forvalueinmydict.values():

printvalue

第三种直接for循环得到key,直接遍历会返回key序列:

forkeyinmydict:

printkey,mydict[key]

遍历列表元素

创建列表:

>»music=["Abba","RollingStones","BlackSabbath","Metallica”]

>»printmusic

输出:

['Abba','RollingStones,,'BlackSabbath','Metallica']

通过join函数通过空格连接列表中的元素:

>»print'*.join(music)

返回结果

AbbaRollingStonesBlackSabbathMetallica

使用换行符链接列表

>»print〃\n〃.join(music)

输出结果

Abba

RollingStones

BlackSabbath

Metallica

使用tab符号连接列表的所有元素

>»print"\t〃.join(music)

输出结果

AbbaRollingStonesBlackSabbathMetallica

遍历元祖元素

#可用tuple。函数创建

tuplel=tuple([l,2])

#用()建立,可包含不同数据类型

tuple2=(1,3,'hello',3.5)

#可用下标访问

print(tuplel[1])

#可切片

print(tuple2[l:3])

#不可以修改元素

tuplel[1]=10

结果:

2

⑶'hello')

TypeError:'tuple'objectdoesnotsupportitemassignment

7.在Python中如何实现二维数组、结构体、结构体数组(二维

表)、链表?请举例说明。

二维数组

matrix=[[0foriinrange(3)]foriinrange(3)]

结构体

classitem:

def—init—(self):

self,name=#名称

self,size=10#尺寸

self,list=[]#列表

结构体数组(二维表)

structSTU

charname[20];

intage;

charsex;

charnum[20];

};〃定义STU结构体

structSTUstu[10];〃包含10个STU结构体类型的结构体数组

链表

#Definitionforsingly-linkedlist.

classListNode(object):

def_init_(self):

self,val二None

self,next=None

8.在Python中如何实现栈和队列?请举例说明。

»>x=[]#创建一个空列表,此处表示栈

»>X

[]

»>x.append('a")#压入元素'a'

»>x

fa]

»>x.append('b')#压入元素'b'

»>x

»>x.pop()#弹出栈顶元素'b'

'b'

»>X

»>x.pop0#弹出栈顶元素'a'

,,

a

队列

»>x=[]

>»x.append('a,)

»>x

>»x.append('b')

»>x

>»x.pop(0)

,,

a

>»x.pop(0)

>>>x.pop(0)

Traceback(mostrecentcalllast):

File〃<stdin>〃,line1,in〈module〉

IndexError:popfromemptylist

9.请分别说明Python中正则表达式、lambda函数、装饰器、异

常处理、断言处理各自的用途。

正则表达式

提供更强大的字符串处理能力,测试字符串内的模式,例如,可以测试输入字符串,

以查看字符串内是否出现电话号码模式或身份证号码模式。即数据验证替换文本可以使用

正则表达式来识别文档中的特定文本,完全删除该文本或者用其他文本替换它。

基于模式匹配从字符串中提取子字符串可以查找文档内或输入域内特定的文本。

lambda函数

对于单行函数,使用lambda可以省去定义函数的过程,让代码更加精简。在非多次调

用的函数的情况下,lambda表达式即用既得,提高性能

装饰器

1.可以在外层函数加上时间计算函数,计算函数运行时间;

2.计算函数运行次数;

3.可以用在框架的路由传参上;

4.插入日志,作为函数的运行日志;

5.事务处理,可以让函数实现事务的一致性,让函数要么一起运行成功,要么一起运行失

败;

6.缓存,实现缓存处理;

7.权限的校验,在函数外层套上权限校验的代码,实现权限校验;

异常处理

异常处理语句用来检测try语句中的错误,从而让except语句捕获错误信息并处理。

断言处理

在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不

如在出现错误条件时就崩溃,这时我们使用断言处理。

10.请分别举例说明,在Python中函数的实在参数与形式参数间

单向和双向传递数据是如何实现的。函数的位置参数与关键字参数

有何区别?

在参数与形式参数间单向传递数据

直接将实参赋予行参,根据位置做匹配,即严格要求实参的数量与行参的数量位置相

等,比较一般,大多数语言常用这种方式。

deftest(x,y=5,*,**b):

>>>>printx,y,a,b

test(1)===>15(){)

test(1,2)===>12(){}

test(1,2,3)===>12(3,){}

test(1,2,3,4)===>12(3,4)

在参数与形式参数间双向传递数据

根据键值对的形式做实参与行参的匹配,通过这种式就可以忽略了参数的位置关系,

直接根据关键字来进行赋值,同时该种传参方式还有个好处就是可以在调用函数的时候作

为个别选填项,不要求数量上的相等,即可以fun5(3,4)来调用fun2函数,这里关键就是

前面的3,4覆盖了原来a、b两个行参的值,但c还是不变采用原来的默认值3,这种模式

相较第一种更加灵活,不仅可以通过fun6(c=5,a=2,b=7)来打乱行参的位置,而且可以在

但没有对应行参传递的时候常用定义函数时的默认值。

deftest(x,y=5,*,**b):

»»printx,y,a,b

test(x=l)===>15(){)

test(x=l,y=l)===>110{}

test(x=l,y=l,a=l)===>110

test(x=l,y=l,a=l,b=l)===>11(){'a':1,'b':1}

函数的位置参数与关键字参数的区别

①位置参数

调用函数时根据函数定义的参数位置来传递参数。

#!/usr/bin/envpython

#coding=utf-8

defprint_hello(name,sex):

sex_dict=U:u'先生',2:u'女士'}

print'hello%s%s,welcometopythonworld!?%(name,sex_dict.get(sex,u'

先生'))

#两个参数的顺序必须一一对应,且少一个参数都不可以

#print_hello(,tanggu*,1)

②关键字参数

用于函数调用,通过“键-值”形式加以指定。可以让函数更加清晰、容易使用,同时也清

除了参数的顺序需求。

#以下是用关键字参数正确调用函数的实例

#print_hello(,tanggu*,sex=l)

#print_hello(name:=,tanggu),sex=l)

#print_hello(sex=l,name='tanggu')

#以下是错误的调用方式

#printhello(l,name='tanggu')

#print_hello(name=,tanggu',1)

#print_hello(sex=l,'tanggu')

通过上面的代码,我们可以发现:有位置参数时,位置参数必须在关键字参数的前面,但

关键字参数之间不存在先后顺序的

11.请简述Python中类对象与实例对象、类属性与实例属性各自

的区别?并简述它们各自的用途。

类对象和实例对象的区别

1、类对象只能有一个,实例对象可以有多个。类属性,类方法,实例方法,静态方法都是

在类对象里面存放。因此类对象只能有一个,实例对象可以有多个,实例对象自己独有的

只有实例属性,方法都是共用的。在一个py文件不能有两个相同名字的方法

2、实例对象中有_class一只能指向类对象的引用。

3、实例对象可以调用类方法,实例方法,静态方法,但是类对象只能调用类方法,和静态

方法。

类属性和实例属性的区别

保存位置的不同,类属性通过类访问,实例属性需要通过对象来访问;

类对象的用途

类对象的生成过程,包括对象的声明、实例化和初始化。实例化一个对象就是通过

new运算符为对象分配空间(类属于复合数据类型,在声明对象时,系统并没有为对象分

配空间,用户需要应用new完成分配空间的任务)。既可以在声明对象时实例化(创建)对

象,也可以先声明对象,然后再创建.

类属性的用途

类属性仅与其被定义的类相绑定,类属性仅当需要有更加“静态”数据类型时才变得

有用,它和任何实例都无关,如classA():count=10;»

实例属性的用途

实例仅拥有数据属性,它是与某个类的实例相关联的数据值,这些值独立于其他实例

或类。当一个实例被释放后,它的属性同时也被清除了,如classA():def

—init_(self):self,number=10;同时实例属性可以在类外声明,如classA():pass,

a=A(),a.count=20。

实例对象的用途

通过类对象创建的实例对象。通过实例对象可以访问类属性,实例方法和实例属性只

能用实例对象来调用。

12.请简述Python中类方法、实例方法、静态方法各自的区别?

并简述它们各自的用途

类方法、实例方法、静态方法各自的区别

实例调用类调用访问实例属性访问类属性

实例方法V

类方法VV

静态方法VV

类方法的用途

类方法,可以对类属性进行修改。被类调用的时候,C1S隐含传入,被实例调用时变

成普通方法,要给参数类方法用在模拟java定义多个构造函数的情况,由于python类中

只能有一个初始化方法,不能按照不同的情况初始化类。

实例方法的用途

实例方法是类中最常定义的成员方法,它至少有一个参数并且必须以实例对象作为其

第一个参数,一般以名为“self”的变量作为第一个参数。(习惯,非语法要求,可改名)

在类外实例方法只能通过实例对象去调用,不能通过其他方式去调用。

静态方法的用途

静态方法需要通过修饰器“@staticmethod”来进行修饰,静态方法不需要多定义参

数。静态方法中不需要额外定义参数,因此如果在静态方法中引用类属性,则必须通过类

对象来引用。

13.请举例说明Python面向对象的多态性(例如函数重载、运算

符重载)是如何实现的?

代码:

classTriangle:

def_init_(self,width,height):

self,width=width

self,height=height

defgetArea(self):

area=self.width*self,height/2

returnarea

classSquare:

def_init_(self,size):

self,size=size

defgetArea(self):#同一个方法在不同的类中最终呈现出不同的效果,即为多

area=self,size*self,size

returnarea

a=Triangle(5,5)

print(a.getArea())

b二Square(5)

print(b.getArea())

运行结果:

RESTART:U/Users/啦啦啦啦啦啦/Desktop/python/多态.py

12.5

25

»>1

14.请分别简述利用thinter模块、turtle模块和graphics模

块绘图时各自的绘图步骤。

thinter模块

1、创建一个画图用的画布

fromtkinterimport*

tk=Tk()

canvas=Canvas(tk,width=500,height=500)

canvas,pack()

2、使用像素坐标画线

canvas.create_line(O,0,500,500)

3.画一个正方形

fromtkinterimport*

tk=Tk()

canvas=Canvas(tk,width=400,height=400)

canvas,pack()

canvas.create_rectangle(10,10,50,50)

turtle模块

1、蟒蛇绘图我们需要导入turtle,如下所示:

#PythonDraw.py

importturtle

2、蟒蛇绘图属性:

⑴位置

turtle.setup(650,350,200,200)

⑵方向

turtle.penupO

turtle,fd(-250)

turtle,pendown()

⑶画笔(画笔的属性,颜色、画线的宽度)

turtle,pensize(25)

turtle,pencolor("purple")

turtle.seth(-40)

3、操纵蟒蛇绘图的运动命令和画笔控制命令

foriinrange(4):

turtle.circle(40,80)

turtle,circle(-40,80)

turtle,circle(40,80/2)

turtle,fd(40)

turtle.circle(16,100)

turtle.fd(40*2/3)

turtle,done()

graphics模块

1、设置画布窗口名和尺寸

win=raphWin('CSSA',700,700)

2、画点

pt=Point(100,100)

pt.draw(win)

3、画圆

cir=Circle(Point(200,200),75)

cir.draw(win)

4、外围轮廓颜色

cir.setOutline(,red,)

5、填充颜色

cir.setFill('yellow,)

15.简述使用tkinter模块创建一个图形用户界面应用程序的主要

步骤

1、读入CSV源数据:

def读入源数据文件(self,文件名):

contents

withopen(文件名,newline』')as源数据文件:

源数据读取器二csv.reader(源数据文件,delimiter=',')

for行in源数据读取器:

self.字符列表.append(行)

2、导出csv文件:

def导出文件(self):

withopen(常量_修改后文件,'w',newline』')as目标文件:

写文件=csv.writer(目标文件,delimiter:',')

for字符inself.字符列表:

写文件.writerow(字符)

print(〃修改保存到:〃+常量—修改后文件)

3、创建图片显示:

def创建图片显示(self,区域,字体名,位置):

字体区二Frame(区域)

字体区.pack(side=位置)

字体提示二Label(字体区,text=字体名)

字体提示.pack。

图片路径=常量.图片主目录+常量—图片路径[字体名]+self,图片子路径

print(图片路径)

try:

图片=PhotoImage(file二图片路径)

except:

print(〃找不到图片〃)

图片=PhotoImage0

图片显示=Labe].(字体区,image二图片)

图片显示.image=图片

图片显示.pack()

return图片显示

16.在tkinter模块中事件绑定方式有哪几种?并简述它们各自的用

3种。

1、捕获鼠标单击时的位置

使用Frame组件的bind。方法将鼠标单击事件〈ButtonT>和自定义的calIback()方法绑定

起来。

#捕获点击鼠标的位置

fromtkinterimport*

root=Tk()

defcallback(event):

print(〃点击位置:〃,event,x,event,y)

frame=Frame(root,width=200,height=200)

frame.bind("〈ButtonT>”,callback)

frame,pack()

mainloop()

2、捕获键盘事件

只有当组件获得焦点的时候才能接收键盘事件Key,使用focus_set()获得焦点。

#捕获键盘事件

fromtkinterimport*

root=Tk()

defcallback(event):

print(〃敲击位置:〃,repr(event,char))

frame二Frame(root,width=200,height=200)

frame.bind(〃〈Key>〃,callback)

frame.focus_set()

frame,pack()

mainloop()

3、捕获鼠标在组件上的运动轨迹

fromtkinterimport*

root=Tk()

defcallback(event):

print(〃当前位置:〃,event,x,event,y)

frame二Frame(root,width=200,height=200)

frame.bind("〈Motion>〃,callback)

frame,pack()

mainloop()

17.请用Python语言编写一个简易的系统登录程序。

程序代码:

dictl={)

deflog():

globaldictl

print(,z|—新建用户:N/n—|")

printC|--账户登录:E/e--1〃)

print(,z|退出程序:Q/q---1〃)

what=input(〃|请输入指令代码:〃)

ifwhat==,n*orwhat='N':

key二input(〃请输入用户名:〃)

whilekeyindictl:

key二input(〃此用户名己经被使用,请重新输入〃)

value=input(〃请输入密码:〃)

dictl[key]=value

print(〃注册成功,赶紧试试登陆把二

elifwhat==,e,orwhat==,E>:

key=input(〃请输入用户名:〃)

whilekeynotindictl:

key二input(〃您输入的用户名不存在,请重新输入〃)

value=input(〃请输入密码:〃)

if(dictl[key]==value):

print(〃欢迎进入系统,请点击右上角的X结束程序!〃)

else:

print(〃密码错误〃)

elifwhat==,qorwhat=二'Q':

return

while⑴:

log()

运行结果:

一新建用户:N/n一|

一账户登录:E/e一|

一退出程序:Q/q—|

一请输入指令代码:N

请输入用户名:Bob

请输入密码:123456

注册成功,赶紧试试登陆把八_人

|一新建用户:N/n一|

|一账户登录:E/e—|

|一退出程序:Q/q—|

|一请输入指令代码:E

请输入用户名:Bob

请输入密码:123456

欢迎进入系统,请点击右上角的X结束程序!

|一新建用户:N/n一|

j一账户登录:E/e---|

退出程序:Q/q---|

卜一请输入指令代码:E

请输入用户名:Bob

请输入密码:1

密码错误

卜一新建用户:N/n—|

|一账户登录:E/e—|

卜一退出程序:Q/q—1|

卜一请输入指令代码:E

请输入用户名:B

您输入的用户名不存在,请重新输入

18.请用Python语言编写一个简易的计算器程序。

程序代码:

#!/usr/bin/envpython3

#一*一coding:utf-8一*一

importre

defrefresh_formula(formula):

formula=formula,replace(z/”,〃〃)

formula=formula,replace,,-,/)

formula=formula,replace(z,­〃,〃+〃)

returnformula

defdevide(formula):

devidestr=re.search\d+\.?\d*(\/-?\d+\.?\d*)+',formula)

ifdevidestrisNone:

returnformula

devidenum=re.findall(>-?\d+\.?\d*^,devidestr.group())

devidelist=[]

foriindevidenum:

devidelist.append(float(i))

res=devidelist[0]

foriinranged,len(devidelist)):

res=res/devidelist[i]

formula=re.sub('\d+\.?\d*(\/-?\d+\.?\d*)+',str(res),formula,1)

returnformula

defmultiply(formula):

multiplystr=re.search(?\d+\.?\d*(\*-?\d+\.?\d*)+,,formula)

ifmultiplystrisNone:

returnformula

multiplynum=re.findall(r*-?\d+\.?\d*>,multiplystr.group())

multiplylist=[]

res=1

foriinmultiplynum:

multiplylist.append(float(i))

foriinrange(len(multiplylist)):

res=res*multiplylist[i]

formula=re.sub(r'\d+\.?\d*(\*-?\d+\.?\d*)+',str(res),formula,1)

returnformula

deftotal_calc(formula):

formula=refresh_formula(formula)

res=0

whileTrue:

if'informula:

mul=formula,split(z/*z,)

if'/'inmul[0]:

formula=devide(formula)

else:

formula=multiply(formula)

elif'/'informula:

formula=devide(formula)

elif'or''informula:

addminus=re.findall('-?\d+\.?\d*',formula)

res=0

fordigitinaddminus:

res=res+float(digit)

returnstr(res)

else:

returnres

defbracket_calc(bracketstr):

bracketstr=bracketstr.replaceC\(,z,,,z,)

bracketstr=bracketstr.replace(〃\)〃,"")

returntotal_calc(bracketstr)

defcalculate(formula):

whileTrue:

bracket=re.search("\((1()[+)\)”,formula)

Sprint(formula)

ttprint(bracket)

ifbracket:

bracket=bracket,group()

#print(bracket)

res=bracketcalc(bracket)

formula二formula,replace(bracket,res)

else:

res=total_calc(formula)

print.(''resultis%s〃%res)

break

if_name—==〃—main—”:

whileTrue:

formula=input(z,Pleaseinputformula:〃)

ifformula二二〃exit〃orformula二二"Exit”:

exit()

else:

formula=refreshformu1a(formula)

calculate(formula)

运行结果

Pleaseinputformula:9*5+2

resultis47.0

Pleaseinputformula:l-2*(3+5)

resultis-15.0

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

程序代码:

defcompare(i):

importrandom

secret=random,randint(1,10)

temp=input(z,guessthenumberinmyheart(from1to10):\n〃)

guess=int(temp)

ifguess==secret:

print(,zamazing,youareright")

else:

ifguess>secret:

print(,zworring,it*sbigger,youhavethelasttwochances")

else:

print(*OMG!sofoolishyouare.litter!!Thelasttwochances)

whilei<2:

temp=input("guessagainplease"":\n,z)

guess=int(temp)

i=i+l

ifguess==secret:

print(z/ok,youwin.〃)

break

elif(guess>secret):

ifi==l:

print(,zguessitbyyourheartplease!!bigger!lastchance")

else:

print(,zseeyoulatter!biggerererer!/z)

elif(guess<secret):

ifi==l:

print(Jwanttofucksomeone!wrong,again,litter!lastchance')

else:

print('youmakemeangery,saygoodbyetogames.')

print(5gameover*)

return

compare(0)

n=0

whilen<10:

restart=inputCdoyouwanttorestart?pleasewrite1or0:')

n=n+l

ifrestart==l:

compare(0)

else:

print(*seeyoulatter*)

break

运行结果

guessthenumberinmyheart(from1to10):

8

OMG!sofoolishyouare.litter!!Thelasttwochances'

guessagainplease~~:

2

wanttofucksomeonelwijong,again,litter!lastchance

guessagainplease~~:

7

youmakemeangery,saygoodbyetogames.

gameover

doyouwanttorestart?pleasewrite1or0:

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

程序代码:

#!/usr/bin/envpython

#coding:utf-8-*一

importpickleasp

classperson:

notes={}

defadd(self):

name=input('请输入要添加的联系人姓名’)

ifnameinperson,notes:

printC该联系人已经存在‘)

else:

telephone=(input('请输入联系人电话号码'))

addr=(input('请输入联系人地址’))

label={'电话':telephone,5地址':addr}

person,notes[name]=label

defdele(self):

温馨提示

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

评论

0/150

提交评论