- 军军小站|张军博客
搜索到与相关的文章
Python

Python中eval带来的潜在风险代码分析

0x00前言eval是Python用于执行python表达式的一个内置函数,使用eval,可以很方便的将字符串动态执行。比如下列代码:>>>eval("1+2")>>>eval("[xforxinrange(10)]")[0,1,2,3,4,5,6,7,8,9]当内存中的内置模块含有os的话,eval同样可以做到命令执行:>>>importos>>>eval("os.system('whoami')")win-20140812chj\administrat

系统 2019-09-27 17:53:02 1814

Python

Python字典遍历的几种方法

转https://www.cnblogs.com/ducklu/p/8943903.html1.遍历key值1>>>d={'Python':'astonishing','C++':'complicated','Java':'versatile'}2>>>forkeyind:3...print(key+':'+d[key])4...5Python:astonishing6C++:complicated7Java:versatile同理,可把下列代码的d改为d

系统 2019-09-27 17:52:37 1814

Python

Python--实现二叉树的遍历操作

一、首先二叉树的定义:classTreeNode:def__init__(self,x):self.val=xself.left=Noneself.right=None构建一棵二叉树:classNode(object):def__init__(self,val):self.val=valself.lchild=Noneself.rchild=NoneclassTree(object):def__init__(self):self.root=Noneself

系统 2019-09-27 17:52:24 1814

Python

Python设计模式3--建造者模式

建造者模式,也是一种创建新对象的设计方法,和C++中的虚函数很类似,但是用到了python自身的虚基类ABCMeta。1.应用场景:某个类中的函数较多,且实现比较复杂,很多时候需要继承的子类重载或者重新定义逻辑;2.背景基础:由于用到python中虚函数,需要了解abc模块中的ABCMeta和python中类创建对象时的__metaclass__属性含义。一般地,在某个类中如果定义__metaclass__=something时,简单地说是,创建对象时,会

系统 2019-09-27 17:52:24 1814

Python

python基础学习---递归函数

1,递归函数的定义:函数内部可以调用其他的函数,当然可以调用函数自己,函数调用自身的编程技巧称为递归。2,递归函数的代码特点:函数内部的代码是相同的,只是传递的参数不同、需设置当参数满足条件时,不在执行函数,称为递归的出口,这个必须设置,否则会造成死循环。3,示例代码:倒序打印defsum_numbers(num):print(num)#递归的出口,当参数满足条件时,不在进行递归.#递归出口很重要,如不设置则会出现死循环ifnum==1:return1#函

系统 2019-09-27 17:52:06 1814

Python

Python爬虫,使用BeautifulSoup解析页面结果

Python爬虫,使用BeautifulSoup可以轻松解析页面结果,下面是使用该方法爬取boss页面的职位信息:包括职位名称、薪资、地点、公司名称、公司融资情况等信息。通过这个示例可以轻松看到BeautifulSoup的使用方法。1、爬取boss直聘的职位信息importrequestsfrombs4importBeautifulSoupfrommiddlewaresimportget_random_proxy,get_random_agentimpor

系统 2019-09-27 17:51:39 1814

Python

python综合题

一、如何抛出异常并且捕获异常二、常用的Python标准库有哪些,并且说明其作用三、描述深拷贝和浅拷贝的区别四、__init__和__new__的区别__new__会优先调用且有返回值__init__没有返回值五、什么是解释型语言,什么是编译型语言六、Match和search的区别Match:只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话,返回nonesearch:会扫描整个字符串并返回第一个成功的匹配七、用Python匹配HTMLtag的时

系统 2019-09-27 17:51:31 1814

Python

python使用pika操作rabbitmq编程入门(二)

pika生产者程序大致步骤:1.建立连接connection,需要认证的调用认证参数2.创建通道channel当然channel可以池化,这样可以重复使用3.声明队列指定队列属性,一旦指定属性不能修改,例如是否持久化,名称4.声明交换机交换机类型,名称等,也可以不用声明,直接使用“”空字符串,默认交换机也可以5.将队列与交换机绑定queue_bind6.basic_publish发送到交换机指定路由键pika消费者程序大致步骤:1.建立连接connecti

系统 2019-09-27 17:51:26 1814

Python

Python 学习之路三

目录条件判断if循环for...in...whilebreakcontinue继"Python学习之路二":条件判断if比如,输入用户年龄,根据年龄打印不同的内容,在Python程序中,用if语句实现:>>>age=18>>>ifage>=18:print("yourageis",age)print("adult")yourageis18adult>>>根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也

系统 2019-09-27 17:51:22 1814

Python

Python函数中参数是传递值还是引用详解

在C/C++中,传值和传引用是函数参数传递的两种方式,在Python中参数是如何传递的?回答这个问题前,不如先来看两段代码。代码段1:deffoo(arg):arg=2print(arg)a=1foo(a)#输出:2print(a)#输出:1看了代码段1的同学可能会说参数是值传递。代码段2:defbar(args):args.append(1)b=[]print(b)#输出:[]print(id(b))#输出:4324106952bar(b)print(b

系统 2019-09-27 17:50:55 1814