python作为一个动态语言, 本身学习曲线比较平滑, 效率相比起来会比c++和java低一些. 脚本语言都是运行时编译的, 这个对于效率的影响是非常大的. 我借用参考1的代码, 加了点代码import time import time class Timer(object): def __init__(self): pass def __enter__(self): self.start = time.time() def __exit__(self, exception_type, exce…
复习 重点: 1.进制转换:二进制 与十六进制 2.内存分布:栈区 与堆区 # 二进制1111转换十六进制 => 8 4 2 1 => f 10101100111011 => 2a77 abf1 => 1010101111110001 # 计算机原理:控制器 运算器 储存器 input设备 output设备 IO流 # 三大核心:CPU 内存 硬盘 # 操作系统 今日内容 1.编程语言介绍 2.python语言介绍 3.安装官方cpython解释器 - - 版本共存 4.运行pyt…
编程语言分为 机器语言(直接用二进制01跟计算机直接沟通交流,直接操作硬件) 优点:计算机能够直接读懂,速度快 缺点:开发效率极低 汇编语言(用简单的英文标签来表示二进制数,直接操作硬件) 优点:开发效率高于机器语言 缺点:执行效率较机器语言 高级语言(直接用人类识别的字符去编写程序,不能直接操作硬件,需要借助特殊工具转换成机器语言去操作硬件 高级语言分为 编译型语言:借助编译器转换成机器语言,一次编译生成执行文件再去执行,若要修改源代码需要重新编译生成执行文件,如C.C++.Delphi等 优…
对照着廖雪峰的网站学习Python遇到些问题: 在进程中,父进程创建子进程时发现,显示不是按照顺序显示,疑问? 参照代码如下: from multiprocessing import Pool import os, time, random def long_time_task(name): print 'Run task %s (%s)...' % (name, os.getpid()) start = time.time() time.sleep(random.random() * 3) e…
1.python pickle反序列化漏洞 自己的理解: 由于在类的__reduce__方法中提供了我们可以自定义程序如何去解序列化的方法,因此如果应用程序接受了不可信任的序列化的数据,那么就可能导致安全问题. import pickle import os class gen(object): def __reduce__(self): s = """dir""" return os.system, (s,) p = gen() payload…
python代码执行bash命令相关 -- python3 cook book refer: https://python3-cookbook.readthedocs.io/zh_CN/latest/c13/p06_executing_external_command_and_get_its_output.html 执行外部命令并获取它的输出 问题 你想执行一个外部命令并以Python字符串的形式获取执行结果. 解决方案 使用 subprocess.check_output() 函数.例如: i…
风炫安全web安全学习第三十二节课 Python代码执行以及代码防御措施 Python 语言可能发生的命令执行漏洞 内置危险函数 eval和exec函数 eval eval是一个python内置函数,语法为eval(expression, globals=None,locals=None) eval函数接收三个参数:其中 expression 参数是用做运算的字符串类型表达式:globals参数用于指定运行时的全局命名空间:Locals参数用于指定运行时的局部命名空间.globals与 loca…
Python代码在执行过程中,遵循下面的基本原则: 普通语句,直接执行: 碰到函数,将函数体载入内存,并不直接执行 碰到类,执行类内部的普通语句,但是类的方法只载入,不执行 碰到if.for等控制语句,按相应控制流程执行 碰到@,break,continue等,按规定语法执行 碰到函数.方法调用等,转而执行函数内部代码,执行完毕继续执行原有顺序代码 import os # 1 print('<[1]> time module start') # 2 class ClassOne(): prin…
with open("myfile.txt") as f: for line in f: print(line, end="") 以上这段代码执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭.…
eval/exec 将字符串当做代码执行 eval/exec 这两个函数可以将字符串解析为代码并执行. 区别 1.eval 解析变量和表达式, 而 exec 解析语句 a = '1' print(eval(a)) # 打印变量 a 的值 print(eval('int(a)+1')) # 打印1+1的计算结果2 exec('a=1') # 为变量 a 赋值 print(a) # 打印变量 a 的值 输出: 1 2 1 2.eval 不支持多行输入, 而 exec 可以输入多行, 比如 a = '…