现代操作系统例如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。
“多任务”,简单地说,就是操作系统可以同时运行多个任务。比方说你一边在浏览器上网查资料,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台同时运行着,只是桌面上没有显示而已。
现在多核CPU已经非常……继续阅读 »
3年前 (2020-05-11) 1247浏览 0评论
238个赞
Pickle
在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict:
d = dict(name='Woodman', age=35, salary=5000)
可以随时修改变量,比如把name改成’Zhang’,但是一旦程序结束,变量所占用的内存就被操作系统全部回收。如果没有把修改后的̵……继续阅读 »
3年前 (2020-05-06) 1082浏览 0评论
0个赞
如果我们要操作文件、目录,可以在命令行下面输入操作系统提供的各种命令来完成。比如dir、cp等命令。
如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操作系统提供的接口函数,Python内置的os模块也可以直接调用操作系统提供的接口函数。
打开Python交互式命令行,我们来看看如何使用os模块的基本功能:
……继续阅读 »
3年前 (2020-05-05) 1013浏览 0评论
0个赞
StringIO
很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO顾名思义就是在内存中读写str。要把str写入StringIO,我们需要先创建一个StringIO,然后,像文件一样写入即可:
>>> from io import StringIO
>>> f = StringIO()
>……继续阅读 »
3年前 (2020-05-05) 1185浏览 0评论
0个赞
读写文件是最常见的IO操作。Python内置了读写文件的函数,用法和C是兼容的。
读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象……继续阅读 »
3年前 (2020-04-30) 1039浏览 0评论
0个赞
Python的官方文档很多都有示例代码,比如re模块就带了很多示例代码:
>>> import re
>>> m = re.search('(?<=abc)def', 'abcdef')
>>> m.group(0)
'def'
……继续阅读 »
3年前 (2020-04-29) 984浏览 0评论
0个赞
单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。
比如对函数abs(),我们可以编写出以下几个测试用例:
输入正数,比如1、1.2、0.99,期待返回值与输入相同;
输入负数,比如-1、-1.2、-0.99,期待返回值与输入相反;
输入0,期待返回0;
输入非数值类型,比如None、[]、{},期待抛出TypeError。
把上面的测……继续阅读 »
3年前 (2020-04-27) 1169浏览 0评论
0个赞
程序能一次写完并正常运行的概率很小,基本不超过1%。总会有各种各样的bug需要修正。有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug。
第一种方法简单直接粗暴有效,就是用print()把可能有问题的变量打印出来看看:
用print()最大的坏……继续阅读 »
3年前 (2020-04-25) 1359浏览 0评论
0个赞
在程序运行的过程中,如果发生了错误,可以事先约定返回一个错误代码,这样,就可以知道是否有错,以及出错的原因。在操作系统提供的调用中,返回错误码非常常见。比如打开文件的函数open(),成功时返回文件描述符(就是一个整数),出错时返回-1
用错误码来表示是否出错十分不便,因为函数本身应该返回的正常结果和错误码混在一起,造成调用者必须用大量的代码来判断是否出错:……继续阅读 »
3年前 (2020-04-24) 822浏览 0评论
0个赞
type()
动态语言和静态语言最大的不同就是函数和类的定义,不是编译时定义的,而是运行时动态创建的。
例如我们要定义一个Hello的class,就写一个hello.py模块:
class Hello(object):
def hello(self, name='world'):
print('Hel……继续阅读 »
3年前 (2020-04-22) 775浏览 0评论
0个赞