第一个程序
print("hello,world")
从这个文章往后,所有的代码都会在Kali Linux上进行,然后我也会告诉你们如何使用和安装
这个地址是Kali Linux已经安装好的虚拟机,在Vmware上打开即可,密码kali/kali
Kali Linux下载地址:
下载方法,如图所示:

Python安装的两种方法:
1、Linux
sudo apt-get update #更新源
sudo apt-get install #下载python3版本
2、Mac
brew install python3
3、windows:
下载地址:Python Releases for Windows | Python.org
这里提供好很多种版本的下载,可以下载这几个版本3.9.x,3.10.x,3.12.x
Vim编辑器
在Kali Linux中还需要我们认识一个东西那就是"Vim编辑器"
执行的两种命令:
在Kali Linux上执行脚本要使用的两个命令:
1、python xx.py #这个是直接以python运行脚本
2、./xx.py #这个执行命令,前提是这个脚本必须要有执行的权限,如果没有需要手动添加
手动添加权限的命令:chmod +x xx.py
然后这时还不能运行,需要在xx.py的第一行添加如下内容:
#! /usr/bin/env python3,
然后就能使用此命令执行了
数据类型与变量
None和Bool
None:表示空对象
Bool:Python 中使用 True 和 False 来表示布尔值,0代表False,1代表True注意首字母大写,即判断 Python 对象、返回值、表达式真假的一组特殊数据类型。
代码:
布尔类型:
FALSE(None) TRUE(非零)
a = 1
b = 2
a > b #false
a < b #true
保留字:
保留字,又称为关键字,每种语言都有自己的一套预先保留的特殊标识符,Python 也不例外,它自带的 keyword 模块可以查看全部关键字。
代码:
import keyword
print(keyword.kwlist)
内置函数:
菜鸟教程:Python 内置函数 | 菜鸟教程

了解也即
变量
编程语言中为了能够更好的处理数据,都需要使用一些变量。变量基本上就是代表(或是引用某值的名字)。Python 语言的变量可以是各种不同的数据类型,使用变量的时候不需要声明,Python 解释器会自动判断数据类型。使用 type(变量)可以查看该变量的类型。
a = 1
b = 2
c = "youzi"
type(a)
type(b)
type(c)
变量命名规则
1、驼峰命令法
示例:
First_Name = 'youzi'
2、下划线命名法
示例:
You_zi = 2
空行、缩进与多行代码
空行:
一般空行用于不同函数之间、不同类之间、以及类和函数之间进行分隔。空行不是 Python 的语法,即使不插入空行程序运行也不会出错。插入空行的主要目的是方便代码阅读以及日后的维护。
缩进:
Python 对于缩进的要求是非常严格的,它依靠缩进距离区分代码块,所以在 Python 中缩进也是一种语法,缩进的距离是可变的,具有相同缩进距离的属于同一个代码块。
多行代码:
Python 代码中一般一行只写一条语句。如果想要在一行中写多条语句,那么语句之间就需要使用 ; 进行分隔。
字符串
Python 3 中的字符串可以使用双引号或单引号标示,如果字符串中出现引号,则可以使用 \ 来去除引号标示字符串的特殊作用。
代码:
print("Hello,\"world!") #Hello,"world!
字符串常用属性和方法:
1、count
2、split和strip
3、upper和lower
4、len()
示例:
1、count
First_Name = 'aaaabbbccccaaa'
print(count('a'))
>>4
count是计数的
2、split和strip
First_Name = 'aaaa:bbb:cccc:aaa'
result = First_Name.split(":")
print(result)
>>['aaaa', 'bbb', 'cccc', 'aaa']
First_Name = ' aaaa:bbb:cccc:aaa '
print(First_Name)
result = First_Name.strip()
print(result)
>> aaaa:bbb:cccc:aaa
>>aaaa:bbb:cccc:aaa
split是指定某个字符分割
strip是删除字符两边的空格
3、upper和lower
First_Name = "FirstName"
print(First_Name.upper())
print(First_Name.lower())
>>FIRSTNAME
>>firstname
upper是全部大写
lower是全部小写
4、len()
First_Name = "FirstName"
print(First_Name.__len__())
>>9
__len__()和len()是一个作用,都是计算字符长度的
运算符
Python算术运算符

#! /usr/bin/env python3
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值为:", c)
c = a - b
print ("2 - c 的值为:", c)
c = a * b
print ("3 - c 的值为:", c)
c = a / b
print ("4 - c 的值为:", c)
c = a % b
print ("5 - c 的值为:", c)
# 修改变量 a 、b 、c
a = 2
b = 3
c = a**b
print ("6 - c 的值为:", c)
a = 10
b = 5
c = a//b
print ("7 - c 的值为:", c)
输出结果:
1 - c 的值为: 31
2 - c 的值为: 11
3 - c 的值为: 210
4 - c 的值为: 2.1
5 - c 的值为: 1
6 - c 的值为: 8
7 - c 的值为: 2
Python 比较运算符
以下假设变量 a 为 10,变量 b 为20:

#! /usr/bin/env python3
a = 21
b = 10
c = 0
if ( a == b ):
print ("1 - a 等于 b")
else:
print ("1 - a 不等于 b")
if ( a != b ):
print ("2 - a 不等于 b")
else:
print ("2 - a 等于 b")
if ( a < b ):
print ("3 - a 小于 b")
else:
print ("3 - a 大于等于 b")
if ( a > b ):
print ("4 - a 大于 b")
else:
print ("4 - a 小于等于 b")
# 修改变量 a 和 b 的值
a = 5
b = 20
if ( a <= b ):
print ("5 - a 小于等于 b")
else:
print ("5 - a 大于 b")
if ( b >= a ):
print ("6 - b 大于等于 a")
else:
print ("6 - b 小于 a")
输出结果:
1 - a 不等于 b
2 - a 不等于 b
3 - a 大于等于 b
4 - a 大于 b
5 - a 小于等于 b
6 - b 大于等于 a
Python赋值运算符
以下假设变量a为10,变量b为20:

#! /usr/bin/env python3
a = 21
b = 10
c = 0
c = a + b
print ("1 - c 的值为:", c)
c += a
print ("2 - c 的值为:", c)
c *= a
print ("3 - c 的值为:", c)
c /= a
print ("4 - c 的值为:", c)
c = 2
c %= a
print ("5 - c 的值为:", c)
c **= a
print ("6 - c 的值为:", c)
c //= a
print ("7 - c 的值为:", c)
输出结果:
1 - c 的值为: 31
2 - c 的值为: 52
3 - c 的值为: 1092
4 - c 的值为: 52.0
5 - c 的值为: 2
6 - c 的值为: 2097152
7 - c 的值为: 99864
Python位运算符
下表中变量 a 为 60,b 为 13二进制格式如下:

a = 0011 1100
b = 0000 1101
-----------------
a&b = 0000 1100 两个数进行与运算,都为1才是1
a|b = 0011 1101 两个数进行或运算,只要有一个是1就是1
a^b = 0011 0001 两个数进行异或运算,当两个对应的二进位相异时,结果为1,
~a = 1100 0011 对二进制的数取反
代码如下:
#! /usr/bin/env python3
a = 60 # 60 = 0011 1100
b = 13 # 13 = 0000 1101
c = 0
c = a & b # 12 = 0000 1100
print ("1 - c 的值为:", c)
c = a | b # 61 = 0011 1101
print ("2 - c 的值为:", c)
c = a ^ b # 49 = 0011 0001
print ("3 - c 的值为:", c)
c = ~a # -61 = 1100 0011
print ("4 - c 的值为:", c)
c = a << 2 # 240 = 1111 0000
print ("5 - c 的值为:", c)
c = a >> 2 # 15 = 0000 1111
print ("6 - c 的值为:", c)
输出结果:
1 - c 的值为: 12
2 - c 的值为: 61
3 - c 的值为: 49
4 - c 的值为: -61
5 - c 的值为: 240
6 - c 的值为: 15
Python逻辑运算符
Python语言支持逻辑运算符,以下假设变量 a 为 10, b为 20:

#! /usr/bin/env python3
a = 10
b = 20
if ( a and b ):
print ("1 - 变量 a 和 b 都为 true")
else:
print ("1 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("2 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("2 - 变量 a 和 b 都不为 true")
# 修改变量 a 的值
a = 0
if ( a and b ):
print ("3 - 变量 a 和 b 都为 true")
else:
print ("3 - 变量 a 和 b 有一个不为 true")
if ( a or b ):
print ("4 - 变量 a 和 b 都为 true,或其中一个变量为 true")
else:
print ("4 - 变量 a 和 b 都不为 true")
if not( a and b ):
print ("5 - 变量 a 和 b 都为 false,或其中一个变量为 false")
else:
print ("5 - 变量 a 和 b 都为 true")
输出结果:
1 - 变量 a 和 b 都为 true
2 - 变量 a 和 b 都为 true,或其中一个变量为 true
3 - 变量 a 和 b 有一个不为 true
4 - 变量 a 和 b 都为 true,或其中一个变量为 true
5 - 变量 a 和 b 都为 false,或其中一个变量为 false
Python成员运算符
除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。

#! /usr/bin/env python3
a = 10
b = 20
list = [1, 2, 3, 4, 5 ]
if ( a in list ):
print ("1 - 变量 a 在给定的列表中 list 中")
else:
print ("1 - 变量 a 不在给定的列表中 list 中")
if ( b not in list ):
print ("2 - 变量 b 不在给定的列表中 list 中")
else:
print ("2 - 变量 b 在给定的列表中 list 中")
# 修改变量 a 的值
a = 2
if ( a in list ):
print ("3 - 变量 a 在给定的列表中 list 中")
else:
print ("3 - 变量 a 不在给定的列表中 list 中")
输出结果:
1 - 变量 a 不在给定的列表中 list 中
2 - 变量 b 不在给定的列表中 list 中
3 - 变量 a 在给定的列表中 list 中
Python身份运算符
身份运算符用于比较两个对象的存储单元

#! /usr/bin/env python3
a = 20
b = 20
if ( a is b ):
print ("1 - a 和 b 有相同的标识")
else:
print ("1 - a 和 b 没有相同的标识")
if ( id(a) == id(b) ):
print ("2 - a 和 b 有相同的标识")
else:
print ("2 - a 和 b 没有相同的标识")
# 修改变量 b 的值
b = 30
if ( a is b ):
print ("3 - a 和 b 有相同的标识")
else:
print ("3 - a 和 b 没有相同的标识")
if ( a is not b ):
print ("4 - a 和 b 没有相同的标识")
else:
print ("4 - a 和 b 有相同的标识")
输出结果:
1 - a 和 b 有相同的标识
2 - a 和 b 有相同的标识
3 - a 和 b 没有相同的标识
4 - a 和 b 没有相同的标识
Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。 相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):

#! /usr/bin/env python3
a = 20
b = 10
c = 15
d = 5
e = 0
e = (a + b) * c / d #( 30 * 15 ) / 5
print ("(a + b) * c / d 运算结果为:", e)
e = ((a + b) * c) / d # (30 * 15 ) / 5
print ("((a + b) * c) / d 运算结果为:", e)
e = (a + b) * (c / d) # (30) * (15/5)
print ("(a + b) * (c / d) 运算结果为:", e)
e = a + (b * c) / d # 20 + (150/5)
print ("a + (b * c) / d 运算结果为:", e)
输出结果:
(a + b) * c / d 运算结果为: 90.0
((a + b) * c) / d 运算结果为: 90.0
(a + b) * (c / d) 运算结果为: 90.0
a + (b * c) / d 运算结果为: 50.0