Learning Path
浏览 开发笔记 相关教程与章节。
社区笔记、经验文章、测验题库与零散教程入口。
教程
1237
Python math 模块提供了许多对浮点数的数学运算函数。 Python cmath 模块包含了一些用于复数运算的函数。 cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。 要使用 math 或 cmath 函数必须先导入: import math 查看 math 查看包中的内容: >>> import math >>&g..
Python 递增子序列的最大值总和 Python 递增子序列的最大值总和代码如下所示: arr = [1,101,2,3,100,4,5] msis = [elem for elem in arr] for x in range(1,len(arr),1): for y in range(0,x,1): if arr[x] > arr[y]: msis[x] += arr[y] print(max(msis..
1、在 python 里面,负数的存储方式 实例 [mycode4 type='python'] a = bin(-3) print(a) a = bin(3) print(a) b = bin(-3 & 0xffffffff) print(b) c = bin(0xfffffffd) print(c) //输出 //-0b11 //0b11 //0b11111111111111111111..
在 Python 的函数中经常能看到输入的参数前面有一个或者两个星号,例如: [mycode4 type='python'] def foo(param1, *param2): def bar(param1, **param2): [/mycode4] 这两种用法其实都是用来将任意个数的参数导入到 Python 函数中。 单星号(*):*agrs 将所有参数以元组(tuple)的形式导入: 实例 [mycode..
Linux 服务器会使用 OpenSSL 协议,但是 OpenSSL 有些低版本会存在漏洞,比如著名的“受戒礼”或“贵兵犬”漏洞,这里利用 Python paramiko 库编写了一个 Windows 下的 GUI 小程序,可以实现批量检测 Linux 服务器上的 OpenSSL 是否具有这两个漏洞。 Scanner2.py 文件代码(Python2.x): [mycode3 type='python'] # ..
Python 偏函数是通过 functools 模块被用户调用。 偏函数 partial 应用 函数在执行时,要带上所有必要的参数进行调用。但是,有时参数可以在函数被调用之前提前获知。这种情况下,一个函数有一个或多个参数预先就能用上,以便函数能用更少的参数进行调用。 偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的参数,除非使用关键字参数。 通过语言描述可能无法理解..
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。 目前如果你在 python.org 下载最新版本的安装包,则是已经自带了该工具。 注意:Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。 pip 官网:https://pypi.org/project/pip/ 你可以通过以下命令来判断是否已安装: pip --version ..
本文主要介绍在 Python2 与 Python3 下 print 实现不换行的效果。 Python 3.x 在 Python 3.x 中,我们可以在 print() 函数中添加 end='' 参数,这样就可以实现不换行效果。 在 Python3 中, print 函数的参数 end 默认值为 '\n',即end='\n',表示换行,给 end 赋值为空, 即end='..
Python 中有多种方式可以实现进度条,下面介绍几种常见的方法: 实例 [mycode4 type='python'] import time for i in range(101): # 添加进度条图形和百分比 bar = '[' + '=' * (i // 2) + ' ' * (50 - i // 2) + ']' ..
本章节我们将为大家介绍 Python 如何操作 redis,redis 是一个 Key-Value 数据库,Value 支持 string(字符串),list(列表),set(集合),zset(有序集合),hash(哈希类型)等类型。 关于 redis 的更多内容可以参考我们的 redis 教程,注意在学习本章节之前你要确保你的 redis 服务已经安装。 redis 启动界面如下: 启动 redis [mycode4 type=&#..
repr() 和 str() 是 Python 中两个用于将对象转换为字符串的内置函数,它们之间有一些关键的区别: 目的不同: repr(): 返回一个字符串,这个字符串应该是合法的 Python 表达式,可以用来重新创建对象(如果可能)。它主要用于开发和调试,旨在提供尽可能多的信息。 str()..
这个一直都想写,但是因为这个点比较小,所以一直懒得动手。不过还是补上吧,留着早晚是个祸害。 round函数很简单,对浮点数进行近似取值,保留几位小数。比如: >>> round(10.0/3, 2) 3.33 >>> round(20/7) 3 第一个参数是一个浮点数,第二个参数是保留的小数位数,可选,如果不写的话默认保留到整数。 这么简单的函数,能有什么坑呢? 1、round的结果跟pyth..
Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下,不能发挥多核的优势。而使用多进程(Multiprocess),则可以发挥多核的优势真正地提高效率。 对比实验 资料显示,如果多线程的进程是CPU密集型的,那多线程并不能有多少效率上的提升,相反还可能会因为线程的频繁切换,导致效率下降,推荐使用多进程;如果是IO密集型,多线程进程可以利用IO阻塞等待时的空闲时间执..
一、什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息。 二、Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器、URL管理器、网页下载器、网页解析器、应用程序(爬取的有价值数据)。 调度器:相当于一台电脑的CPU,主要负责调度URL管理器、下载器、解析器之间的协调工作。 URL管理器:包括待爬取的URL地址和已爬取的URL地址,防止重复抓取URL和循环抓取URL,实现..
枚举 之前我们这样操作: i = 0 for item in iterable: print i, item i += 1 现在我们这样操作: for i, item in enumerate(iterable): print i, item enumerate函数还可以接收第二个参数。就像下面这样: >>> list(enumerate('abc')) [(0,..
wraith 字符串是字符的有序集合,可以通过其位置来获得具体的元素。在 python 中,字符串中的字符是通过索引来提取的,索引从 0 开始。 python 可以取负值,表示从末尾提取,最后一个为 -1,倒数第二个为 -2,即程序认为可以从结束处反向计数。 下面是对 python 索引和切片的总结: 1. 索引获取特定偏移的元素 字符串中第一个元素的偏移为 0 字符串中最后一个元素的偏移为-1 str[..
说到 super, 大家可能觉得很简单呀,不就是用来调用父类方法的嘛。如果真的这么简单的话也就不会有这篇文章了,且听我细细道来。 约定 在开始之前我们来约定一下本文所使用的 Python 版本。默认用的是 Python 3,也就是说:本文所定义的类都是新式类。如果你用到是 Python 2 的话,记得继承 object: # 默认, Python 3 class A: pass # Python 2 class A(obj..
简介 Python是一种动态解释型的编程语言。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。 特点 1 Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。 2 Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。 3 Python代码块使用空格或制表符缩进的方式分隔代码。 4 P..
有三个立柱A、B、C。A柱上穿有大小不等的圆盘N个,较大的圆盘在下,较小的圆盘在上。要求把A柱上的圆盘全部移到C柱上,保持大盘在下、小盘在上的规律(可借助B柱)。每次移动只能把一个柱子最上面的圆盘移到另一个柱子的最上面。请输出移动过程。 解答 这是动态规划问题中的一种,用递归来实现较为简单方便。 对于“将moveSum个圆盘从from柱移动到to柱(借助by柱)”这个问题,我们可以通过以下三步实现: 将from柱最上面的moveS..
总结: 内部函数,不修改全局变量可以访问全局变量 内部函数,修改同名全局变量,则python会认为它是一个局部变量 在内部函数修改同名全局变量之前调用变量名称(如print sum),则引发Unbound-LocalError 在程序中设置的 sum 属于全局变量,而在函数中没有 sum 的定义,根据python访问局部变量和全局变量的规则:当搜索一个变量的时候,python先从局部作用域开始搜索,如果在局部作用域没有找到那个变量..
直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy): copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 字典浅拷贝实例 实例 [mycode3 type='python'] >>> a = {1: [1,2,3]} >>> b = a.copy() >>>..
曾经看到这样一个问题,一个字典中的元素是列表,将这个列表元素赋值给一个变量,然后修改这个列表中元素的值,结果发现,字典中那个列表也同样修改了。那个问题如下: dict = {'a':[1,2,3,4,5],'b':2} x = dict['a'] for i in range(5): x[i] = 0 print(dict['a']) 程序运行结..
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。 如何生成斐波那契數列 斐波那契(Fibonacci)數列是一个非常简单的递归数列,除第一个和第二个数外,任意一个数都可由前两个数相加得到。用计算机程序输出斐波那契數列的前 N 个数是一个非常简单的问题,许多初学者都可以轻易写出如..
1、在 Python2.x 中 raw_input( ) 和 input( ),两个函数都存在,其中区别为: raw_input( ) 将所有输入作为字符串看待,返回字符串类型。 input( ) 只能接收“数字”的输入,在对待纯数字输入时具有自己的特性,它返回所输入的数字的类型( int, float )。 2、在 Python3.x 中 raw_input( ) 和 input( ) 进行了整合,去除了 raw_input..