一、Python的基本操作事项
- 缩进与空格
- 编写规范
- 注释
- 符合规范性,命名要见名知意
- 不要用关键字命名
二、Python基本数据类型
1.变量
- 定义:变量是一种存储数据的载体,计算机中的变量是实际存在的数据或者说是存储器中存储数据的一块内存空间;变量的值可以被读取和修改
- 命名规则:
- 变量名由字母(广义的Unicode字符,不包括特殊字符)、数字和下划线构成,数字不能开头
- 大小写敏感(大写的
A
和小写的a
是两个不同的变量) - 不要跟关键字(有特殊含义的单词)和系统保留字(如函数、模块等名字)冲突
2.数字
- int
- 整形,没有小数点的,包括1,100,0,-1,-100
- float
- 浮点型,带有小数点,包括1.0,-1.0,-1.1
- 常用运算符
3.布尔
- True
- False
4.字符串
-
\
转义符 -
r
忽略转义符的作业 -
+
多个字符串连接 - 索引:下标从0开始
- 切片:【start:stop:step】,step为步长,遵循前闭后开原则
三、字符串基本操作
1、字符串定义与使用场景
(1)定义
需要用双引号、单引号、三引号引起来
(2)使用场景:
1)数据提取之后的通用格式,如日志、excel
2)第三方数据信息
2、字符串:单行和多行
#单行字符串:双引号
str_a = "测试一行"
#多行字符串,三引号
str_b = """
第1行第1行第1行
第2行第2行第2行
第3行第3行第3行
"""
3、常用特殊字符:
a = "hello world"
#\n换行
b = "happy \n sad"
#转义符\:打印有特殊含义的字符
c = "abc \\n def"
4、字符串之字面量插值
(1)“str”.fotmat()
#不设定指定位置,按默认顺序
str_a = "have {} {}
str_b = str_a.format("ok", "no")
#设定指定位置
str_a = "this is {2} {0}"
str_b = str_a.format("ok", "no", "a book")
#通过名称传递变量
#str_a是原始变量内容
#str_b是替换后的变量内容
str_a = "have {no} {ok}"
str_b = str_a.format(ok="people", no="123", yes="water")
(2)f”{变量}”
#字符串前面添加f,变量使用{变量名}
name = "ice"
print(f"my name is {name}")
5、字符串常用方法
(1)join方法:列表转化为字符串
#join的使用,根据想要的格式拼接成字符串
a = ["a", "p", "p", "l", "e"]
print("".join(a))
#拼接过程加入特殊标识,可在双引号内输入想要的标识
print("@@".join(a))
(2)split方法:数据切分操作
#split的使用,将字符串根据规定的内容进行切分,以什么内容切分,那该内容也会没有
a = "a@p@p@l@e"
print(a.split("@"))
#通过空格进行切分单词
b = "hello world"
print(b.split(" "))
#通过某个字母进行切分单词
c = "spring spring"
print(c.split("i"))
print(c.split("g"))
print(c.split("i"))
(3)replace方法:将目标的字符串替换为想要的字符串
#replace的使用,replace("目标字符串","想要替换的字符串")
a = "today is happy"
#替换某个单词
print(a.replace("happy", "sad"))
#替换某个字母
print(a.replace("a", "A"))
(4)strip方法:去掉首尾的空格
#strip的使用
a = " today is? "
#打印原始变量a
print(a)
print(a.strip())
#方法二
strip_a = a.strip()
print(strip_a)
四、 Python的运算符
1、运算符的作用:
①python基础语法的内容
②通常表示不同数据或变量之间的关系
2、算数运算符
- +:加
- -:减
- *:乘
- /:除
- %:取模
- **:幂
- //:取整除
#加
a = 1+1
print(a)
#减
b = 2-1
print(b)
#变量之间也可以做运算
c = 4
d = 3
e = c-d
print(e)
#乘
f = 1*2
print(f)
#除
g = 3/2
print(g)
#取模(取余)
h= 5 % 2
print(h)
#幂
i = 2**3
print(i)
#取整除
j = 3//2
print(j)
3、比较运算符:输出的结果都是布尔值
- ==:等于
- !=:不等于
-
:大于
- <:小于
-
=:大于等于
- <=:小于等于
a = 1
b = 2
print(a == b)
print(a != b)
print(a > b)
print(a < b)
print(a <= b)
print(a >= b)
4、赋值运算符:右边赋值给左边
- =:简单赋值运算符
- +=:加法赋值运算符
- -=:减法赋值运算符
- *=:乘法赋值运算符
- /=:除法赋值运算符
- %=:取模赋值运算符
- **=:幂赋值运算符
- //=:取整赋值运算符
#简单赋值
a = 1
#多个变量赋值
a, b = 1, 2
#加法运算
#a = a+1
#加法赋值运算
a += 1
5、逻辑运算符
- 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)
6、成员运算符
- 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)
7、身份运算符
- is:是判断两个标识符是不是引用自一个对象,即判断两个变量之间的内存地址是否相同
- is not:是判断两个标识符是不是引用自不同对象
- 内置函数id()函数返回对象的唯一标识符,标识符是一个整数。用于获取对象的内存地址。
- 可变的数据结构,即使看着一样,但内存地址不一样,不可变的数据类型,看着一样,其内存地址是相同的
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控制流–分支判断
1、定义:
①一条一条语句顺序执行叫做顺序结构
②分支结构就是在某个判断条件后,选择一条分支去执行
2、if条件判断
a = "tester"
if a == "tester":
print("软件测试工程师")
3、else判断语句
#if后面要有判断条件, else后面不会跟判断条件
a = "OK"
if a == "tester":
print("软件测试工程师")
else:
print("其他")
4、elif多重条件
#if、elif后面要有判断条件,else后面不会跟判断条件
food = "apple"
color = "red"
if food == "banana":
print("香蕉")
elif food == "orange":
print("橙子")
elif food == "apple":
print("苹果")
if color == "red":
print("这是红苹果")
else:
print("这不是红色的苹果")
else:
print("其他食物")
5、分支嵌套:
food1 = "apple"
color1 = "red"
if food1 == "banana":
print("香蕉")
elif food1 == "orange":
print("橙子")
elif food1 == "apple":
if color1 == "red":
print("这是一个红色的苹果")
else:
print("其他食物")
6、三目运算符
#赋值语句放在最前面,if 判断条件 else else需要赋值的内容
d = "hello" if a > b else "world"
print(d)
六、python控制流-循环
1、循环
1)循环定义:
①循环语句允许我们执行一个语句或语句组多次
②python提供了for循环和while循环
2)作用:封装重复操作,Python最重要的基础语法之一
2、for in循环
- 1)使用场景:明确的知道循环执行的次数或者要对一个容器进行迭代
- 2)range 函数
- range(101)可以产生一个0到100的整数序列。
- range(1, 100)可以产生一个1到99的整数序列。
- range(1, 100, 2)可以产生一个1到99的奇数序列,其中的2是步长。
#1、for in循环
a = [1, 2, 3, 4, 5, 6] # 元组、字符串、字典、可迭代元素
for i in a:
print(i)
#range函数,range(11) [0,1,2,...,10]
#当range只传入1个参数时,传入的是结束数值,遵循前闭后开原则
for i in range(11):
print(i)
#当range传入2个参数时,传入的是(开始数值,结束数值)range(2,10) —> 2<=i<10
for i in range(2, 10):
print(i)
#当range传入3个参数时,传入的是(开始数值,结束数值,步长)
for i in range(2, 11, 2):
print(i)
- 3)break:跳出整个循环体
#for循环break跳出循环
list_a = [1, 2, 3, 4, 5, 6]
for i in list_a:
print(i)
#需要设定跳出的条件
if i == 3:
break
- 4)continue跳出某个循环体
#for循环,continue跳出某个循环体
list_b= [1, 2, 3, 4, 5]
for i in list_b:
if i == 3:
continue
print(i)
3、while循环
- 1)满足条件,进入循环,需要设定好循环结束条件
#while循环
a = 1
while a<6:
print("循环")
a += 1 # 需设定好循环结束的条件,避免进入死循环
- 2)break:跳出整个循环体
a = 1
while a<6:
print("循环")
a += 1 # 需设定好循环结束的条件,避免进入死循环
# 1.break不要直接使用;2.需要设定跳出的条件
if a == 3:
break
- 3)continue跳出某个循环体
#while循环,continue跳出某个循环体
a = 1
while a<6:
print(a)
if a == 3:
a = a+2.1
continue
a = a+1
4、例子:计算1~100 求和
- 1)使用分支结构实现1~100之间的偶数求和
sum = 0
for i in range(1, 101):
if i%2 ==0: # i取余为0时为偶数
sum = sum+i
print(sum) # 打印每一步求和的过程
#直接打印总和
print(sum)
- 2)不使用分支结构实现1~100之间的偶数求和
sum = 0
for i in range(0, 101, 2):
sum = sum+i
# print(sum) # 打印每一步求和的过程
#直接打印总和
print(sum)