搅局网络安全第一期(基础补全)—— 7.python基础

一定要注意python中的缩进,缩进相当于别的语言中{}的作用

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

这个结果就可以非常直观的看到sepend这两个函数的作用了

 

(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 中,布尔值表示真假,只有两个值:TrueFalse。 它们在控制程序流程、进行条件判断和逻辑运算中起着至关重要的作用,在网络安全领域中也广泛应用于各种安全检查和决策

例如

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是倒着取值的,应该将startend调换了,所以才会出现这样的结果,我们可以再试一下验证我们的想法

c = '01234567'
print(c[:3:-1])
d = 'python'
print(d[4:1:-1])

结果

7654
oht

不错印证了我们的想法,为什么会出现这样的结果呢,首先将startend值调换,这时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 或者 nullfalse
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

现在我们可以做一个登录系统:

要求:

  1. 用户共jerry和tom两个
  2. jerry的密码是123456,tom的密码是1234
  3. 输入用户和密码判断是否正确使用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都会加一

 

现在我们来做个小题目,可能会有点难,但是要自己思考哦

要求:

  1.  已知\n为换行符
  2. 输出九九乘法表
  3. 使用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 函数可以接收一个、两个或三个参数:

  1. 一个参数range(n) 生成从 0 到 n-1 的数字。
  2. 两个参数range(start, stop) 生成从 startstop-1 的数字。
  3. 三个参数range(start, stop, step) 生成从 startstop-1 的数字,step 为步长。

示例:

# 从 0 到 10,每次增加 2
for i in range(0, 10, 2):
  print(i)

结果:

0
2
4
6
8

7.读写文件

有点多懒得写了,用ai改了改放在md里了

链接:

点我下载

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇