python编程设计教程课后答案_《Python程序设计》习题与答
小时代的歌案-python教材答案
第12章 Windows系统编程
12.1 查阅相关资料,解释注册表⼏⼤根键的⽤途。 答:略
12.2 选择⼀个编写好的Python程序,将其转换为exe可执⾏⽂件。 答:略,请参考书中相关介绍。
12.3 编写代码,使⽤⾄少3中不同的⽅法启动Windows⾃带的计算器程序。 答: 第⼀种⽅法: >>> import os
>>> os.system('')
第⼆种⽅法: >>> import os
>>> os.popen('')
第三种⽅法: >>> import os
>>> os.startfile('')
第四种⽅法:
setupexe官方安装版>>> import win32api
>>> win32api.ShellExecute(0, 'open', '', '', '', 1)
第五种⽅法:
>>> import win32process >>> handle=win32process.CreateProcess(r'c:\\windows\\system32\\','', None,None,0,
win32process.CREATE_NO_WINDOW, None, None,win32process.STARTUPINFO())python入门教程2
12.4 编写代码,检测您所使⽤的操作系统版本。 答:略,请参考12.5节。
第13章 多线程编程
13.1 简单叙述创建线程的⽅法。 答:
Thread类⽀持使⽤两种⽅法来创建线程,⼀种是为构造函数传递⼀个可调⽤对象,另⼀种是继承Thread类并在派⽣类中重写__init__()和run()⽅法。创建了线程对象以后,可以调⽤其start()⽅法来启
动,该⽅法⾃动调⽤该类对象的run()⽅法,此时该线程处于alive状态,直⾄线程的run()⽅法运⾏结束。
13.2 简单叙述Thread对象的⽅法。 答:
(1)join([timeout]:阻塞当前线程,等待被调线程结束或超时后再继续执⾏当前线程的后续代码,参数timeout⽤来指定最长等待时间,单位为秒。
(2)isAlive():测试线程是否处于运⾏状态
(3)start():⾃动调⽤run()⽅法,启动线程,执⾏线程代码。
(4)run():线程代码,⽤来实现线程的功能与业务逻辑,可以在⼦类中重写该⽅法来⾃定义线程的⾏为。
localhost访问php文件13.3 简单叙述线程对象的daemon属性的作⽤和影响。 答:
在脚本运⾏过程中有⼀个主线程,若在主线程中创建了⼦线程,当主线程结束时根据⼦线程daemon属性值的不同可能会发⽣下⾯的两种情况之⼀:1)当某⼦线程的daemon属性为False时,主线程结束时会检测该⼦线程是否结束,如果该⼦线程尚未完成,则主线程会等待它完成后再退出;2)当某⼦线程
的daemon属性为True时,主线程运⾏结束时不对该⼦线程进⾏检查⽽直接退出,同时所有daemon值为True 的⼦线程将随主线程⼀起结束,⽽不论是否运⾏完成。daemon属性的值默认为False,如果需要修改,则必须在调⽤start()⽅法启动线程之前进⾏修改。
13.4 解释⾄少3种线程同步⽅法。 答:
(1)使⽤Condition对象可以在某些事件触发后才处理数据,可以⽤于不同线程之间的通信或通知,以实现更⾼级别的同步。Condition对象除了具有acquire()和release()⽅法之外,
还有wait()、notify()、notify_all()等⽅法。下⾯通过经典⽣产者/消费者问题来演⽰Condition对象的⽤法。
(2)Queue模块(在Python 3中为queue模块)实现了多⽣产者/多消费者队列,尤其适合需要在多个线程之间进⾏信息交换的场合,该模块的Queue对象实现了多线程编程所需要的所有锁语义。
(3)Event对象是⼀种简单的线程通信技术,⼀个线程设置Event对象,另⼀个线程等待Event对象。Event对象的set()⽅法可以设置Event 对象内部的信号标志为真;clear()⽅法可以清除Event对象内部的信号标志,将其设置为假;isSet()⽅法⽤来判断其内部信号标志的状态;wait()⽅法只有在其内部信号状态为真时将很快地执⾏并返回,若Event对象的内部信号标志为假,wait()⽅法将⼀直等待⾄超时或内部信号状态为真。
第14章 数据库编程
14.1 简单介绍SQLite数据库。 答:
SQLite是内嵌在Python中的轻量级、基于磁盘⽂件的数据库管理系统,不需要服务器进程,⽀持使⽤SQL语句来访问数据库。该数据库使⽤C语⾔开发,⽀持⼤多数SQL91标准,⽀持原⼦的、⼀致的、独⽴的和持久的事务,不⽀持外键限制;通过数据库级的独占性和共享锁定来实现独⽴事务,当多个线程同时访问同⼀个数据库并试图写⼊数据时,每⼀时刻只有⼀个线程可以写⼊数据。SQLite⽀持2TB⼤⼩的单个数据库,每个数据库完全存储在单个磁盘⽂件中,以B+树数据结构的形式存储,⼀个数据库就是⼀个⽂件,通过简单复制即可实现数据库的备份。
14.2 使⽤Python内置函数dir()查看Cursor对象中的⽅法,并使⽤内置函数help()查看其⽤法。
答:略。
14.3 叙述使⽤Python操作Access数据库的步骤。 答:
(1)建⽴数据库连接
import win32com.client
win用英语怎么说读
xml转换成图片conn = win32com.client.Dispatch(r'ADODB.Connection')
DSN = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=C:/MyDB.mdb;' conn.Open(DSN)
(2)打开记录集
rs = win32com.client.Dispatch(r'ADODB.Recordset') rs_name = 'MyRecordset' #表名 rs.Open('[' + rs_name + ']', conn, 1, 3)
(3)操作记录集
rs.AddNew()
rs.Fields.Item(1).Value = 'data' rs.Update()
(4)操作数据
conn = win32com.client.Dispatch(r'ADODB.Connection')
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论