Python标准库和GUI综合练习实验报告

Python标准库和GUI综合练习实验报告
Python标准库和GUI综合练习实验报告

实验报告

课程名称:Python编程基础与应用实验学期:2019年至2020年第1学期实验时间:2019年5 月10 日

专业:

班级:

学号:

姓名:

指导教师:

实践一python标准库和GUI综合练习

1.1实践:python标准库和GUI练习

1.1.1实验目的

1.熟练掌握python标准库中常用的库函数,理解它们的基本原理,会运用它们的常用

功能。

2.熟练运用python的thinkter包来构建GUI界面,掌握它的基本组件并学会运用它们。

1.1.2实验内容及步骤

1.分析问题

2.编写代码

3.运行程序

4.结果展示

1.1.3程序运行过程、方法和运行结果

1.使用tkinter来编写一个计算器小程序,实现+、-、*、\、\\等基本功能。思路:

1).考虑用类来包裹整个计算器,用类的属性存储界面对象、数据与运算符等。2).考虑使用eval()函数来执行一个字符串表达式,并返回表达式的值。import tkinter as tk

# 先有整体框架,输入计算框,各种按键。

class App:

def __init__(self, master):

# 基本界面

self.master = master

# 输入组件

self.initWidgets()

# 表达式

self.hi = None

def initWidgets(self):

# 创建一个输入组件

self.show = https://www.360docs.net/doc/4318041541.html,bel(relief=tk.SUNKEN, width=23,

bg="white", anchor=tk.W)

# 对该输入组件使用pack布局

self.show.pack(side=tk.TOP, pady=10)

p = tk.Frame(self.master)

p.pack(side=tk.TOP)

# 定义字符串的元组

names = ("1", "2", "3", "4", "5", "6",

"7", "8", "9", "0", ".", "+", "-", "*", "**", "//", "/", "%", "=", "?",)

# 遍历元组

for i in range(len(names)):

# 创建按钮,放入frame中

b = tk.Button(p, text=names[i], width=5)

b.grid(row=i//5, column=i % 5)

# b.pack(side=tk.LEFT, padx=0, pady=5)

# 为鼠标左键的单击事件绑定事件处理方法

b.bind("", self.click)

# 为鼠标左键双击事件绑定事件处理方法

if b["text"] == "?":

b.bind("", self.clean)

# 定义一个记录输入数字次数的变量

self.i = 0

def click(self, event):

# 如果用户单击数字或点号

if (event.widget["text"] in ("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".")):

# 判断self.i是否为0,0的话清空show【”text“】的值

if self.i == 0:

self.show["text"] = ""

self.show["text"] = self.show["text"] + event.widget["text"]

self.i = self.i + 1

print(self.i)

# 如果用户单击了运算符

elif(event.widget["text"] in ("+", "-", "*", "/", "%", "**", "//")):

self.show["text"] = self.show["text"] + event.widget["text"]

elif(event.widget["text"] == "=" and self.show["text"] is not None):

# 赋值给self.hi

self.hi = self.show["text"]

# 调试时使用

print(self.hi)

# 使用eval()函数计算结果

self.show["text"] = str(eval(self.hi))

self.hi = None

self.i = 0

def clean(self, event):

# 点击恢复按钮时,清空表达式,计数器清空

self.hi = None

self.show["text"] = ""

root = https://www.360docs.net/doc/4318041541.html,()

root.title("计算器")

App(root)

root.mainloop()

结果:

点击“=”后:

2.使用python的tkinter编写一个界面,例子如下:

能够通过xml标准库读写xml文件:country.xml中指定国家的rank和year属性。

country.xml结构如下:

67

20142

13600

思路:将解析xml文件的代码封装为类,注意界面的布局情况,可以使用Label 和Entry等界面组件的grid函数。

import tkinter as tk

import xml.etree.ElementTree as ET

class App:

"""

点击get按钮时

根据用户输入的国家名判断是否时xml文件里面存在的name,若是则返回行营的rank和year值

点击set按钮时

将用户输入的数据按原格式存入xml文件

"""

def__init__(self,root):

#基本界面

self.root=root

#所需组件

self.zujian()

def zujian(self):

#用标签label存放固定的数据,用文本框entry存放可变数据,并用grid 固定他们的位置

#set和get用按钮button来创建,再用bind设置他们的响应机制

#国家name,

https://www.360docs.net/doc/4318041541.html,bel(self.root,text="country:",height=1,

width=10).grid(row=0,column=0)

self.e1=tk.StringVar()

self.e11=tk.Entry(self.root,width=50,textvariable=self.e1)

self.e11.grid(row=0,column=1)

#rank

https://www.360docs.net/doc/4318041541.html,bel(self.root,text="rank:",height=1,

width=10).grid(row=1,column=0)

self.e2=tk.IntVar()

self.e22=tk.Entry(self.root,width=50,textvariable=self.e2)

self.e22.grid(row=1,column=1)

#year

https://www.360docs.net/doc/4318041541.html,bel(self.root,text="year:",height=1,

width=10).grid(row=2,column=0)

self.e3=tk.IntVar()

self.e33=tk.Entry(self.root,width=50,textvariable=self.e3)

self.e33.grid(row=2,column=1)

#get

b=tk.Button(root,text="get",height=1,width=15)

b.grid(row=3,column=0)

b.bind("",self.click)

#set

c=tk.Button(root,text="set",height=1,width=15)

c.grid(row=3,column=1)

c.bind("",self.clean)

def click(self,event):

#点击get按钮的响应机制

tree=ET.parse('zuoye/country.xml')#创建xml树

root1=tree.getroot()#得到树根

for country in root1.findall('country'):#循环遍历子节点country

#判断name是否和用户输入的一致,若一致则输出他们的rank和year的值

if country.get('name')==self.e11.get():#子节点下属性name的值

self.e1.set(country.get('name'))

self.e2.set(country.find('rank').text)#子节点下节点rank的值

self.e3.set(country.find('year').text)

def clean(self,event):

#点击set按钮的响应机制

# 写入xml

tree=ET.parse('zuoye/country.xml')#创建xml树

root1=tree.getroot()#得到树根

#创建新的子节点

countrynew=ET.Element('country',{'name':self.e11.get()})

ranknew=ET.SubElement(countrynew,'rank')#子节点下节点rank

ranknew.text=self.e22.get()

yearnew=ET.SubElement(countrynew,'year')

yearnew.text=self.e33.get()

#向根节点添加新的子节点,可以使用append方法添加子节点

root1.append(countrynew)

#写入

tree.write('zuoye/country.xml',encoding="utf-8",xml_declaration= True)

root=https://www.360docs.net/doc/4318041541.html,()

root.title("XML")

App(root)

root.mainloop()

结果:

输入name后:

点击get后:

填入数据:

点击set后:

1.1.4实验中遇到的问题及分析、解决过程

1.1.4.1问题标题(如果有,请填写标题,没有则删除这小节,写“无”)

1. 问题描述

正文。

2. 问题分析

正文。

3. 解决方法

正文。

C++ 扩展和嵌入 Python

Python简介 Python是一种简单易学,功能强大的解释型编程语言,它有简洁明了的语法,高效率的高层数据结构,能够简单而有效地实现面向对象编程,特别适用于快速应用程序开发,也可以用来开发大规模的重要的商业应用。Python是一个理想的脚本语言。 Python免费开源,可移植到多种操作系统,只要避免使用依赖于特定操作系统的特性,Python程序无需修改就可以在各种平台上面运行。 Python拥有现代编程语言所具有的一切强大功能,Python标准库十分庞大,可以帮助开发者处理各种工作,如:图形用户界面、文件处理、多媒体、正则表达式、文档生成、单元测试、线程、数据库、网络通讯、网页浏览器、CGI、FTP、电子邮件、XML、HTML、WAV文件、密码系统、Tk和其他与系统有关的操作。只要安装了Python,这些功能都是可用的除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图形库等等数不胜数。 Python容易扩展和嵌入。Python提供的许多标准模块支持C或者C++接口。Python和C可以一起工作,它可以嵌入到C或者C++的应用程序当中,因此可用Python语言为应用程序提供脚本接口,由于支持跨语言开发,可用Python 设计概念化应用程序,并逐步移植到C,使用前不必用C重写应用程序。(Jython 使Python可以和Java一起工作,使开发者可以在Python里面调Java的包,也可以在Java里面使用Python的对象。还有更妙的,由于Jython的解释器完全用Java编写,因此可以在支持Java的任何平台上部署Python程序,甚至WEB浏览器也可以直接运行Python脚本。) 提出问题 在某个C++应用程序中,我们用一组插件来实现一些具有统一接口的功能,我们使用Python来代替动态链接库形式的插件,这样可以方便地根据需求的变化改写脚本代码,而不是必须重新编译链接二进制的动态链接库。Python强大的功能足以胜任,但是有一些操作系统特定的功能需要用C++来实现,再由Python调用。所以,最基础地,我们需要做到: ? 1. 把Python嵌入到C++应用程序中,在C++程序中调用Python函数和获得变量的值; ? 2. 用C++为Python编写扩展模块(动态链接库),在Python程序中调用C++开发的扩展功能函数。 常用的Python/C API介绍 下面是例子中用到的几个Python/C API的简要介绍及示例代码。注意,这

python考试复习题库

一、填空题 1、Python安装扩展库常用的是_工具。(pip) 2、Python标准库math中用来计算平方根的函数是____。(sqrt) 3、Python程序文件扩展名主要有__和两种,其中后者常用于GUI程序。(py、pyw) 4、Python源代码程序编译后的文件扩展名为___。(pyc) 5、使用pip工具升级科学计算扩展库numpy的完整命令是_______。(pip install –upgrade numpy) 6、使用pip工具查看当前已安装的Python扩展库的完整命令是___。(pip list) 7、在IDLE交互模式中浏览上一条语句的快捷键是____。(Alt+P) 8、使用pip工具查看当前已安装Python扩展库列表的完整命令是___。(pip list) 9、在Python中____表示空类型。(None) 10、列表、元组、字符串是Python的___(有序?无序)序列。(有序) 11、查看变量类型的Python内置函数是______。(type()) 12、查看变量内存地址的Python内置函数是_______。(id()) 13、以3为实部4为虚部,Python复数的表达形式为_或__。(3+4j、3+4J) 14、Python运算符中用来计算整商的是___。(//) 15、Python运算符中用来计算集合并集的是_。(|) 16、使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作_。(A < B ) 17、表达式[1, 2, 3]*3的执行结果为____________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) 18、list(map(str, [1, 2, 3]))的执行结果为___________。([‘1’, ‘2’, ‘3’]) 19、语句x = 3==3, 5执行结束后,变量x的值为___。((True, 5)) 20、已知x = 3,那么执行语句x += 6 之后,x的值为_____。(9) 21、已知x = 3,并且id(x)的返回值为496103280,那么执行语句x += 6 之后,表达式id(x) == 496103280 的值为_。(False) 22、已知x = 3,那么执行语句x *= 6 之后,x的值为______。(18) 23、为了提高Python代码运行速度和进行适当的保密,可以将Python程序文件编译为扩展名____的文件。(pyc) 24、表达式“[3] in [1, 2, 3, 4]”的值为______。(False) 25、列表对象的sort()方法用来对列表元素进行原地排序,该函数返回值为。(None) 26、假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是____________。([6, 7, 9, 11]) 27、使用列表推导式生成包含10个数字5的列表,语句可以写为_____。([5 for i in range(10)]) 28、假设有列表a = [‘name’, ‘age’, ‘sex’]和b = [‘Dong’, 38, ‘Male’],请使用一个语句将这两个列表的内容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为___________。(c = dict(zip(a, b))) 29、任意长度的Python列表、元组和字符串中最后一个元素的下标为__。(-1) 30、Python语句”.join(list(‘hello world!’))执行的结果是__________。(’hello world!’) 31、转义字符’\n’的含义是_________。(回车换行) 32、Python语句list(range(1,10,3))执行结果为_________。([1, 4, 7]) 33、表达式list(range(5)) 的值为______。([0, 1, 2, 3, 4]) 34、____命令既可以删除列表中的一个元素,也可以删除整个列表。(del) 35、已知a = [1, 2, 3]和b = [1, 2, 4],那么id(a[1])==id(b[1])的执行结果为_。(True) 36、表达式int(‘123’, 16) 的值为___。(291) 37、表达式int(‘123’, 8) 的值为___。(83) 38、表达式int(‘123’) 的值为___。(123) 39、表达式int(‘101’,2) 的值为____。(5) 40、表达式abs(-3) 的值为_。(3)

Python标准库14 数据库 (sqlite3) 光环大数据Python培训

https://www.360docs.net/doc/4318041541.html, Python标准库14 数据库(sqlite3) 光环大数据Python培训 光环大数据Python培训了解到,Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python 建网站,或者制作有数据存储需求的工具。SQLite还在其它领域有广泛的应用,比如HTML5和移动端。Python标准库中的sqlite3提供该数据库的接口。 我将创建一个简单的关系型数据库,为一个书店存储书的分类和价格。数据库中包含两个表:category用于记录分类,book用于记录某个书的信息。一本书归属于某一个分类,因此book有一个外键(foreignkey),指向catogory表的主键id。 创建数据库 我首先来创建数据库,以及数据库中的表。在使用connect()连接数据库后,我就可以通过定位指针cursor,来执行SQL命令: 复制代码 #ByVameiimportsqlite3#test.dbisafileintheworkingdirectory.conn=sq lite3.connect("test.db")c=conn.cursor()#createtablesc.execute('''CREA TETABLEcategory(idintprimarykey,sortint,nametext)''')c.execute('''CRE ATETABLEbook(idintprimarykey,sortint,nametext,pricereal,categoryint,F OREIGNKEY(category)REFERENCEScategory(id))''')#https://www.360docs.net/doc/4318041541.html, mit()#closetheconnectionwiththedatabaseconn.close() 复制代码 SQLite的数据库是一个磁盘上的文件,如上面的test.db,因此整个数据库可以方便的移动或复制。test.db一开始不存在,所以SQLite将自动创建一个新文件。 利用execute()命令,我执行了两个SQL命令,创建数据库中的两个表。创建完成后,保存并断开数据库连接。 插入数据

python练习试题含答案.docx

精品文档 Python 练习题库 By 郑红波2017-12-19 一、填空题 1. Python 标准库 math 中用来计算平方根的函数是__________ 。( sqrt) 2.在 Python 中 __________表示空类型。( None) 3.列表、元组、字符串是 Python 的_________(有序?无序 ) 序列。(有序) 4.查看变量类型的 Python 内置函数是 ________________ 。( type() ) 5.查看变量内存地址的 Python 内置函数是 _________________。( id() ) 6. 表达式 [1, 2, 3]*3 的执行结果为______________________ 。( [1, 2, 3, 1, 2, 3, 1, 2, 3] ) 7.list(map(str, [1, 2, 3])) 的执行结果为 _____________________ 。([ ‘1’,‘2’,‘3’]) 8.已知 x =3,并且 id(x) 的返回值为 496103280 ,那么执行语句x += 6 之后,表达式id(x) == 496103280的值为 ___________。( False) 9.已知 x = 3 ,那么执行语句x *= 6 之后, x 的值为 ________________ 。( 18) 10.表达式“ [3] in [1, 2, 3, 4] ”的值为 ________________ 。( False) 11.假设列表对象 aList 的值为 [3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片 aList[3:7] 得到的值是 ______________________ 。([6, 7, 9, 11] ) 12.使用列表推导式生成包含10 个数字 5 的列表,语句可以写为_______________ 。( [5for i in range(10)] ) 13.假设有列表 a = ['name', 'age', 'sex'] 和 b = ['Dong', 38, 'Male'] ,请使用一个语句将这两个列表的内 容转换为字典,并且以列表 a 中的元素为“键” ,以列表 b 中的元素为“值” ,这个语句可以写为 _____________________ 。( c = dict(zip(a, b)) ) 14.任意长度的Python 列表、元组和字符串中最后一个元素的下标为________。( -1) 15.Python 语句 ''.join(list('hello world!')) 执行的结果是 ____________________。( 'hello world!') 16.转义字符’\n’的含义是 ___________________ 。(回车换行) 17.Python 语句 list(range(1,10,3)) 执行结果为 ___________________ 。( [1, 4, 7] ) 18.切片操作 list(range(6))[::2] 执行结果为 ________________ 。( [0, 2, 4] ) 19.表达式 'ab' in 'acbed' 的值为 ________。( False) 20.Python 3.x 语句 print(1, 2, 3, sep=':') 的输出结果为 ____________。( 1:2:3) 21.表达式 int(4**0.5) 的值为 ____________ 。(2) 22.达式 sorted([111, 2, 33], key=lambda x: -len(str(x)))的值为 ____________。( [111, 33, 2] ) 23.已知列表对象x = ['11', '2', '3'] ,则表达式 max(x)的值为 ___________。( '3') 24.表达式 min(['11', '2', '3']) 的值为 _________________ 。( '11') 25.已知列表对象x = ['11', '2', '3'] ,则表达式 max(x, key=len) 的值为 ___________。( '11') 26.语句 x = (3,) 执行后 x 的值为 _______________ 。( (3,)) 27.语句 x = (3) 执行后 x 的值为 ________________ 。( 3) 28.已知 x = {1:2} ,那么执行语句 x[2] = 3 之后, x 的值为 ________________ 。( {1: 2, 2: 3} ) 29.字典对象的_____________方法返回字典中的“键-值对”列表。( items()) 30.使用列表推导式得到 100 以内所有能被 13 整除的数的代码可以写作 ___________________________________ 。( [i for i in range(100) if i%13==0]) 31.表达式 3 ** 2 的值为 _________ 。( 9) 32.表达式 3 * 2 的值为 ___________。( 6) 33.已知 x = [3, 5, 7] ,那么执行语句x[len(x):] = [1, 2] 之后,x 的值为 ______________ (。 [3, 5, 7, 1, 2] ) 34.表达式list(zip([1,2], [3,4])) 的值为 ________________________ 。( [(1, 3), (2, 4)] ) 35.已知 x = [1, 2, 3, 2, 3] ,执行语句x.pop() 之后, x 的值为 _____________ 。( [1, 2, 3, 2] ) 36.表达式[x for x in [1,2,3,4,5] if x<3]的值为 _____________________ 。( [1, 2] ) 37.表达式 [index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])] 的值为 __________________ 。( [2, 4] ) 38.已知path = r'c:\test.html' ,那么表达式path[:-4]+'htm'的值为__________。('c:\\test.htm')

python标准库和扩展库

Tkinter———— Python默认的图形界面接口。Tkinter是一个和Tk接口的模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。Tcl/Tk是由John Ousterhout发展的书写和图形设备。Tcl(工具命令语言)是个宏语言,用于简化shell下复杂程序的开发,Tk工具包是和Tcl一起开发的,目的是为了简化用户接口的设计过程。Tk工具包由许多不同的小部件,如一个按钮、一个滚动条等。通过Tk提供的这些小部件,我们就可快速地进行GUI开发。Perl、Scheme 等语言也利用Tk库进行GUI开发。Tkinter是跨平台,在各种平台下都能使用。 Python Imaging Library(PIL)————它提供强大的图形处理的能力,并提供广泛的图形文件格式支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是用户进行图象处理的强有力工具。 Pmw(Python megawidgets)它是超级GUI组件集————一个利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。 PyXML————用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容: xmlproc: 一个符合规范的XML解析器。 Expat: 一个快速的,非验证的XML解析器。还有其他 和他同级别的还有PyHtml PySGML PyGame————用于多媒体开发和游戏软件开发的模块。 PyOpenGL————模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。 NumPy、NumArray和SAGE———— NumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的低层代码使用C来编写,所以速度的优势很明显。NumPy是Numarray的后继者,用来代替NumArray。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代Magma, Maple, Mathematica和Matlab 这类工具。 MySQLdb模块————用于连接MySQL数据库。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。 PyGTK ————用于GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的那个库。有了它,你完全可以自信的尝试自己制造Photoshop PyQt ————用于Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是Scintillar 编辑器类的Qt接口。 PyMedia ————用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。 Psyco ————一个代码加速度器,可使代码的执行速度提高到与编译语言一样的水平。 Python-ldap ————提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。 smtplib模块————发送电子邮件。 ftplib模块————定义了FTP类和一些方法,用以进行客户端的ftp编程。我们可用python编写一个自己的ftp客户端程序,用于下载文件或镜像站点。如果想了解ftp协议的详细内容,请参考RFC959。 xmpppy模块———— Jabber服务器采用开发的XMPP协议,Google Talk也是采用XMPP 协议的IM系统。在中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber 服务器通信,是不是很Cool。

Python程序设计试题(卷)库

《Python程序设计》题库 一、填空题 第一章基础知识 1、Python安装扩展库常用的是_______工具。(pip) 2、Python标准库math中用来计算平方根的函数是__________。(sqrt) 3、Python程序文件扩展名主要有__________和________两种,其中后者常用于GUI程序。 (py、pyw) 4、Python源代码程序编译后的文件扩展名为_________。(pyc) 5、使用pip工具升级科学计算扩展库numpy的完整命令是_________________。(pip install --upgrade numpy) 6、使用pip工具查看当前已安装的Python扩展库的完整命令是_____________。(pip list) 7、在IDLE交互模式中浏览上一条语句的快捷键是__________。(Alt+P) 8、在Python中__________表示空类型。(None) 9、列表、元组、字符串是Python的_________(有序?无序)序列。(有序) 10、查看变量类型的Python置函数是________________。(type()) 11、查看变量存地址的Python置函数是_________________。(id()) 12、以3为实部4为虚部,Python复数的表达形式为___________或________。(3+4j、 3+4J)

13、Python运算符中用来计算整商的是_________。(//) 14、Python运算符中用来计算集合并集的是_______。(|) 15、使用运算符测试集合包含集合A是否为集合B的真子集的表达式可以写作_______。 (A

几个常见的Python库

NumPy NumPy是Python科学计算的基础包,它提供了以下功能: 1)快速高效的多维数组对象ndarray; 2)用于对数组执行元素级计算以及直接对数组执行数学运算的函数;3)用于读写硬盘上基于数组的数据集的工具; 4)线性代数运算、傅里叶变换,以及随机数生成; 5)用于将C、C++、Fortran代码集成到Python的工具。 对于数值型数据,NumPy数组在存储和处理数据时要比内置的Python 数据结构高效得多。此外,由低级语言(比如C和Fortran)编写的库可以直接操作NumPy数组中的数据,无需进行任何数据复制工作。pandas pandas提供了使我们能够快速便捷地处理结构化数据的大量数据结构和函数。 用得最多的pandas对象是DataFrame,它是一个面向列的二维表结构,且含有行标和列标。

pandas兼具NumPy高性能的数组计算功能以及电子表格和关系型数据库灵活的数据处理功能。它提供了复杂精细的索引功能,以便更为便捷地完成重塑、切片和切块、聚合以及选取数据子集等操作。 pandas提供了大量适用于金融数据的高性能时间序列功能和工具。matplotlib matplotlib是最流行的用于绘制数据图表的Python库。它非常适合创建出版物上用的图表。它跟IPython结合得很好。 SciPy SciPy是一组专门解决科学计算中各种标准问题域的包的集合,主要包括: 1)scipy.integrate: 数值积分列程和微分方程求解器; 2)scipy.linalg: 扩展了由numpy.linalg提供的线性代数例程和矩阵分解功能; 3)scipy.optimize:函数优化器(最小化器)以及根查找算法; 4)scipy.signal:信号处理工具; 5)scipy.sparse:稀疏矩阵和稀疏线性系统求解器; IPython

Python标准库和GUI综合练习实验报告

实验报告 课程名称:Python编程基础与应用实验学期:2019年至2020年第1学期实验时间:2019年5 月10 日 专业: 班级: 学号: 姓名: 指导教师:

实践一python标准库和GUI综合练习 1.1实践:python标准库和GUI练习 1.1.1实验目的 1.熟练掌握python标准库中常用的库函数,理解它们的基本原理,会运用它们的常用 功能。 2.熟练运用python的thinkter包来构建GUI界面,掌握它的基本组件并学会运用它们。 1.1.2实验内容及步骤 1.分析问题 2.编写代码 3.运行程序 4.结果展示 1.1.3程序运行过程、方法和运行结果 1.使用tkinter来编写一个计算器小程序,实现+、-、*、\、\\等基本功能。思路: 1).考虑用类来包裹整个计算器,用类的属性存储界面对象、数据与运算符等。2).考虑使用eval()函数来执行一个字符串表达式,并返回表达式的值。import tkinter as tk # 先有整体框架,输入计算框,各种按键。 class App: def __init__(self, master): # 基本界面 self.master = master # 输入组件

self.initWidgets() # 表达式 self.hi = None def initWidgets(self): # 创建一个输入组件 self.show = https://www.360docs.net/doc/4318041541.html,bel(relief=tk.SUNKEN, width=23, bg="white", anchor=tk.W) # 对该输入组件使用pack布局 self.show.pack(side=tk.TOP, pady=10) p = tk.Frame(self.master) p.pack(side=tk.TOP) # 定义字符串的元组 names = ("1", "2", "3", "4", "5", "6", "7", "8", "9", "0", ".", "+", "-", "*", "**", "//", "/", "%", "=", "?",) # 遍历元组 for i in range(len(names)): # 创建按钮,放入frame中 b = tk.Button(p, text=names[i], width=5) b.grid(row=i//5, column=i % 5) # b.pack(side=tk.LEFT, padx=0, pady=5) # 为鼠标左键的单击事件绑定事件处理方法 b.bind("", self.click) # 为鼠标左键双击事件绑定事件处理方法 if b["text"] == "?": b.bind("", self.clean) # 定义一个记录输入数字次数的变量 self.i = 0

python练习题-

Python练习题库 By 郑红波2017-12-19 一、填空题 1.Python标准库math中用来计算平方根的函数是__________。(sqrt) 2.在Python中__________表示空类型。(None) 3.列表、元组、字符串是Python的_________(有序?无序)序列。(有序) 4.查看变量类型的Python内置函数是________________。(type()) 5.查看变量内存地址的Python内置函数是_________________。(id()) 6.表达式[1, 2, 3]*3的执行结果为______________________。([1, 2, 3, 1, 2, 3, 1, 2, 3]) 7.list(map(str, [1, 2, 3]))的执行结果为_____________________。([‘1’, ‘2’, ‘3’]) 8.已知x = 3,并且id(x)的返回值为496103280,那么执行语句x += 6 之后,表达式id(x) == 496103280 的值为___________。(False) 9.已知x = 3,那么执行语句x *= 6 之后,x的值为________________。(18) 10.表达式“[3] in [1, 2, 3, 4]”的值为________________。(False) 11.假设列表对象aList的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17],那么切片aList[3:7]得到的值是 ______________________。([6, 7, 9, 11]) 12.使用列表推导式生成包含10个数字5的列表,语句可以写为_______________。([5 for i in range(10)]) 13.假设有列表a = ['name', 'age', 'sex']和b = ['Dong', 38, 'Male'],请使用一个语句将这两个列表的内 容转换为字典,并且以列表a中的元素为“键”,以列表b中的元素为“值”,这个语句可以写为_____________________。(c = dict(zip(a, b))) 14.任意长度的Python列表、元组和字符串中最后一个元素的下标为________。(-1) 15.Python语句''.join(list('hello world!'))执行的结果是____________________。('hello world!') 16.转义字符’\n’的含义是___________________。(回车换行) 17.Python语句list(range(1,10,3))执行结果为___________________。([1, 4, 7]) 18.切片操作list(range(6))[::2]执行结果为________________。([0, 2, 4]) 19.表达式'ab' in 'acbed' 的值为________。(False) 20.Python 3.x语句print(1, 2, 3, sep=':') 的输出结果为____________。(1:2:3) 21.表达式int(4**0.5) 的值为____________。(2) 22.达式sorted([111, 2, 33], key=lambda x: -len(str(x))) 的值为____________。([111, 33, 2]) 23.已知列表对象x = ['11', '2', '3'],则表达式max(x) 的值为___________。('3') 24.表达式min(['11', '2', '3']) 的值为_________________。('11') 25.已知列表对象x = ['11', '2', '3'],则表达式max(x, key=len) 的值为___________。('11') 26.语句x = (3,) 执行后x的值为_______________。((3,)) 27.语句x = (3) 执行后x的值为________________。(3) 28.已知x = {1:2},那么执行语句x[2] = 3之后,x的值为________________。({1: 2, 2: 3}) 29.字典对象的_____________方法返回字典中的“键-值对”列表。(items()) 30.使用列表推导式得到100以内所有能被13整除的数的代码可以写作 ___________________________________。([i for i in range(100) if i%13==0]) 31.表达式3 ** 2 的值为_________。(9) 32.表达式3 * 2的值为___________。(6) 33.已知x = [3, 5, 7],那么执行语句x[len(x):] = [1, 2]之后,x的值为______________。([3, 5, 7, 1, 2]) 34.表达式list(zip([1,2], [3,4])) 的值为________________________。([(1, 3), (2, 4)]) 35.已知x = [1, 2, 3, 2, 3],执行语句x.pop() 之后,x的值为_____________。([1, 2, 3, 2]) 36.表达式[x for x in [1,2,3,4,5] if x<3] 的值为_____________________。([1, 2]) 37.表达式[index for index, value in enumerate([3,5,7,3,7]) if value == max([3,5,7,3,7])] 的值为 __________________。([2, 4])

D_python标准库 37

代码请参见 Python-X.tgz\Python-2.4.4\Demo\imputil\knee.py 当然, 你可以导入该模块,如 Example 14-30 所示. 14.23.0.1. Example 14-30. 使用 knee 模块 File: knee-example-1.py import knee # that's all, folks! 14.24. tzparse 模块 (已废弃) tzparse 模块用于解析时区标志( time zone specification ). 导入时它会自动分析 TZ 环境变量. 如 Example 14-31 所示. 14.24.0.1. Example 14-31. 使用 tzparse 模块 File: tzparse-example-1.py import os if not os.environ.has_key("TZ"): # set it to something... os.environ["TZ"] = "EST+5EDT;100/2,300/2" # importing this module will parse the TZ variable import tzparse print "tzparams", "=>", tzparse.tzparams print "timezone", "=>", tzparse.timezone print "altzone", "=>", tzparse.altzone print "daylight", "=>", tzparse.daylight print "tzname", "=>", tzparse.tzname tzparams => ('EST', 5, 'EDT', 100, 2, 300, 2) timezone => 18000 altzone => 14400 daylight => 1 tzname => ('EST', 'EDT') 除了这些变量之外, 该模块还提供了一些用于时间计算的函数.

D_python标准库 16

3.3. Queue 模块 Queue 模块提供了一个线程安全的队列 (queue) 实现, 如 Example 3-2 所示. 你可以通过它在多个线程里安全访问同个对象. 3.3.0.1. Example 3-2. 使用 Queue 模块 File: queue-example-1.py import threading import Queue import time, random WORKERS = 2 class Worker(threading.Thread): def _ _init_ _(self, queue): self._ _queue = queue threading.Thread._ _init_ _(self) def run(self): while 1: item = self._ _queue.get() if item is None: break # reached end of queue # pretend we're doing something that takes 10?00 ms time.sleep(random.randint(10, 100) / 1000.0) print "task", item, "finished" # # try it queue = Queue.Queue(0) for i in range(WORKERS): Worker(queue).start() # start a worker for i in range(10): queue.put(i) for i in range(WORKERS):

python考试复习题库

一、填空题 1、Python 安装扩展库常用的是_工具。(pip) 2、Python 标准库math 中用来计算平方根的函数是。(sqrt ) 3、Python 程序文件扩展名主要有和两种,其中后者常用于GUI 程序。(py 、pyw) 4、Python 源代码程序编译后的文件扩展名为。(pyc ) 5、使用pip 工具升级科学计算扩展库numpy 的完整命令是。(pip install –upgrade numpy ) 6、使用pip 工具查看当前已安装的Python 扩展库的完整命令是。(pip list ) 7、在IDLE 交互模式中浏览上一条语句的快捷键是。(Alt+P ) 8、使用pip 工具查看当前已安装Python 扩展库列表的完整命令是。(pip list ) 9 、在Python 中表示空类型。(None ) 10、列表、元组、字符串是Python 的(有序?无序)序列。(有序) 11、查看变量类型的Python 内置函数是。(type() ) 12、查看变量内存地址的Python 内置函数是。(id()) 13、以3 为实部4 为虚部,Python 复数的表达形式为_ 或。(3+4j 、3+4J ) 14、Python 运算符中用来计算整商的是。(//) 15、Python 运算符中用来计算集合并集的是_。(|) 16、使用运算符测试集合包含集合 A 是否为集合 B 的真子集的表达式可以写作_。(A < B ) 17、表达式[1, 2, 3]*3 的执行结果为。([1, 2, 3, 1, 2, 3, 1, 2, 3] ) 18、list(map(str, [1, 2, 3])) 的执行结果为。([ ‘1’, ‘)2’, ‘3’] 19、语句x = 3==3, 5 执行结束后,变量x 的值为。((True, 5 )) 20、已知x = 3 ,那么执行语句x += 6 之后,x 的值为。(9) 21、已知x = 3,并且id(x) 的返回值为496103280 ,那么执行语句x += 6 之后,表达式id(x) == 496103280 的值为_。(False ) 22、已知x = 3 ,那么执行语句x *= 6 之后,x 的值为。(18 ) 23、为了提高Python 代码运行速度和进行适当的保密,可以将Python 程序文件编译为扩展名的文件。(pyc ) 24、表达式“[3] in [1, 2, 3, 4] 的值为”。(False ) 25、列表对象的sort() 方法用来对列表元素进行原地排序,该函数返回值为。(None ) 26、假设列表对象aList 的值为[3, 4, 5, 6, 7, 9, 11, 13, 15, 17] ,那么切片aList[3:7] 得到的值是。([6, 7, 9, 11] ) 27、使用列表推导式生成包含10 个数字5 的列表,语句可以写为。([5 for i in range(10)] ) 28、假设有列表 a = [ ‘name’, ‘age’和, ‘b s=e[x’‘]Dong’, 38, ‘,M请a le使’用]一个语句将这两个列表的内容转换为字典, 并且以列表 a 中的元素为“键”,以列表 b 中的元素为“值”,这个语句可以写为。(c = dict(zip(a, b)) ) 29、任意长度的Python 列表、元组和字符串中最后一个元素的下标为。(-1) 30、Python 语句”.join(list( ‘hello wo执rl行d! 的结’果))是。(’hello world!)’ 31、转义字符’n’的含义是。(回车换行) 32、Python 语句list(range(1,10,3)) 执行结果为。([1, 4, 7] ) 33、表达式list(range(5)) 的值为。([0, 1, 2, 3, 4] ) 34、命令既可以删除列表中的一个元素,也可以删除整个列表。(del) 35、已知a = [1, 2, 3] 和b = [1, 2, 4] ,那么id(a[1])==id(b[1]) 的执行结果为_。(True) 36、表达式int( ‘123’, 1的6值)为。(291) 37、表达式int( ‘123’,的8值)为。(83 ) 38、表达式int( ‘123的’值) 为。(123 ) 39、表达式int( ‘101’的,2值)为。(5) 40、表达式abs(-3) 的值为_。(3)

Python常用类库

python 常用类库 1.基本安装 https://www.360docs.net/doc/4318041541.html,/官方标准Python开发包和支持环境,同时也是Python的官方网站; https://www.360docs.net/doc/4318041541.html,/集成多个有用插件的强大非官方版本,特别是针对Windows环境有不少改进; 2.Python文档 Python库参考手册 Python Tutorial中文版 Byte of Python 可以代替Tutorial使用,有中文译版的入门书籍。 Dive into Python 一本比较全面易懂的入门书,中文版翻译最近进步为很及时的5.4了。英文版则正在写针对Python 3.x的版本。 缺点是此书针对的Python版本比较陈旧,会给出一些过时的优化建议,建议同时阅读赖勇浩的<Dive into Python >大补贴。 《深入Python 3》中文版 Python社区官方建议采用的Python编码风格(啄木鸟社区上的中文译文)。相关的代码检查工具,参考:用PEP 8检查Python Coding风格。 Google SoC 建议的Python 编码风格(Python 编码风格指南中译版(Google SOC)) Google 原版的Python 编码风格指南SoC 的那个指南基本上是在这个上面做的修改和增补。 Zoom.Quiet的文档集(包括大量Python内容) 豆瓣上的Python相关书籍推荐 Pythonic到底是什么玩意儿? 啄木鸟社区上的Python资源索引 2.1推荐资源站点 Parnassus山的拱顶巨大的Python代码库,包罗万象。既可以从上面下载代码参考学习,同时也是与Python有关程序的大列表。 Python号星际旅行船著名Python社区,代码、文档、高人这里都有。 https://www.360docs.net/doc/4318041541.html,的Python程序设计知识数据库Python程序设计知识库,都是与Python有关的程序设计问题及解决方法。 啄木鸟Pythonic 开源社区著名的(也可以说是最好的)国内Python开源社区。 赖勇浩推荐的几个好玩又有难度的编程网站 2.2其他参考资料 ZDNET文章:学习Python语言必备的资源 各种实用代码片段 Python编程技巧笔记 如何获得Python脚本所在目录的位置 如何方便地给Python环境注册新类库 Python几种并发实现方案的性能比较

相关文档
最新文档