Python

Python_11_函数的执行流程-函数递归-匿名函数-生成器

文章目录1.函数的执行流程1.1.字节码了解压栈过程1.2.嵌套函数的压栈2.递归2.1.递归函数2.2.递归的性能2.3.递归的优化2.4.间接递归2.5.递归总结3.匿名函数4.Python生成器4.1.基本结构4.2.使用场景4.3.协程coroutine4.4.yieldfrom1.函数的执行流程函数的执行需要对函数进行压栈,什么是压栈呢,简而言之就是在函数执行时在栈中创建栈帧存放需要的变量以及指针的意思。具体涉及的知识非常多,这里就以一个Pyth

系统 2019-09-27 17:54:56 2141

Python

python爬虫 爬取超清壁纸代码实例

简介壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。壁纸的选择其实很大程度上能看出电脑主人的内心世界,有的人喜欢风景,有的人喜欢星空,有的人喜欢美女,有的人喜欢动物。然而,终究有一天你已经产生审美疲劳了,但你下定决定要换壁纸的时候,又发现网上的壁纸要么分辨率低,要么带有水印。演示图片

系统 2019-09-27 17:54:45 2141

Python

Python 3.7 安装历险记

之前我在windows10系统上面安装python3.7,虽然在windows上面安装简单,操作也方便,但是想要和linux的shell脚本交互就不方便了。因此,我决定在centos7上面也安装上python最新版本在这期间,我踩了很多坑,也填了很多坑,后来几乎要面临崩溃了,期间发生了什么?别着急,耐心往下看!操作环境:CentOS7.464位一般安装步骤1.下载python安装包wgethttps://www.python.org/ftp/python/

系统 2019-09-27 17:53:50 2141

Python

Python-copy()与deepcopy()区别详解

最近在实习,boss给布置了一个python的小任务,学习过程中发现copy()和deepcopy()这对好基友实在是有点过分,搞的博主就有点傻傻分不清啊,但是呢本着一探到底的精神,还是要查资料搞清楚这对好基友的区别。其实呢,copy()与deepcopy()之间的区分必须要涉及到python对于数据的存储方式。首先直接上结论:―�C我们寻常意义的复制就是深复制,即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来

系统 2019-09-27 17:53:42 2141

Python

Python的Lambda函数用法详解

在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。1.为什么要用lambda函数?先举一个例子:将一个列表里的每个元素都平方。先用def来定义函数,代码如下defsq(x):returnx*xmap(sq,[yforyinrange(10)])再用lambda函数来编写代码map(lambdax:x*x,[yforyinr

系统 2019-09-27 17:53:33 2141

Python

python 常用api

1.python2/3区别整除python2:print'3/2=',3/2print'3//2=',3//2print'3/2.0=',3/2.0print'3//2.0=',3//2.0结果:3/2=13//2=13/2.0=1.53//2.0=1.0python3:print('3/2=',3/2)print('3//2=',3//2)print('3/2.0=',3/2.0)print('3//2.0=',3//2.0)3/2=1.53//2=13

系统 2019-09-27 17:53:32 2141

Python

python操作ElasticSearch--文档增删改查

安装6.0.0版本##pipinstallelasticsearch==6.0.0#导包importjsonfromelasticsearchimportElasticsearch创建Index–PUT/news?prettyes=Elasticsearch(hosts="ip:port")#创建一个名为news的索引result=es.indices.create(index='news',ignore=400)print(result)#创建成功#{'

系统 2019-09-27 17:53:21 2141

Python

Python 使用 attrs 和 cattrs 实现面向对象编程的实践

Python是支持面向对象的,很多情况下使用面向对象编程会使得代码更加容易扩展,并且可维护性更高,但是如果你写的多了或者某一对象非常复杂了,其中的一些写法会相当相当繁琐,而且我们会经常碰到对象和JSON序列化及反序列化的问题,原生的Python转起来还是很费劲的。可能这么说大家会觉得有点抽象,那么这里举几个例子来感受一下。首先让我们定义一个对象吧,比如颜色。我们常用RGB三个原色来表示颜色,R、G、B分别代表红、绿、蓝三个颜色的数值,范围是0-255,也就

系统 2019-09-27 17:53:07 2141

Python

python学习之路-day1

1变量赋值:变量可以是字符串、序列、元组、1#author:hams.ali23#界面4line='-*'*205#数字直接可以计算67_var1='23'89#字符变量拼接10_var_2='\n\tmyageis'+_var11112#不可改变数值的组元13var=(2019,9,27)1415#变量解压16x,y,z=(2019,9,17)17print(x,y,z)18print(line)#分割19#多变量解压20data=['ali','eng

系统 2019-09-27 17:53:03 2141

Python

如何编写快速且线程安全的Python代码

概述如今我也是使用Python写代码好多年了,但是我却很少关心GIL的内部机制,导致在写Python多线程程序的时候。今天我们就来看看CPython的源代码,探索一下GIL的源码,了解为什么Python里要存在这个GIL,过程中我会给出一些示例来帮助大家更好的理解GIL。GIL概览有如下代码:staticPyThread_type_lockinterpreter_lock=0;/*ThisistheGIL*/这行代码位于Python2.7源码ceval.c

系统 2019-09-27 17:52:42 2141

Python

Python 條件式 Condition

除了重複使用Function,有時我們須檢查結果,依此判斷下個步驟該怎麼進行,如此就需要條件式conditionstatement。if...elif...ese(或if...elif...elif或if..else)while>>>defnumIsEven(k):...ifk%2==0:...print(k,'iseven')...else:...print(k,'isodd')...>>>numIsEven(8)8iseven>>>numIsEven(

系统 2019-09-27 17:52:28 2141

Python

Ucloud api signature 生成 (python3)

importhashlibdef_verfy_ac(private_key,params):items=sorted(params.items(),key=lambdax:x[0])params_data=""foriinitems:params_data=params_data+i[0]+i[1]params_data=params_data+private_keysign=hashlib.sha1()sign.update(params_data.en

系统 2019-09-27 17:52:26 2141

Python

python反序列化漏洞

原理在网页源码中如果出现将用户输入数据进行反序列化当成参数输出时,出现漏洞,可造成任意命令执行例如网页源码try:become=self.get_argument('become')p=pickle.loads(urllib.unquote(become))returnself.render('form.html',res=p,member=1)except:returnself.render('form.html',res='ThisisBlackTec

系统 2019-09-27 17:51:41 2141

Python

Python的动态重新封装的教程

让我们描绘一下本文的情节:假设您要在本地机器上运行一个进程,而部分程序逻辑却在另一处。让我们特别假设这个程序逻辑会不时更新,而您运行进程时,希望使用最新的程序逻辑。有许多方法可以满足刚提到的要求;本文将向您说明其中几种方法。随着“可爱的Python”专栏不断进行,已经讨论了我的公共域实用程序Txt2Html的正在进行的增强。该实用程序将“智能ASCII”文本文件转换成HTML。以前的文章讨论了实用程序的Web代理版本和实用程序的curses界面。同样,我偶

系统 2019-09-27 17:50:18 2141

Python

python3 selenium自动化测试 强大的CSS定位方法

ccs的优点:css相对xpath语法比xpath简洁,定位速度比xpath快css的缺点:css不支持用逻辑运算符来定位,而xpath支持。css定位语法形式多样,相对xpath比较难记。css定位建议多用,这个定位方式很强大,定位速度快且准确度高。至于难记,用熟了就好了,对勤快的人来说,这不是问题。CSS_selector常用符号:#表示id.表示class>表示子元素,层级1.通过id属性定位:find_element_by_css_selector

系统 2019-09-27 17:49:19 2141