Python是由荷兰人吉多·范罗苏姆(Guido van Rossum)在 1989 年在圣诞节期间创建、1991 年发布的高级编程语言,以简洁易读著称。
越是接近人类的语言就越高级,python就是高级编程语言。相反,越接近机器语言的就越低级,例如汇编

Python的特点主要有语法简洁、代码量较少、类库强大等特点
在机器学习领域提供了sklearn,在深度学习领域提供了Pytorch、TensorFlow等方便的库供我们使用,这也是笔者学习Python的主要原因

1. 基础知识

1.1. 输入输出

输出函数 print()

1
print() #括号中填需要输出的内容

输入函数 input()

1
input() #括号中填需要输入的内容

1.2. 注释

单行注释

井号

1
# 这是一个单行注释

多行注释

多个井号

1
2
#这是一个
#多行注释

三引号或三双引号

1
2
3
4
5
6
7
8
"""
这是一个
多行注释
"""
'''
这也是一个
多行注释
'''

这里需要注意三引号的本质,三引号并不是真正的注释而是多行字符串。因为这里并没有赋值给变量,解释器创建后会将其丢弃,因此可以作为多行注释的一种偷懒写法。这也是为什么在代码块中这里显示的是代表字符串的颜色而不是代表注释的颜色

1.3. 变量

1.3.1. 变量需要符合标识符的命名规则

标识符的命名规则:

(1) 字母、数字、下划线组成

(2) 不可以数字开头

(3) 大小写敏感

(4) 不能使用关键字和保留字

1.3.2 行业通用规范(PEP8规范)

(1) 普通变量:蛇形命名(snake_case)

全部小写,单词之间使用下划线分隔

1
user_name = "Supzj"

(2) 常量:

全大写+下划线

1
PI = 3.14159

(3) 类名:大驼峰(PascalCase)

每个单词首字母大写

1
2
class UserInfo:
pass

(4) 私有变量:

单下划线开头,字母小写

1
_user_pwd = "123456"

1.4. 数据类型

1.4.1. 数据类型的分类

(1) 整型(int):

整数

1
a = 5

(2) 浮点型(float):

小数

1
a = 0.5

科学计数法

1
a = 1e8 #1 * 10^8

(3) 字符串(string):

中英文

1
2
3
4
a = 'str'
b = "字符串"
c = """str"""
d = '''字符串'''

单引号和双引号换行需要打换行符:\n,三引号和三双引号内部可以直接换行,无需打换行符。除此之外单双引号本质上基本没有差别

(4) 布尔值(bool):

真/假,0/1,True/False

1
a = True

(5) 空(None):

没有值/空值/什么都没有

1
a = None

(6) 列表、元组、字典、集合等

都是python中常见的数据类型,后面有单独的讲解

1.4.2. 类型转换

python中类型转换的语法是: b类型(a类型的变量)
这个式子的含义是把a类型的变量转换成b类型的变量

1
2
3
a = int('12345') #字符串转整型(字符串必须是数字)
b = int(20.1) #浮点型转整型(直接抹掉小数的部分,这里b被赋值为20)
c = float('123.45') #字符串转浮点型(字符串必须是数字)

以上的三种转换都是可逆的

1.4.3. 获取类型信息

(1) type()

用于获取对象的类型
语法:type(对象),返回的是对象的类型

1
2
a = 30
print(type(a)) #这里会输出<class 'int'>

(2) isinstance()

用来判断对象的数据类型
语法:isinstance(对象,数据类型),返回的是一个布尔值

1
2
a = 30
print(isinstance(a,float)) #这里会输出False

1.5. 运算符

运算符可以分为七大类

1.5.1. 算术运算符

1
# +,-,*,/(除法),//(舍去小数的除法),%(模运算),**(幂运算)

1.5.2. 赋值运算符

1
2
# =,+=,-=,*=,/=,//=,%=,**=
a += 1 #代表 a = a + 1

这里的等于号并不是我们日常使用的等于号,而是赋值的意思

1.5.3. 比较运算符

1
# >,<,>=,<=,==(这里的双等于是我们日常生活中使用的等于号),!=(不等于)

1.5.4. 逻辑运算符

1
# and(与),or(或),not(非)

1.5.5. 二进制运算符

1
# &(按位与),|(或),^(异或),~(取反),<<(左移),>>(右移)

1.5.6. 成员运算符

1
# in/not in(判断元素是否在序列中,用于列表、字符串、元组、字典、集合)

1.5.7. 身份运算符

1
# is/is not(判断两个变量是否属于同一个对象)

2. 流程控制

2.1. 条件判断

(1) 单条件

1
2
3
4
if 表达式: # 如果表达式为真则执行代码块1,为假则执行代码块2
代码块1
else:
代码块2

(2) 多条件

1
2
3
4
5
6
7
8
9
if 表达式1: # 如果表达式1为假,则判断表达式2以此类推
代码块1
elif 表达式2:
代码块2
elif 表达式3:
代码块3
...
else:
代码块n

2.2. 循环流程

(1) while循环

1
2
while 表达式: # 只要表达式为真则一直循环执行代码块
代码块

(2) for循环

1
2
for 变量 in 可迭代对象: #将可迭代对象赋值给变量后进入一次循环,有多少次迭代就进行多少次循环
代码块

(3) range

for经常会搭配range使用,range是一个可迭代对象

1
range(start=0,stop,step=1)

start是下标,下标默认从0开始
stop是结束位置
step是步长默认为1

1
2
3
4
for i in range(8): #可以不写start和step但是stop一定要写
print(i)
for i in range(0,1,8):
print(i)

(4) continue

跳出本次循环,后面循环继续执行

(5) break

终止循环