自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(676)
  • 资源 (13)
  • 收藏
  • 关注

原创 Python中matplotlib使用3

在matplotlib中,可以将数据用离散的点来表示,这种表示方式叫做散点图。

2023-12-31 12:04:43 719

原创 Python中matplotlib库的使用2

在中提到了使用折线图来表示1-5的平方值。除了折线图之外,还可以使用条形图来表示这些数据。条形图表示一组分类数据,例如刚刚提到的1-5的平方值。

2023-12-31 10:59:09 683

原创 Python中matplotlib库的使用1

matplotlib是一个数学绘图库,可以将数据通过图形的方式显示出来,也就是数据可视化。

2023-12-29 20:39:48 1673

原创 Python中使用SQLite数据库的方法2-2

从图6中可以看出,execute()方法执行的SQL语句表示向名为“初一5班”的表单中插入3个值,分别是“YANG”,“10”和“98”,与“姓名”、“学号”和“成绩”三个字段对应。在读取SQLite数据库文件时,与写入数据库文件相同,需要导入sqlite3模块,并且连接要打开的数据库文件,之后创建Cursor类对象,代码如图10所示。通过“3.2 创建Cursor类的对象”中创建的Cursor类的对象cur创建表单及字段,代码如图5所示。在提交修改之后,需要关闭数据库文件,代码如图8所示。

2023-12-29 19:08:07 523

原创 Python中使用SQLite数据库的方法2-1

SQLite数据库是一种轻量级的、优秀的开源关系型数据库。它使用Python的标准库实现,并且存储数据库在普通文件中。这些文件在不同机器和操作系统之间是可以移植的,在很多安卓手机中,也是把SQLite作为嵌入数据库使用。在数据库文件的一般格式如图4所示。图4 数据库文件的一般格式SQLite数据库文件一般由“表单”组成,如图4①所示,每个表单包含多个“字段”,如图4②所示,而每个字段包含多个“值”,如图4③所示。

2023-12-29 19:05:22 401

原创 Python中JSON模块的使用

JSON是JavaScript Object Notation即Javascript对象简谱的缩写。JSON是一种轻量级的数据交换格式,JSON数据是由键值对组成的结构,与Python中的字典类似,由尖括号包围的键值对组成,键和值的类型可以是字符串、数字、布尔值、数组和对象。注意1,JSON数据中的字符串用双引号包围。

2023-12-28 20:53:09 463

原创 Pygame中实现图片旋转

在中我们实现了一个移动的大猩猩,接下来在该程序的基础上实现大猩猩图片的旋转,也就是点击了鼠标后,大猩猩旋转一周,之后继续移动。

2023-11-27 20:42:33 1698

原创 Python网络编程多线程实现异步服务端

ThreadingTCPServer类会为每个连入服务端的客户端创建一个新的线程,在每个新线程中完成对客户端的操作,因此各个客户端之间互不影响,实现了异步服务器。相关链接1 服务端的同步和异步:同步指的是必须完成一项操作之后才能继续下一项操作,比如必须接收了客户端A的数据之后才能接收客户端B的数据;而异步指的是多项操作可以同时进行,接收客户端A的数据和接收客户端B的数据可以同时进行。同步服务器可以看作是阻塞的,异步服务器可以看作是非阻塞的。

2023-11-17 10:39:34 568

原创 Python中通过socketserver库创建服务端

要创建一个服务端,必须定义socketserver库中的TCPServer类的实例,而定义该实例时需要指定请求处理(request handler)对象,该对象的定义了服务端如何处理客户端请求。BaseRequestHandler类是所有请求处理(request handler)对象类的父类。因此,需要首先定义socketserver库中BaseRequestHandler类的派生类,代码如图2所示。图2 定义socketserver库中BaseRequestHandler类的派生类。

2023-11-08 16:09:23 538

原创 Dev-C调试的基本方法2-2

在图6所示的状态下,点击单步调试(F7)会继续调试下一行,而如果想结束在函数中的调试,则点击图4③所示的跳出函数,或Ctrl+F8按键跳出f()函数,程序将会停在图5所示的第11行处。点击图4⑥所示的“添加监视”按键,接下来在弹出的“新监视表达式”窗口中输入要监视的表达式,如图11所示,点击“OK”按键。当调试程序时,程序停在如图8所示的位置处,点击图9①所示的“局部变量”,可以查看当前程序的局部变量值,如图9②所示。点击图4⑤所示的按键或者F6按键,停止调试,此时按键状态恢复到图2所示。

2023-11-03 20:35:13 958

原创 Dev-C调试的基本方法2-1

在Dev-C中调试程序,首先需要在程序中设置断点,之后以调试的方式运行程序。

2023-11-03 20:31:42 1138

原创 Python网络编程之数据的主机字节序与网络字节序

数据的主机字节序指的是在高位内存保存数据的高位,在低位内存保存数据的低位。在Python中套接字实现服务端和客户端3-1_棉猴的博客-CSDN博客中提到服务端监听的端口号是12345,代码为十进制的12345转换为十六进制是0x00003039,其在内存中的格式如图1①所示。图1 主机字节序与网络字节序从图1①中可以看到,左侧是内存低位,右侧为内存高位。这种把数据低位保存到内存低位,数据高位保存到内存高位的方式又叫“小头”(little-endian)。

2023-10-25 11:30:58 412

原创 Python网络编程中getsockname()和getpeername()的用法

在socket的tcp通信中,getsockname()和getpeername()函数用来获取本机和对端的IP地址和对端口号。

2023-10-23 11:27:56 488

原创 Pygame中实现图片的移动

在和中提到将鼠标设置为指定图片。接下来在该文章涉及到的代码基础之上,实现图片的移动,效果如图1所示。图1 图片移动效果从图1中可以看出,导入一个大猩猩的图片,让大猩猩图片可以在创建的屏幕上左右移动。

2023-10-19 20:54:07 718

原创 Python网络编程改良版服务端

在中提到服务端可以接收来自客户端的连接,并且创造新的套接字与客户端进行数据通信。此时的服务端只能与一个客户端进行数据通信,如果有多个客户端连接服务端,该怎么对服务端进行改良呢?

2023-10-17 11:18:49 108

原创 Python网络编程改良版客户端

在中提到,客户端可以通过connect()方法连接服务端,而连接成功的前提是服务端在必须客户端连接之前就要等待连接。

2023-10-17 10:12:27 98

原创 Python中使用IDLE调试程序

在程序代码界面中点击“F5”,运行程序,此时之前弹出的“Debug Control”窗口会被激活,如图3所示。图3①中表示当前调试位于哪行代码,“line 1”表示第1行代码;选中图3②中的“Globals”,表示显示程序中的全局变量;图3③中的按键用来控制调试步骤,“Go”表示代码执行到下一个断点,“Step”表示进入到函数中调试;“Over”表示单步执行,但是不进入到函数中;“Out”表示当在函数中调试时,跳出函数;“Quit”表示结束调试。图3 Debug Control窗口。

2023-10-13 22:02:16 1755

原创 Pygame中将鼠标形状设置为图片2-2

其中,第20行代码调用pygame.mouse模块中的set_visible()方法,将其参数设置为False,表示隐藏鼠标;第24行代码使用使用pygame.sprite模块中的RenderPlain()方法将mouse加入到Group中,实际上RenderPlain()方法与Group()方法的作用相同。其中,第26行中的going是控制程序是否运行的标志,当用户点击屏幕右上角的退出按键后,根据28-30行的代码,将going设置为False,此时while循环结束,程序退出;

2023-10-12 18:53:04 574

原创 Pygame中将鼠标形状设置为图片2-1

要将鼠标的形状改为图片,需要要导入该图片。因此,首先定义导入图片的方法,代码如图2所示。图2 导入图片的代码从图中代码可以看出,导入图片的方法的名字叫做load_image(),该方法的参数name表示要导入图片的路径。第4行待用通过pygame.image模块的load()方法导入图片,该方法的返回值image是一个Surface类型的变量,表示导入的图片。此时已经成功地导入了图片,为什么还有有接下来的5-7行代码呢?如果没有这几行代码,表示鼠标的图片显示的效果如图3所示。

2023-10-12 18:49:53 789

原创 Python中的bytes类型

可以通过字符串定义bytes类型的变量,也可以通过bytes()方法定义。给单引号或者双引号加一个前缀b,表示“字节串”,代码如图1所示。图1 通过字符串定义通过bytes()方法定义的代码如图2所示,此时以二进制格式显示bytes变量。图2 通过bytes()方法定义当bytes元组中包含汉字时,无法通过“1.1 通过字符串定义”中提到的方法进行定义,如图5所示。图5 不能通过字符串加前缀方式定义汉字bytes可以使用bytes()方法定义,代码如图6所示。

2023-10-12 15:47:33 1257

原创 Python中套接字实现服务端和客户端3-3

如果不能成功连接服务器,connect()方法会间隔一段时间后再次尝试连接,此时代码会阻塞等待connect()的再次尝试,当尝试了一定次数后仍无法连接服务器,则connect()方法会抛出TimeoutError,即连接超时异常。从图5可以看出,对于客户端来说,首先创建套接字,之后通过创建的套接字去连接服务端,如果连接成功,则继续通过该套接字向服务端发送数据,最后关闭套接字。通过connect()方法连接服务端,该方法的格式如下所示。客户端创建套接字的方法与服务端相同,代码如下所示。

2023-10-10 22:54:24 209

原创 Python中套接字实现服务端和客户端3-2

当创建了用于数据通信的套接字后,使用recv()方法接收来自客户端的数据,如果客户端没有发送数据,则程序会阻塞在recv()方法处,直到接收到客户端的数据,程序才会向下运行。accept()方法的返回值是一个元组,包含了新创建的套接字和连入服务端的客户端的地址信息,该地址信息包含了客户端的IP地址和端口号。其中conn表示新创建的用于数据传输的套接字,addr是一个元组,保存了连入服务端的客户端的IP地址和端口号。该方法的格式如下所示。当有客户端连接服务端时,可以看到服务端套接字的状态,如图3所示。

2023-10-10 16:19:47 67

原创 Python中套接字实现服务端和客户端3-1

网络服务端和客户端是通过套接字来进行通信的。通过套接字来创建服务端和客户端的步骤是不同的。

2023-10-10 16:15:10 97

原创 Python中的with as语句

在中提到,对于在完成文件写入之后,要通过close()方法关闭已经打开的文件,这样才能保证后续对文件操作的正确性。

2023-10-09 10:51:31 698

原创 Python中列表生成器的使用

在自定义函数中,通过关键字yield使用列表生成器,代码如图5所示。图5 通过自定义函数使用列表生成器从图中可以看出,在自定义函数f()中,使用yield返回了i的平方。调用f(),并且将返回值保存在ge2中,此时的ge2的类型为generator,即列表生成器。接下来就可以通过next()或者for循环通过列表生成器来产生相应数据了。

2023-10-07 10:09:41 213

原创 Python中使用IDLE调试程序

在程序代码界面中点击“F5”,运行程序,此时之前弹出的“Debug Control”窗口会被激活,如图3所示。图3①中表示当前调试位于哪行代码,“line 1”表示第1行代码;选中图3②中的“Globals”,表示显示程序中的全局变量;图3③中的按键用来控制调试步骤,“Go”表示代码执行到下一个断点,“Step”表示进入到函数中调试;“Over”表示单步执行,但是不进入到函数中;“Out”表示当在函数中调试时,跳出函数;“Quit”表示结束调试。图3 Debug Control窗口。

2023-10-02 20:33:18 1372

原创 Pygame实现黑客帝国屏幕效果

黑客帝国的屏幕效果如图1所示。图1 黑客帝国屏幕效果实现以上功能,实际上就是在Pygame中创建两个Surface,其中一个Surface是纯黑屏背景,用来覆盖之前的屏幕,达到数字逐渐消失的效果;另一个Surface用来显示数字,达到数字下移的效果。

2023-09-30 16:44:42 325

原创 Pygame中监控鼠标动作的方法

在中提到,通过在while True循环中获取队列中事件的方法监控键盘动作。监控鼠标动作的方法与监控键盘动作的方法相同。

2023-09-28 16:44:04 909

原创 PyCharm中使用pyqt5的方法2-2

最后点击对话框中的“OK”按键,如图12③所示。在“Progam:”栏中选择右侧的文件夹按键,选择QtDesigner所在的路径,QtDesigner所在的路径位于图8③所示的路径下的“\QtDesigner\designer.exe”,如图11②所示;在PyCharm的菜单栏中选择“File->Settings”,在打开的设置对话框中的左侧选择“Tools->External Tools”(外部工具)如图10①所示,接下来选择右侧列表左上角的“+”号,如图10②所示。图13 配置好的外部工具。

2023-09-27 17:15:59 1570

原创 PyCharm中使用pyqt5的方法2-1

qt可以用来设计界面,而pyqt是将qt移植到Python上,通过python语言设计界面,目前最新的版本是qt5。在PyCharm中使用pyqt5的步骤分为下载和配置两个部分。

2023-09-27 17:10:56 817

原创 Pygame中Sprite的使用方法6-6

其中,screen表示程序的整个界面,将其绘制为白色背景;之后通过all_sprites_list.draw()绘制碰撞后剩下的方块(碰撞的方块已经在group中删除);最后显示重新绘制的内容。每次碰撞发生后,程序界面需要重新绘制,代码如下所示。以上程序的完整代码如下所示。

2023-09-24 18:59:39 127

原创 Pygame中Sprite的使用方法6-5

block_list包含了所有绿色方块的Group实例,因为在碰撞发生后,被碰撞的绿色方块要消失,因此,把spritecollide()方法的第三个参数设置为True。其中,通过pygame.mouse.get_pos()获取鼠标的当前位置,并将鼠标的横坐标pos[0]赋值给蓝色方块的x坐标player.rect.x,鼠标的纵坐标pos[1]赋值给蓝色方块的y坐标player.rect.y。蓝色方块会随着鼠标移动,当碰到绿色方块时,则当前分数加1,当碰到红色方块时,当前分数减1。

2023-09-24 18:57:05 155

原创 Pygame中Sprite的使用方法6-4

首先定义Sprite派生类Block,Block表示程序中的方块,代码如下所示。其中,Block类的__init__()方法的color参数表示方块的颜色,width和height表示方块的宽度和高度。在__init__()方法中首先调用父类也就是Sprite类的__init__()方法;之后通过pygame.Surface()方法创建方块;接下来调用fill()方法为方块填充颜色;最后通过get_rect()获取方块的位置。相关链接1 pygame.sprite.Sprite类的使用,请参考。

2023-09-24 18:53:29 317

原创 Python中转换IP地址格式的方法

IP地址一般用字符串“XXX.XXX.XXX.XXX”表示。例如,“192.168.147.1”、“127.0.0.1”等。在确定主机IP地址段时,需要将IP地址的每段转换成数字。

2023-09-22 16:07:29 750

原创 Python中获取主机名和IP地址的方法

在Python中,可以通过socket模块中gethostname()、getfqdn()和gethostbyname()方法获取本地和远程主机名和IP地址。

2023-09-20 11:21:39 1790

原创 Pygame中Sprite类的使用6-3

pygame.sprite.Group类是一个容器,可以包含多个Sprite类的实例。可以对Group类中的Sprite实例进行同一的绘制和更新,使得代码得到了简化。

2023-09-19 13:09:51 244

原创 Python中异常处理4-4

抛出的异常实际上就是一个异常类或者是类的实例,因此自定义异常就是自定义异常类。代码如图2所示。图2 自定义异常类在图2中,定义了一个名为yangError的类,该类的父类是Exception,即所有异常类的父类。相关链接1 Python中类的相关知识请参考Python中类的使用1_python类使用_棉猴的博客-CSDN博客。收到抛出yangError异常的代码如图3所示。图3 手动抛出自定义异常。

2023-09-16 17:03:30 287

原创 Python中的异常处理4-3

在《Python中的异常处理4-2》中提到,except语句后面可以加上具体的异常类型。有时我们需要这个异常的其他细节,此时可以使用except...as语句。

2023-09-14 10:52:11 88

原创 Pygame中Sprite类的使用6-2

之后将z1的rect的x每次减5,表示每次循环僵尸向左侧移动5个单位,之后就是通过draw()和update()来绘制并且在新位置上显示僵尸;每绘画一次,就是一帧。tick()函数的作用是设置FPS的值,参数10表示FPS的值10,即每秒所运行的帧数不超过10次,也就是保证了while循环每秒只能循环10次。让僵尸能够动起来,也就是让僵尸从屏幕右边走到屏幕左边,此时只需要使用while循环,改变僵尸图片的x轴坐标即可,代码如下所示。之后,在while循环的内部,来设置FPS的值,代码如下所示。

2023-09-10 18:17:54 203

原创 Pygame中Sprite类的使用6-1

在Pygame中有一个名为sprite的模块,又叫做“精灵”模块。通过该模块中的Sprite类可以实现图形的绘制、移动以及碰撞检测等功能。

2023-09-10 18:14:28 526

Windows7下VS2008维护模式破解工具.rar

VS2008试用版的估计期X天后结束,需要重新输入注册码时。Windows7会将VS2008维护模式中输入注册码的控件隐藏,使用本工具,可以在Windows7下显示VS2008维护模式中的输入注册码的控件,完成VS2008的重新注册!

2019-05-31

贪吃蛇源代码

Windows控制台的贪吃蛇源代码,基于VS2010,可实现速度控制。

2019-01-16

基于VS2015套接字完成端口模型源代码

《VS2015实现套接字完成端口模型》文章中提到的套接字完成端口模型源代码。文章地址为https://blog.csdn.net/hou09tian/article/details/80911809

2018-07-04

基于对话框程序的注册码快捷键粘贴功能的实现

程序的注册码的格式一般为“XXXX-XXXX-XXXX-XXXX”,在使用时将注册码输入到多个编辑框控件中,每个编辑框中输入一段。手动输入注册码非常麻烦,而采用快捷键进行粘贴时,只能逐个编辑框进行粘贴,而不能一次性粘贴完毕。 以上功能可以通过编程实现。

2017-04-23

Windows文件系统过滤驱动开发教程(第二版)

大约两年以前我在驱动开发网上发表了一组描述如何开发 Windows 文件系统过滤驱动的文章。非常庆幸这些文章能 给大家带来帮助。 原本的文章中我使用了自己编写的代码。我不打算在这里论述代码风格的优劣并发起一场辩论,无可怀疑的是,读者们 大多喜欢看到类似微软范例的代码。为此我把文章中的代码换成微软标准的文件过滤驱动范例 sfilter 的代码。赠于喜欢此 书的读者和驱动开发的后来者们。 网友们帮我整理的原版已经非常流行。为了区别起见,称为第二版。

2017-04-23

基于Java语言的安卓系统编程学习第一部分

基于Java语言的安卓系统程序编程:包括Eclipse环境搭建、项目结构解析、按键、菜单、控件UI、图像按键等。本内容为第一部分。

2017-04-23

基于IOAPIC重定位的 键盘监听技术及防御

键盘监听技术会引起个人重要信息的泄露。通过对IOAPIC重定位技术的研究,实现了针对单核系统和多核系统的键盘监听和记录。在Windows Driver Kits7.0.1中编译生成的驱动,能够记录键盘信息,引起重要信息的泄露。通过提出的防御键盘监听的方法能够有效地预防键盘监听。

2017-03-27

Windows Graphics Programming Win32 Gdi And Directdraw.chm

This book is about Windows graphics programming using Win32 GDI API, with an introduction to DirectDraw, and an even more brief introduction to Direct3D Immediate Mode. It covers common features implemented on all Win32 platforms, pure 32-bit features implemented on Windows NT/2000 only, and the most recent additions to GDI for Windows 2000 and Windows 98. For example, alpha blending, transparent bit blting, gradient fill, right-to-left reading order, layered window, and sending JPEG/PNG images to printer are fully covered.

2017-01-31

DirectDraw中文手册

DirectX 编程是现在图形编程特别是游戏编程的热点.而广大的 DirectX 编程爱好者被其帮助文档中的英文所苦,于是民间有不少的爱好者开始自己翻译其手册为中文,然后放在网上让大家共享.然而,由于缺乏组织,很多人都在做着重复的工作,结果浪费了很多的时间和精力.如果把这些自发的力量组织起来,无疑是件很有意义的事.而实现跨地域的组织工作,正是 Internet 的特长.因此我们决定在国际互联网上建立一个站点来专门进行 DirectX 手册的翻译组织工作,然后把翻译过的作品放在我们的主页上让每一个需要的人都可以得到.

2017-01-31

VS2008编译驱动程序的配置方法

编译驱动程序的常用方法有两种,一种是通过WDK/DDK的COMMAND环境进行编译,另外一种是通过Visual Studio系列软件实现界面编译。通过Visual Studio编译驱动程序需要对其进行相关配置,本文以VS2008和WDK7600为例,讲解了实现编译驱动程序的配置方法。

2016-10-23

ddkwizard_setup_v1.2.0a及ddkward.cmd

VS2008产生及编译驱动的工具。包括ddkwizard_setup_v1.2.0a.exe,ddkbuild_bat和ddkbuild_cmd。

2016-10-23

filespy源代码

能通过Netware Client32连接到网络,查看所有的用户在使用哪些文件,还可以查看某个用户对文件的权限,以及用户登录的时间等,当网络上要更新某个应用程序时,这个软件可以用来要求正在使用程序的用户退出.

2016-09-25

黑客调试技术解密pdf

本书是帮助应用程序员和系统程序员理解调试过程的指南,揭示了各种调试器的实用使用技巧,说明了如何操作调试器以及如何客服障碍和修复调试器,介绍了黑客利用调试器和反汇编器来寻找程序弱点和实施攻击的方法

2016-09-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除