Python学习记录

Python的创始人为
吉多·范罗苏姆
(Guido van Rossum)

    Python英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象直译式电脑程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    与SchemeRubyPerlTcl动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的操作系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

    Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

Python支持命令式程序设计面向对象程序设计函数式编程面向侧面的程序设计泛型编程多种编程范式。

Python字符串

2021年03月15日

在其他语言中,如 Java,有可变的字符串类型,比如 StringBuilder,每次添加、改变或删除字符(串),无需创建新的字符串,时间复杂度仅为 O(1)。这样就大大提高了程序的运行效率。但可惜的是,Python 中并没有相关的数据类型,我们还是得老老实实创建新的字符串。因此,每次想要改变字符串,往往需要 O(n) 的时间复杂度,其中,n 为新字符串的长度。你可能注意到了,上述例子的说明中,我...

Python 集合和列表理解

2021年03月13日

import time id = [x for x in range(0, 100000)] price = [x for x in range(200000, 300000)] products = list(zip(id, price)) # 计算列表版本的时间 start_using_list = time.perf_counter() find_unique_price_u...

Python List tuple理解

2021年03月12日

列表是动态的,长度大小不固定,可以随意地增加、删减或者改变元素(mutable)。 而元组是静态的,长度大小固定,无法增加删减或者改变(immutable)。下面是代码示例:l = [1, 2, 3, 4] l[3] = 40 # 和很多语言类似,python中索引同样从0开始,l[3]表示访问列表的第四个元素 l [1, 2, 3, 40] tup = (1, 2, 3, 4) t...

python 解析linuxtraceroute结果

2021年02月24日

最近需要调用Linux系统的traceroute命令,但是读取了结果,还要对结果进行解析,下面是代码:def scapy_traceroute(self): traceroute_str = """ traceroute to www.materialtools.com (150.109.42.16), 30 hops max, 60 byte packet ...

Ubuntu 运行python Killed

2021年02月23日

最近在一台1核1G的小服务器上运行Python脚本,运行了1分钟左右,出现如下提示:root@fine-machine-3:/var/Service_IP_Host# python ip_host_main.py Killed出现如上提示的原因:该脚本耗尽了内存,需要修改代码,尽量少占用内容。同时从监控也可以很明显的看到内存突然之间耗尽,截图如下:黄兵个人博客原创。转载请注明出处:黄兵个人博客 ...

在Python 3中Concurrent.futures 与 Multiprocessing 的区别

2021年02月03日

这篇文章详述了在Python 3中Concurrent.futures与Multiprocessing的异同。同时用代码的方式列举了两者之间的相似之处,代码摘录如下:使用concurrent.futures的方式:from concurrent.futures import ProcessPoolExecutor def pool_factorizer_map(nums, nprocs): ...

python 多线程长时间运行程序

2021年02月03日

上一篇文章(python Thread长时间运行问题)使用python Thread的方式,长时间运行服务程序,会出现线程耗尽的问题。之后又更改程序,使用concurrent.futures的方式运行程序,经过一晚上的测试,程序还算稳定,没有出现线程耗尽的问题,这篇文章整理和总结使用concurrent.futures长时间运行多线程程序的方法。关键代码:def ping_main(self): ...

python Thread长时间运行问题

2021年02月02日

通过Linux服务长时间运行Python多线程程序,存在一些问题,在此做个总结:下面以使用多线程运行的一段代码:def ping_main(self): threads = [] for i in range(self._num_worker_threads): worker = Thread(target=self.ping, args=(self._que...