下面是一些学习网络安全知识需要了解的一些python知识。
目录
一、Python是什么
特点
-
易学习:语法简洁,代码量少,用缩进表示代码块,内置函数实用,如
print("Hello, World!")
般简单上手。 -
易阅读:代码像英文文章自然流畅,命名直观,注释方便,便于团队协作理解。
-
易维护:开源且源码优质,模块化设计,社区文档与工具丰富,定位修复问题快。
应用领域
-
Web 开发:借助 Django、Flask 等框架,可搭建大小型网站,如 Instagram 用其做后端。
-
数据科学:NumPy、Pandas 等库助力数据处理分析,Matplotlib 等用于可视化,在多领域挖掘数据价值。
-
AI 与机器学习:TensorFlow、PyTorch 等框架推动神经网络模型构建,用于图像、语言等识别。
-
自动化运维与测试:写脚本实现服务器配置、软件部署等,测试框架保证软件质量。
-
游戏开发:Pygame 库适合初学者开发 2D 小游戏,开发速度快。
-
系统运维:与系统交互,自动化管理任务,监控资源、管理账户、备份数据。
二、Python 开发环境
1. 安装 Python
Python 可从Python 官方网站下载对应操作系统的安装包进行安装。安装时注意勾选 “Add Python to PATH”,这样能在命令行中直接使用 Python 命令。
2. 选择开发工具
-
集成开发环境(IDE)
-
PyCharm:功能强大,支持代码自动补全、调试、版本控制等,有社区版(免费)和专业版(付费)。
-
Visual Studio Code(VS Code):轻量级且开源,通过安装 Python 扩展,能实现代码高亮、调试等功能。
-
三、Python基础语法
1. 注释
-
单行注释:以
#
开头,用于对本行代码进行解释。
(快捷键: ctrl + /)
# 这是一个单行注释
print("Hello, World!")
多行注释:使用三引号 '''
或 """
来注释多行内容。
'''
这是一个多行注释
可以写很多行说明
'''
print("注释不影响代码运行")
2. 变量与数据类型
2.1 变量
-
变量用于存储数据,不需要提前声明类型。变量名遵循一定规则,如只能包含字母、数字和下划线,且不能以数字开头。
age = 25
name = "John"
2.2 数据类型
-
数值类型
-
整数(int):如
10
,-5
。 -
浮点数(float):如
3.14
,-0.5
。
-
num1 = 10
num2 = 3.14
-
字符串(str):用单引号
'
或双引号"
括起来。
message = 'Hello'
greeting = "World"
-
布尔类型(bool):只有两个值
True
和False
。
is_student = True
3. 基本输入输出
3.1 输出
-
使用
print()
函数输出内容。
print("这是输出内容")
3.2 输入
-
使用
input()
函数获取用户输入,返回值为字符串类型。
name = input("请输入你的名字: ")
print(f"你好, {name}")
4. 运算符
4.1 算术运算符
-
+
(加)、-
(减)、*
(乘)、/
(除)、//
(整除)、%
(取余)、**
(幂运算)。
a = 10
b = 3
print(a + b) # 输出 13
print(a // b) # 输出 3
4.2 比较运算符
-
==
(等于)、!=
(不等于)、>
(大于)、<
(小于)、>=
(大于等于)、<=
(小于等于),返回布尔值。
print(10 > 5) # 输出 True
4.3 逻辑运算符
-
and
(与)、or
(或)、not
(非)。
x = True
y = False
print(x and y) # 输出 False
5. 控制结构
5.1 条件语句
-
使用
if-elif-else
结构。Python 通过缩进来表示代码块。
age = 18
if age < 18:
print("未成年")
elif age == 18:
print("刚成年")
else:
print("成年了")
5.2 循环语句
5.2.1 for 循环
-
常用于遍历序列(如列表、字符串等)。
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
5.2.2 while 循环
-
只要条件为真,就会一直执行循环体。
i = 0
while i < 5:
print(i)
i = i + 1
6. 数据结构
6.1 列表(list)
-
用方括号
[]
表示,可存储不同类型的元素,元素可修改。
my_list = [1, "apple", True]
my_list[0] = 2
print(my_list)
6.2 元组(tuple)
-
用圆括号
()
表示,元素不可修改。
my_tuple = (1, 2, 3)
6.3 集合(set)
-
用花括号
{}
表示,元素唯一,无序。
my_set = {1, 2, 2, 3} # 会自动去重
print(my_set)
6.4 字典(dict)
-
用花括号
{}
表示,由键值对组成,键必须唯一。
my_dict = {"name": "John", "age": 25}
print(my_dict["name"])
7.range函数
range
函数是一个内置函数,常用于循环中生成一个整数序列。
range
函数常见的使用形式有以下三种:
-
range(stop):生成从
0
开始到stop - 1
的整数序列。例如:
for i in range(5):
print(i)
上述代码会依次输出 0
、1
、2
、3
、4
。
2.range(start, stop):生成从 start
开始(包含 start
)到 stop - 1
的整数序列。例如:
for i in range(2, 7):
print(i)
这段代码会输出 2
、3
、4
、5
、6
。
3.range(start, stop, step):生成从 start
开始(包含 start
),每次递增 step
,直到达到或超过 stop
的整数序列(不包含 stop
)。step
不能为 0
,否则会引发 ValueError
异常。例如:
for i in range(1, 10, 2):
print(i)
此代码会输出 1
、3
、5
、7
、9
。
8. 函数定义与调用
-
定义:使用
def
关键字
def greet():
print("Hello!")
-
调用:直接使用函数名
greet() # 输出:Hello!
位置参数
-
定义:按顺序传递参数
def add(a, b):
return a + b
-
调用:
result = add(3, 5) # result = 8
四、Python模块
-
Python模块:
是包含Python代码的文件,其扩展名通常为`.py。模块是Python程序的基本组成部分,它们提供了封装代码的方式,使得代码更加组织化、易于重用和维护。模块可以包含函数、类和变量,也可以包含可执行的代码
-
系统内置模块:
是Python自带的标准库,它们提供了丰富的功能和工具,用于执行各种常见的任务。这些模块通常与Python解释器一起安装,无需额外下载或安装。系统内置模块包括:os模块、sys模块、random模块、time模块。
-
自定义模块:
开发者自己编写的模块,用于封装特定的功能或逻辑。它们通常是为了提高代码的可重用性和模块化程度而创建的。自定义模块可以是任何有效的Python文件(以“.py”为后缀名),里面可以包含全局变量、函数、类等。
1. 模块的概念
在 Python 里,模块是包含 Python 定义与语句的文件,其扩展名为 .py
。模块能把代码组织成逻辑单元,提升代码的可维护性与复用性。例如,我们可以把功能相关的函数和类放到一个模块里。
2. 模块的创建
要创建模块,只需创建一个以 .py
结尾的文件,在其中编写 Python 代码即可。
示例:创建 math_operations.py
模块
# math_operations.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
3. 模块的导入
3.1 import
语句
运用 import
语句可导入整个模块。
import math_operations
result_add = math_operations.add(3, 5)
result_subtract = math_operations.subtract(8, 2)
print(result_add)
print(result_subtract)
在这个例子中,我们导入了 math_operations
模块,之后通过 模块名.函数名
的方式调用模块里的函数。
3.2 from...import
语句
使用 from...import
语句能从模块中导入特定的函数或类。
from math_operations import add
result = add(4, 6)
print(result)
这里只从 math_operations
模块导入了 add
函数,调用时直接使用函数名即可。
3.3 from...import *
语句
from...import *
语句可导入模块中的所有内容。不过,这种方式可能导致命名冲突,不建议在生产环境使用。
from math_operations import *
result1 = add(2, 3)
result2 = subtract(7, 4)
print(result1)
print(result2)
3.4 为模块或导入项取别名
使用 as
关键字能为模块或导入的函数、类取别名,使代码更简洁易读。
import math_operations as mo
result = mo.add(1, 9)
print(result)
from math_operations import subtract as sub
result_sub = sub(10, 5)
print(result_sub)
4. __name__
属性
每个模块都有一个 __name__
属性,当模块作为脚本直接运行时,__name__
属性的值为 '__main__'
;当模块被导入时,__name__
属性的值为模块名。借助这个特性,可在模块中编写测试代码。
# math_operations.py
def add(a, b):
return a + b
def subtract(a, b):
return a - b
if __name__ == '__main__':
# 测试代码
print(add(2, 3))
print(subtract(5, 1))
在上述代码里,测试代码只有在该模块作为脚本直接运行时才会执行,被其他模块导入时不会执行。
5. Python 标准库模块
Python 自带了丰富的标准库模块,涵盖文件操作、网络编程、数据处理等多个方面。
5.1 math
模块
math
模块是 Python 标准库中用于数学运算的重要模块,提供了大量的数学函数和常量,以下是一些常见的函数和常量介绍:
5.1.1 数学函数
-
math.sqrt(x):返回参数
x
的平方根,x
必须是非负数。
import math
result = math.sqrt(25)
print(result) # 输出:5.0
-
math.pow(x, y):返回
x
的y
次幂,等价于x ** y
。
result = math.pow(2, 3)
print(result) # 输出:8.0
-
math.sin(x)、math.cos(x)、math.tan(x):分别返回弧度值
x
的正弦、余弦、正切值。
import math
angle_radians = math.pi / 4 # 45 度对应的弧度值
sin_value = math.sin(angle_radians)
cos_value = math.cos(angle_radians)
tan_value = math.tan(angle_radians)
print(sin_value)
print(cos_value)
print(tan_value)
-
math.ceil(x):返回大于或等于
x
的最小整数。
result = math.ceil(3.14)
print(result) # 输出:4
-
math.floor(x):返回小于或等于
x
的最大整数。
result = math.floor(3.99)
print(result) # 输出:3
-
math.factorial(x):返回
x
的阶乘,x
必须是非负整数。
result = math.factorial(5)
print(result) # 输出:120
5.1.2 数学常量
-
math.pi:表示圆周率,约等于 3.141592653589793。
print(math.pi)
-
math.e:自然对数的底数,约等于 2.718281828459045。
print(math.e)
5.2 random
模块
用于生成随机数。
import random
random_num = random.randint(1, 10)
print(random_num)
5.3 os
模块
用于与操作系统交互。
import os
current_dir = os.getcwd()
print(current_dir)
6. 第三方模块:
是由其他开发者或组织编写的,并发布到Python包索引等公共仓库中的模块。这些模块通常提供了特定领域或特定任务的高级功能和工具,如数据分析、网络请求等。要使用第三方模块,需要先通过pip等工具安装。常见模块包括:Requests模块、Pandas模块、NumPy模块
安装第三方模块:
找到python路径下的Scripts.
下载模块:pip install 模块名
示例:下载requests模块
输入:pip install requests
这里博主已经提前下好了,所以呢大家看到的画面和我不一样是正常的
五、Python类与魔术方法
一、类(Class)基础
-
定义类:类是一种抽象的数据类型,用于创建对象。使用
class
关键字定义,例如:
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
这里 Dog
是类名,__init__
是初始化方法(也叫构造函数),self
代表类的实例本身,name
和 age
是实例属性。
创建对象(实例化):通过类名加括号的方式创建对象,如:
my_dog = Dog("旺财", 3)
my_dog
就是 Dog
类的一个实例。
访问属性和方法:使用点号(.
)访问实例的属性和方法,例如:
print(my_dog.name)
二、魔术方法(Magic Methods)
_init__ 方法:在创建对象时自动调用,用于初始化对象的属性。
class Person:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
str 方法:当使用 print()
函数打印对象时,会调用这个方法,它应该返回一个字符串,用于描述对象。
class Person:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
def __str__(self):
return f"{self.first_name} {self.last_name}"
p = Person("Alice", "Smith")
print(p) # 输出: Alice Smith
repr__ 方法:它也是返回对象的字符串表示,通常用于开发和调试,要求返回的字符串能够准确地重新创建对象。如果 __str__
方法不存在,print()
也会调用 __repr__
方法。
class Person:
def __init__(self, first_name, last_name):
self.first_name = first_name
self.last_name = last_name
def __repr__(self):
return f"Person('{self.first_name}', '{self.last_name}')"
p = Person("Bob", "Johnson")
print(repr(p)) # 输出: Person('Bob', 'Johnson')
len 方法:当对对象使用 len()
函数时,会调用这个方法,返回对象的长度。
class MyList:
def __init__(self, data):
self.data = data
def __len__(self):
return len(self.data)
my_list = MyList([1, 2, 3, 4])
print(len(my_list)) # 输出: 4
add__ 方法:用于定义对象的加法操作。当使用 +
运算符时,会调用这个方法。
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y)
p1 = Point(1, 2)
p2 = Point(3, 4)
p3 = p1 + p2
print(p3.x, p3.y) # 输出: 4 6
魔术方法让我们可以自定义类的行为,使其更符合 Python 的语法习惯和编程逻辑。