【笔记】Python3学习笔记

前言

Python是一种广泛使用的解释型、高级和通用的编程语言。Python支持多种编程范型,包括函数式、指令式、结构化、>面向对象和反射式编程。它拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且其本身拥有一个巨大而广>泛的标准库。(维基百科

准备工作

  • python3

安装路径

  • Windows下Python解释器默认安装路径
1
C:\Users\用户名\AppData\Local\Programs\Python\

注释

单行注释

1
# 单行注释

多行注释

1
2
3
4
5
6
7
'''
多行注释
'''

"""
多行注释
"""

数据类型

数值类型

整型(int)

  • 0

  • 负数

  • 正数

  • 字面值:不是经过运算得到,直接给出的数据

1
n = 123

二进制数

1
n = 0b123

八进制数

1
n = 0o123

十六进制数

1
n = 0x123

浮点型(float)

  • 包含小数点的数
1
2
3
n = .1
n = 1.
n = 1.1

科学计数法

1
n = 0.1e2

复数(complex)

  • 由实部和虚部组成
  • 虚部以jJ结尾
1
n = 1+1j

字符串(str)

  • 表示文本信息,由成对的单引号、双引号、三引号括起来
  • 成对的单引号和双引号只能保留单行字符串,成对的三引号可以保留字符串中的换行
  • 成对的三引号如果没有赋值给变量,通常作为多行注释
1
2
3
4
5
6
7
8
9
10
11
12
n = '单行数据'

n = "单行数据"


n = '''
多行数据
'''

n = """
多行数据
"""

布尔型(bool)

  • TrueFalse
  • 如果是布尔值表示数值:True为1,False为0
  • 如果是字符串表示布尔值:非空字符串为True,空字符串为False
  • 如果是数值表示布尔值:非0为True,0为False
  • 如果是列表表示布尔值:非空列表为True,空列表为False
  • 如果是None值表示为布尔值:False
1
2
n = True
n = False

列表类型(list)

1
n = [1, 2, 3]

元祖类型(tuple)

1
n = (1, 2, 3)

集合类型(set)

1
n = {1, 2, 3}

字典类型(dict)

  • 存储键值对
1
n = {"name": "zhangsan", "age": "18"}

空值对象(NoneType)

1
n = None

输出语句

输出后换行

<str>:输出的文本

1
print(<str>)

修改末尾分隔符

  • 缺省值是换行符
1
print(<str>, end="\n")

连续输出多个数据

1
print(<str>, <str>)

修改分隔符

  • 缺省值是空格
1
print(<str>, <str>, sep=" ")

指定数据类型格式化输出

  • 格式化整数类型
1
print("学号是%d" % 1)

格式化多个数据

1
print("序号是%d,学号是%d" % (1, 2))

指定位数

  • 不足以0补全位数
1
2
3
print("学号是%.3d" % 1)

print("学号是%.3f" % 0.10000)

其他类型格式化符号

格式化符号 转换
%s 字符串
%d 有符号的十进制整数
%f 浮点数
%c 字符
%u 无符号十进制整数
%o 八进制整数
%x 十六进制整数(ox)
%X 十六进制整数(OX)
%e 科学记数法(e)
%E 科学记数法(E)
%g %f和%e的简写
%G %f和%E的简写

指定占位符格式化输出

  • 占位符的位置是从0开始的
1
print("学号是{0}".format(1))
  • 如果有序,可以省略占位符的数字
1
print("学号是{}".format(1))

指定变量格式化

  • f格式化是python3.6版本以后的新功能
  • 将变量用{}包含
1
print(f"学号是{1}")

输出原始字符串

  • 如果出现转义字符,并且不想转义,可以使用输出原始字符串(row)
1
print(r"\n")

转义字符

换行

  • \n

制表符

  • \t

释放变量

  • 通过手动解除变量与数据的关系,从而实现释放变量

<str>:变量名

1
del <str>

判断数据类型

  • 返回当前变量或数据的类型
1
type(<str>)

运算符

算术运算符

  • +-*///(整除)、%(取余)、**(幂)

赋值运算符

  • =

多个变量同时赋值

1
a, b = 1, 2

多个变量赋相同值

1
a = b = 1

增强运算符

  • +=-=*=/=//=%=**=
  • 将运算后的的结果直接赋值

比较运算符

  • ><>=<===!=
  • 返回一个布尔值

逻辑运算符

  • andornot

数字的逻辑运算

and
  • 如果有0,返回0
  • 否则,返回最后一个非0数字
or
  • 如果全为0,返回0
  • 否则,返回第一个非0数字

逻辑运算的化简写法

1
18 <= age <= 60

位运算

  • &:按位与运算符。将两个数的二进制各个位按与运算,同时为1即为1,如果有0即为0
  • |:按位或运算符。将两个数的二进制各个位按或运算,同时为0即为0,如果有1即为1
  • ^:按位异或运算符。将两个数的二进制各个位按异或运算,两数相同即为0,两数不同即为1
  • ~:按位取反运算符。将两个数的二进制各个位按取反运算,1变0,0变1,取反后的首位如果是1即为负数
  • <<:左移运算符。将左边数的二进制各个位向左移动右边数个位,空位补0。每位移1位,相当于左边数的十进制数乘2
  • >>:右移运算符。将左边数的二进制各个位向右移动右边数个位,空位补0。每位移1位,相当于左边数的十进制数除以2

成员运算符

  • innot in
  • 成员运算符用于判断后部分是否包含前部分

身份运算符

  • isis not
  • 身份运算符用于判断两个对象是否引用同一个对象

运算符的优先级

  • 算术运算符->位运算符->比较运算符->增强运算符->身份运算符->成员运算符->逻辑运算符->赋值运算符

输入

  • 从终端获取一个字符串
  • 获取到的数据都当作字符串处理
1
input()

有提示的输入

<str>:提示的字符串

1
input(<str>)

数据类型转换

x:一个变量

函数 说明
int(x)/int(x,y) 转换为整数
float(x) 转换为浮点数
str(x) 将表达式转换为字符串
eval(x) 用来计算在字符串中有效的Python表达式,并返回一个对象
tuple(x) 将序列转换为一个元祖
list(x) 将序列转换为一个列表
complex(real)/complex(real, imag) 创建一个复数,real为实部,imag为虚部
repr(x) 将对象转换为表达式字符串
chr(x) 将整数转换为Unicode字符
ord(x) 将字符转换为ASCII整数值
hex(x) 将整数转换为十六进制字符串
oct(x) 将整数转换为八进制字符串

if条件语句

单重判断

1
2
if 条件:
条件成立时执行的代码

双重判断

1
2
3
4
if 条件:
条件成立时执行的代码
else:
条件不成立时执行的代码

三目运算

  • 用于化简双重判断
1
条件成立时执行的表达式 if 条件 else 条件不成立时执行的表达式

多重判断

1
2
3
4
5
6
if 条件1:
条件1成立时执行的代码
elif 条件2:
条件2成立时执行的代码
else:
以上条件都不成立时执行的代码

嵌套判断

1
2
3
4
if 条件1:
条件1成立时执行的代码
if 条件2:
条件2成立时执行的代码

while循环

1
2
while 条件:
条件成立时重复执行的代码

循环嵌套

1
2
3
4
while 条件1:
条件1成立时重复执行的代码
while 条件2:
条件2成立时重复执行的代码

continue跳出当前循环

  • 跳出当前循环,继续执行下一次循环
1
2
3
while 条件:
条件成立时重复执行的代码
continue

break终止所有循环

  • 立即终止所有的循环
1
2
3
while 条件:
条件成立时重复执行的代码
break

与else连用

  • 循环正常结束后执行(没有遇到break时)
1
2
3
4
while 条件:
条件成立时重复执行的代码
else:
循环正常结束后执行的代码

for循环

1
2
for 临时变量 in 序列:
重复执行的代码

嵌套循环

1
2
3
4
for 临时变量1 in 序列:
重复执行的代码1
for 临时变量2 in 序列:
重复执行的代码2

continue跳出当前循环

  • 跳出当前循环,继续执行下一次循环
1
2
3
for 临时变量 in 序列:
条件成立时重复执行的代码
continue

break终止所有循环

  • 立即终止所有的循环
1
2
3
for 临时变量 in 序列:
条件成立时重复执行的代码
break

与else连用

  • 循环正常结束后执行(没有遇到break时)
1
2
3
4
for 临时变量 in 序列:
条件成立时重复执行的代码
else:
循环正常结束后执行的代码

导入模块

1
import 模块名

使用随机数模块

<int_start>:起始数字
<int_end>:截止数字

1
2
3
import random

random.randint(<int_start>, <int_end>)

序列

  • 字符串、列表、元祖都属于序列

序列的下标

  • 通过下标,获取指定索引的元素

<index>:下标(正数或负数)

1
2
str = "abc"
a = str[<index>]

切片

  • 切片是截取一部分元素集合的操作

<start>:开始截取位置索引(截取时包含开始位置)。省略不写默认从头开始选取
<end>:结束截取位置索引(截取时不包含结束位置)。省略不写默认选取到末尾
<step>:步长(正数或负数),选取间隔。省略不写默认为1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
str = "abc"
a = str[<start>:<end>:<step>]

# 步长为1
a = str[<start>:<end>]

# 从0开始选取
a = str[:<end>]

# 选取到末尾
a = str[<start>:]

# 选取全部
a = str[:]

# 选取倒叙全部
a = str[::-1]

引用

  • 获取变量的引用的地址

a:一个变量

1
id(a)

可变和不可变数据类型

  • 可变类型
    • 列表
    • 字典
    • 集合
  • 不可变类型
    • 整型
    • 浮点型
    • 字符串
    • 元祖

求数据的绝对值

<num>:一个数值数据

1
abs(<num>)

为小数求四舍五入

<num>:一个浮点型数据

1
round(<num>)

缩进留空

  • pass关键字可以将缩进留空,不执行任何代码,直接跳过,并且程序让不报错
1
2
class 类名():
pass

完成

参考文献

哔哩哔哩——Python-清风
哔哩哔哩——千锋教育