Python 环境安装
- 推荐 Python 版本:3.10.0
- 官方下载地址:https://www.python.org/downloads/macos/
- 安装演示
- macOS 安装 Python
- Windows 安装 Python
Windows 安装 Python
- 操作步骤
- 下载 exe 安装程序
- 运行安装包
- 检查是否安装成功
pycharm 环境安装与配置
安装 pycharm
- 推荐版本:社区版
- 官方地址:Download PyCharm: Python IDE for Professional Developers by JetBrains
- 安装演示
- macOS 系统
- Windows 系统
pycharm 常用配置
-
配置编译器
-
安装第三方库
Python 的基本操作
基本操作注意事项
- 缩进与空格
- 编写规范
- 注释
- 符合规范性,命名要见名知意
- 不要用关键字命名
PEP8 编码规范
Python 基本数据类型
数据类型
- 变量
- 数字
- 布尔
- 字符串
变量
- 变量是一种存储数据的载体,计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间
- 变量的值可以被读取和修改
变量命名规则
- 变量名由字母(广义的 Unicode 字符,不包括特殊字符)、数字和下划线构成,数字不能开头
- 大小写敏感(大写的
A
和小写的a
是两个不同的变量) - 不要跟关键字(有特殊含义的单词)和系统保留字(如函数、模块等名字)冲突
数字
- int
- 整型,没有小数点的,包括 1,100,0,-1,-100
- float
- 浮点型,带有小数点,包括 1.0,-1.0,-1.1
int_a = 1
print(int_a)
print(type(int_a))
float_a = 1.0
print(float_a)
print(type(float_a))
布尔
- True
- False
bool_a = True
print(bool_a)
print(type(bool_a))
bool_b = False
print(bool_b)
print(type(bool_b))
字符串
-
\
转义符 -
r
忽略转义符的作业 -
+
多个字符串连接 - 索引
- 切片
# `\` 转义符
str_a = "adb\\n123456"
print(str_a)
# `r` 忽略转义符的作业
str_b = r"adb\n123456"
print(str_b)
# `+` 多个字符串连接
str_c = str_a + str_b
print(str_c)
字符串(索引+切片)
- 字符串:“abcdefg”
- 索引:0123456
- 切片: start: stop: step
str_d = "abcdefg"
print(str_d[0])
# x>=1
print(str_d[1:])
# 前闭后开原则,1<=x<5
print(str_d[1:5])
# 步长,
print(str_d[1:5:2])
print(str_d[1::2])
Python字符串的基本操作
字符串操作的使用场景
- 数据提取之后的通用格式
- 日志
- excel
- 第三方数据信息
字符串的定义
# 单行字符串
str_a = "this is a str"
# 多行字符串
str_b = """
这是一段字符串
霍格沃兹测试开发
"""
字符串常用特殊字符
转义字符 描述 作用
换行 打印换行
\ 转义符 打印有特殊含义的字符
# 换行
print("hogwarts \n 测试学院") #打印的结果就换行了
# 转义
print("hogwarts \\n 测试学院") [两个斜杠]
字符串格式化符号
符号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%p 用十六进制数格式化变量的地址
## 测试学员替换掉 %s 的位置
print("hogwarts %s"%"测试学院")
字符串之字面量插值
“str”.format()
# 不设置指定位置,按默认顺序
"{} {}".format("hogwarts", "ad")
# 设置指定位置
"{0} {1}".format("hogwarts", "ad")
# 通过名称传递变量
"{name}测试开发".format(name="霍格沃兹")
字符串之字面量插值
f”{变量}”
name = "Bob"
school = "hogwarts"
# 通过 f"{变量名}"
print(f"我的名字叫做{name}, 毕业于{school}")
字符串常用API之join
join:列表转换为字符串
a = [“h”, “o”, “g”, “w”, “a”, “r”, “t”, “s”]
将列表中的每一个元素拼接起来
print(“”.join(a))
字符串常用API之split
split
数据切分操作
根据split内的内容将字符串进行切分
demo = “hogwarts school”
demo.split(" ")
字符串常用API之replace
replace:将目标的字符串替换为想要的字符串
将原字符串中的school替换为top school
“hogwarts school”.replace(“school”, “top school”)
字符串常用API之strip
strip:去掉首尾的空格
" hogwarts top school ".strip()
Python 的运算符
运算符的作用
- Python 基础语法的内容
- 通常表示不同数据或变量之间的关系
算数运算符
# 加
a = 1+1
# 减
b = 2-1
#变量之间也可以做运算
c = 4
d = 3
e = c-d
# 乘
f = 1*2
# 除
g = 3/2
# 取模(取余)
h = 5%2
# 幂
i = 2**3
# 取整除
j = 3//2
比较运算符
a = 1
b = 2
print(a==b)
print(a!=b)
print(a>b)
print(a<b)
print(a<=b)
print(a>=b)
赋值运算符
运算符 | 描述 |
---|---|
= | 简单赋值运算符 |
+= | 加法赋值运算符 |
-= | 减法赋值运算符 |
*= | 乘法赋值运算符 |
/= | 除法赋值运算符 |
%= | 取模赋值运算符 |
**= | 幂赋值运算符 |
//= | 取整赋值运算符 |
# 简单赋值
a = 1
# 多个变量赋值
a,b = 1,2
# 加法运算
# a = a+1
# 加法赋值运算
a += 1
逻辑运算符
运算符 | 逻辑表达式 | 描述 |
---|---|---|
and | x and y | x、y 都为真才为真,有一个为假即为假 |
or | x or y | x、y 有一个为真即为真,都为假为假 |
not | not x | 如果 x 为假,则 not x 为真 |
a, b= True, False
print(a and b)
print(a or b)
print(not a)
print(not b)
成员运算符
运算符 | 描述 |
---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False。 |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False。 |
list_a = ["a", "b", "c"]
str_a = "abcde"
str_b = "bcde"
print("a" in list_a)
print("a" not in list_a)
print("a" in str_a)
print("a" not in str_a)
print("a" in str_b)
身份运算符
运算符 | 描述 |
---|---|
is | is 是判断两个标识符是不是引用自一个对象 |
is not | is not 是判断两个标识符是不是引用自不同对象 |
list_a = ["a", "b", "c"]
list_b = ["a", "b", "c"]
print(id(list_a)) # 使用id查看变量的内存地址
print(id(list_b))
print(list_a is list_b)
print(list_a == list_b)
Python控制流-分支判断
什么是分支判断
- 一条一条语句顺序执行叫做顺序结构
- 分支结构就是在某个判断条件后,选择一条分支去执行
@startmindmap
* 人生
** 条件:擅长/喜欢文科
*** 历史
*** 地理
** 条件:擅长/喜欢理科
*** 数学
*** 生物
*** 编程
**** 测试
**** 开发
**** 产品
**** 项目经理
@endmindmap
if 条件判断
start
if (是否是测试工程师) then (yes)
:测试工程师;
endif
: 学测试\n认准霍格沃兹测试开发;
stop
# if后面要有判断条件
if 判断条件:
# 执行语句需要注意缩进
执行语句
else 判断语句
@startuml
start
if (school=="hogwarts") then (yes)
:霍格沃兹测试开发;
else
:测试开发 ;
endif
stop
@enduml
if 判断条件:
# 执行语句需要注意缩进
执行语句
# 注意,无需添加条件
else:
执行语句
elif 多重条件
start
if (food=="apple") then (yes)
:苹果;
elseif (food=="banana") then (yes)
:香蕉;
elseif (food=="orange") then (yes)
:橘子;
endif
stop
@enduml
# elif后面要有判断条件
if 判断条件:
# 执行语句需要注意缩进
执行语句
elif 判断条件:
执行语句
elif 判断条件:
执行语句
分支嵌套
# elif后面要有判断条件
if 判断条件:
# 执行语句需要注意缩进
if 判断条件:
执行语句
elif 判断条件:
if 判断条件:
执行语句
# 注意,无需添加条件
else:
if 判断条件:
执行语句
三目运算符
# 正常的赋值操作和判断语句结合
if a>b:
h = "变量1"
else:
h = "变量2"
# 优化之后更简洁的写法
h = "变量1" if a>b else "变量2"
Python控制流-循环
什么是循环
- 循环语句允许我们执行一个语句或语句组多次
- python提供了for循环和while循环
- 右图是大多数编程语言中循环语句的一般形式
@startuml
start
repeat
:执行语句;
repeat while (条件) is (真)
->假;
stop
@enduml
循环的作用
- 封装重复操作
- Python最重要的基础语法之一
for-in循环
- 使用场景:
- 明确的知道循环执行的次数或者要对一个容器进行迭代(后面会讲到)
-
range
函数- range(101)可以产生一个0到100的整数序列。
- range(1, 100)可以产生一个1到99的整数序列。
- range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长。
# 使用for 循环遍历列表中的元素
for i in [1,2,3]:
print(i)
# for 循环结合 range函数
for i in range(1, 100, 2):
print(i)
while 循环
- 满足条件,进入循环
- 需要设定好循环结束条件
@startuml
start
while (是否满足进入循环条件)
: 满足循环条件执行的内容;
endwhile
: 如果没有满足循环条件直接执行的内容;
stop
@enduml
while循环示例
count = 0
# while循环条件,满足条件执行循环体内代码
while count<5:
# count 变量+1,否则会进入死循环
count += 1
break-跳出整个循环体
# while循环
count = 0
# while循环条件,满足条件执行循环体内代码
while count<5:
# count 变量+1,否则会进入死循环
count += 1
if count == 3:
break
list_demo = [ 1, 2, 3, 4, 5, 6]
# 循环遍历列表
for i in list_demo:
# 如果i 等于三,那么跳出整个for循环
# 不再打印后面的4、5、6
print(i)
if i == 3:
break
continue:跳出当前轮次循环
# while循环
count = 0
# while循环条件,满足条件执行循环体内代码
while count<5:
# count 变量+1,否则会进入死循环
print(count)
if count == 3:
# 为了与3区分,如果==3的情况下count = count+1.5
count += 1.5
continue
count += 1
list_demo = [1, 2, 3, 4, 5, 6]
# 循环遍历列表
for i in list_demo:
# 如果i 等于3,那么跳出当前这轮循环,不会再打印3
if i == 3:
continue
print(i)
pass
- pass:
- 没有实质性含义,通常占位使用
- 不影响代码的执行逻辑
print("hogwarts")
pass
print("school")
for 循环-实例
- 计算1~100 求和
-
使用分支结构实现1~100之间的偶数求和
-
不使用分支结构实现1~100之间的偶数求和
-
while循环-实例
猜数字游戏
计算机出一个1~100之间的随机数由人来猜
计算机根据人猜的数字分别
给出提示大一点/小一点/猜对了
课后练习
不使用分支结构实现1~100之间的奇数求和
使用while语句实现1~100之间的奇数求和