一定要注意python中的缩进,缩进相当于别的语言中{}的作用
python的安装和各种环境说明在此不一一赘述,可以根据下面文章学习
从IDLE启动python
当我们已经配置好python的环境后,我们既可以正常使用cmd来启动python
快捷键启动cmd:按住win键+r,在框中输入cmd即可快速启动cmd
在cmd窗口中输入python回车,即可启动python shell
我们输入print(“hello python”)
如果到这里没有问题说明python环境可以使用了
接下来我们在windows的开始中找到IDLE
IDLE
本身就是一种python shell
,是一个通过输入文本与程序发生交互的途径,我们可以简单的尝试一些代码
print("hello")
我们点击左上角的new files,可以创建一个新的python文件,创建一个python文件非常简单只需要将空文件的后缀改为py就能使用python打开
1.数据类型
我们先了解最基础的三个
Python 变量不需要声明类型,类型由赋值的对象决定。
常见类型包括:
整数 (int
):如 x = 10
浮点数 (float
):如 y = 3.14
字符串 (str
):如 name = “Python”
注意等号不是等于,python中的等于是两个等号“==
”,“=
”为赋值
2.输入与输出
(1)输出
为了照顾零基础的朋友,输入与输出到底是什么呢?
简单来说,我们想象有一个容器,把东西拿出来,那么我把东西拿出来我能看到了,这就是输出,把东西放进去,放进去我看不到嘛所以这就是输入。类比我们一些设备,麦克风,鼠标,键盘这都属于输入设备,显示屏,扬声器,这就属于输出设备
我们刚才所提及的print(“hello”)就是输出,print
是python里的输出函数
输出不同数据类型我们需要用不同的方式
1.输出字符串(str):需要用引号引起
print("hello")
“hello”就是一个字符串
输出结果
hello
2.输出浮点,整数可以直接输出
print(1) print(1.1)
输出结果
1 1.1
3.也可以输出变量
a = 1 b = 1.1 c = "hello" print(a) print(b) print(c)
运行输出结果
1 1.1 hello
具体格式
print
输出多个数据时,中间可以用,分隔,中间分隔输出默认为” “,这里我们可以修改一下使用sep
函数
print(1,2,sep='|')
输出结果
1|2
print
后一般会使用” “结尾,这里我们可以用end=""
来修改
print(1,2,sep='|',end="") print(2,3) print(1,2) print(2,3)
输出结果:
1|22 3 1 2 2 3
这个结果就可以非常直观的看到sep
和end
这两个函数的作用了
(2).输入
下面我们来讲输入
一般我们使用input
函数,例如:
a = input("请输入一个数字:") print(a)
运行结果
请输入一个数字:10 10
引号内的字符串会输出,紧接你输入的数据会赋值给a这个变量
3.变量与数据类型
(1).整数型(int)
只没有小数位的整数,如1,2,3,4等等
输出可以使用print()
直接输出,也可以做加减乘除平方取余等运算
python中一些运算符的使用规范具体可见:https://www.runoob.com/python/python-operators.html
(2).浮点型(float)
有小数位的数字,如1.1,1.21,1.2222
可以使用print()
直接输出
(3).布尔值(bool)
在 Python 中,布尔值表示真假,只有两个值:True
和 False
。 它们在控制程序流程、进行条件判断和逻辑运算中起着至关重要的作用,在网络安全领域中也广泛应用于各种安全检查和决策
例如
print(1==2) False
1==2的值为False
True
=1 False
=0
(4)字符串(str)
表示文本序列。 字符串在网络安全中至关重要,因为大部分数据(例如,网络协议数据、日志文件、恶意软件代码)都以文本形式出现。
他可以是一段文字,一个汉字,一个字母,一列数字,一个数字等等 他是不能直接进行运算的,但是他可以进行拼接,只需要用+连接即可,一般字符串需要用’,”,”’这几种引号引起来
示例
a = '你' b = "好" c = '''hello''' print(a+b+c)
结果
你好hello
Python中的字符串相当于C语言中的数组
我们可以取其中的任意一个字符,变量相当于在内存占了一块空间,平均分配这块空间,每个字符占据一块空间,当我们需要它的时候,只需要访问它的特点空间将它拿出来
可以这么做
c = '''hello''' print(c[1])
结果
e
可见py是从0开始编号的,0,1,2,3以此类推
h对应数值0,e对应1,以此类推
接下来还有更高级的哦,如果我只想取中间的几位怎么办呢
b = "python" print(b[2:5])
输出结果
tho
为什么会输出这样的结果呢?
b[2:5]
是什么意思,其实我们可以这样表示b[start:end]
,start
代表开始的值,包扩开始的值所代表的值;end是表示结束的值,但是取不到结束的这位
那上面的结果就比较直观了
那我们可不可以隔一位取一个值呢,比如01234567,我要取1357或是0246
有的有的,我们可以用这种格式
c = '01234567' print(c[1::2]) #1357 print(c[0:7:2])
结果
1357 0246
c[1::2]
是什么意思呢,既然我代表结束值的地方没有写,py会认为直接取到最后一位,2代表的是步长的意思,也就是取值是跨越的长度,1就代表中间没有间隔,2就代表隔一个取一个
那0代表的是什么呢,-1代表的是什么?
示例
c = '01234567' print(c[1::0])
结果
Traceback (most recent call last): File "D:\Documents\ceshi.py", line 2, in <module> print(c[1::0]) ValueError: slice step cannot be zero
看一下报错信息,是一个数值错误,slice step
不能为0,也就是说步长不能为0
那-1会是什么结果
c = '01234567' print(c[1::-1])
结果
10
为什么会是10呢,说明-1是倒着取值的,应该将start
和end
调换了,所以才会出现这样的结果,我们可以再试一下验证我们的想法
c = '01234567' print(c[:3:-1]) d = 'python' print(d[4:1:-1])
结果
7654 oht
不错印证了我们的想法,为什么会出现这样的结果呢,首先将start
和end
值调换,这时start
值虽然在前面,但是他已经带上了end
的特性,只会取到该值的前一位,所以才会出现这样的结果
(5)列表(list)
有序、可变的序列。 列表可以存储不同类型的数据。
示例
a = [1,'hello',1.11] print(a)
结果
[1, 'hello', 1.11]
假若我要访问列表,列表元素可以通过索引访问,索引值从零开始
示例
a = [1,'hello',1.11] print(a[0],a[1],a[2])
结果
1 hello 1.11
与字符串相同,列表也是可以切片的,且方式类似
python对于列表提供了多种操作方法
可以选择性记忆
示例
numbers = [10, 20, 30, 40, 50] print(numbers[1:4]) # 输出 [20, 30, 40] (从索引 1 到 3) print(numbers[:3]) # 输出 [10, 20, 30] (从开头到索引 2) print(numbers[2:]) # 输出 [30, 40, 50] (从索引 2 到结尾) print(numbers[::2]) # 输出 [10, 30, 50] (每隔一个元素) print(numbers[::-1]) # 输出 [50, 40, 30, 20, 10] (反转列表)
结果
[20, 30, 40] [10, 20, 30] [30, 40, 50] [10, 30, 50] [50, 40, 30, 20, 10]
(6)集合(set)
与数学中的集合概念相似,下面是集合的定义
简单来说,就是无序、不重复元素的集合。 集合可以用于去重,在网络安全基本的作用就是去重
示例
numbers = set() numbers = {1, 2, 3} print(2 in numbers) # 输出 True print(4 not in numbers) # 输出 True
结果
True True
至于set()是什么,我们一会会讲,但如果不加入set(),直接将带大括号的值赋值给一个变量会默认将这个变量定义为字典(马上就会讲到)。在这里不难看出python可以直接用 in 和not in判断一个值在不在变量当中
(7)字典(dict)
在python3.6之前被认为是无序的,之后被认为是有序的
字典非常适合存储关联数据,他的存储方式是键值对,一个键(key
)对应一个值(value
)
1.访问键值对
示例
a = {"hello":"你好","key":"键","value":"值"} print(a['hello'])
结果
你好
2.添加和修改字典元素
a = {"hello":"你好","key":"键","value":"值"} a['h'] = 'a' a['hello'] = 'hello' print(a[h],hello)
结果
a hello
3.删除语句
示例
a = {"hello":"你好","key":"键","value":"值"} del a['hello'] print(a)
结果
{'key': '键', 'value': '值'}
clear
语句可以删除所有键值对
my_dict.clear() print(my_dict) # Output: {}
4.字典方法
keys()
:返回所有键的视图。
values()
:返回所有值的视图。
items()
:返回所有键值对的视图。
copy()
:创建字典的浅拷贝。
update()
:将另一个字典的内容更新到当前字典。
setdefault()
:如果键不存在,则添加键值对,否则不进行操作。
这里不一一赘述,自行查阅资料
(8)元祖
元祖和列表类似,区别是元祖是不允许修改和删除其中的某一个值的
它通常这么创建
a = (1,'hello',1.1)
1.访问元素
和列表一样,用索引值访问
a = (1,'hello',1.1) print(a[1])
结果
hello
2.切片
切片与列表类似
a = (1,'hello',1.1,2.1) print(a[0:4:2])
结果
(1, 1.1)
可以非常直观的看到元祖切片是和list
类似的
3.删除元祖
删除元祖只能用del
来删除整个元祖
del a
4.元祖相加
元祖是可以相加的
a = ("hello",1) b = ("python",2) c = a + b print(c)
结果
('hello', 1, 'python', 2)
4.数据类型的转换
不同的数据类型在有时是可以互相转化的
示例:
a = 1 b = str(a) c = bool(a) print(a,b,c)
结果
1 1 True
a为一个整数型变量,经过str()被转换为字符串型,经bool()转换为布尔型
常用的几种数据转换函数
int(x)
:将x转换为一个整数
float(x)
:将x转换到一个浮点数
str(x)
:将对象 x 转换为字符串
tuple(s)
:将序列 s 转换为一个元组
list(s)
:将序列 s 转换为一个列表
set(s)
:转换为可变集合
dict(d)
:创建一个字典。d 必须是一个 (key, value)元组序列。
5.条件语句
Python程序语言指定任何非0和非空(null)值为true
,0 或者 null
为false
。
Python 编程中 if 语句用于控制程序的执行,基本形式为:
if 判断条件: 执行语句…… else: 执行语句……
其中”判断条件”成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范围。这里注意,缩进非常重要,执行语句需要与条件作区分加上缩进
else
为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。
Gif 演示:
if
的基本用法如下:
#!/usr/bin/python # -*- coding: UTF-8 -*- # 例1:if 基本用法 flag = False name = 'luren' if name == 'python': # 判断变量是否为 python flag = True # 条件成立时设置标志为真 print 'welcome boss' # 并输出欢迎信息 else: print name # 条件不成立时输出变量名称
结果
luren
if
语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
当判断条件为多个值时,可以使用以下形式:
if 判断条件1: 执行语句1…… elif 判断条件2: 执行语句2…… elif 判断条件3: 执行语句3…… else: 执行语句4……
示例:
num = 5 if num == 3: # 判断num的值 print 'boss' elif num == 2: print 'user' elif num == 1: print 'worker' elif num < 0: # 值小于零时输出 print 'error' else: print 'roadman' # 条件均不成立时输出
结果:
roadman
现在我们可以做一个登录系统:
要求:
- 用户共jerry和tom两个
- jerry的密码是123456,tom的密码是1234
- 输入用户和密码判断是否正确使用if结构
请先自己写然后查看答案
a = {'jerry':123456,'tom':1234} user = str(input("请输入用户名:")) passwd = int(input("请输入密码:")) if user in a and passwd = a[user]: print("success") else: print("fail")
注意不能使用list
或者str
变量,如果不是键值对应的话,会出现越权漏洞,用Jerry的密码竟然可以登录进tom的账户
6.循环结构
(1). while
Python 编程中 while
语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务
基本形式为
while 判断条件(condition): 执行语句(statements)……
如果condition
为真,那么会继续执行statements
输出1到10
i = 1 while i <= 10: print(i) i+=1
这里注意,i+=1
就相当于i = i+1,每次执行这个循环i都会加一
现在我们来做个小题目,可能会有点难,但是要自己思考哦
要求:
- 已知
\n
为换行符 - 输出九九乘法表
- 使用
while
结构嵌套
答案:
i = 1 a = 1 while i < 10: while a <= i: print(a,"*",i,sep='',end=' ') a+=1 a = 1 i+=1 print()
输出结果:
1*1 1*2 2*2 1*3 2*3 3*3 1*4 2*4 3*4 4*4 1*5 2*5 3*5 4*5 5*5 1*6 2*6 3*6 4*6 5*6 6*6 1*7 2*7 3*7 4*7 5*7 6*7 7*7 1*8 2*8 3*8 4*8 5*8 6*8 7*8 8*8 1*9 2*9 3*9 4*9 5*9 6*9 7*9 8*9 9*9
(2)for
根据变量被赋值的次数来循环
for letter in 'Python': # 第一个实例 print("当前字母:",letter) fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # 第二个实例 print ('当前水果:', fruit) print ("Good bye!")
结果
当前字母: P 当前字母: y 当前字母: t 当前字母: h 当前字母: o 当前字母: n 当前水果: banana 当前水果: apple 当前水果: mango Good bye!
for in range
结构
for i in range(n): # 要执行的代码
i:这是一个变量,用于表示当前循环的次数。
range(n):这个函数生成从 0 到 n-1 的整数序列。
range
函数可以接收一个、两个或三个参数:
- 一个参数:
range(n)
生成从 0 到 n-1 的数字。 - 两个参数:
range(start, stop)
生成从start
到stop-1
的数字。 - 三个参数:
range(start, stop, step)
生成从start
到stop-1
的数字,step
为步长。
示例:
# 从 0 到 10,每次增加 2 for i in range(0, 10, 2): print(i)
结果:
0 2 4 6 8
7.读写文件
有点多懒得写了,用ai改了改放在md里了
链接: