昨日回顾:
类型转换:
int() : 将x转换为一个整数
float() : 将x转换为一个浮点数数
str() : 将对象 x 转换为字符串
运算符:
算术运算符:
+ : 加 - 两个对象相加;
- : 减 - 得到负数或是一个数减去另一个数;
* : 乘 - 两个数相乘或是返回一个被重复若干次的字符串;
/ : 除 - x 除以 y;
% : 取模 - 返回除法的余数;
// : 取整除 - 往小的方向取整数;
** : 幂 - 返回x的y次幂;
赋值运算符
= : 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= : 加法赋值运算符 c += a 等效于 c = c + a
-= : 减法赋值运算符 c -= a 等效于 c = c - a
*= : 乘法赋值运算符 c *= a 等效于 c = c * a
/= : 除法赋值运算符 c /= a 等效于 c = c / a
%= : 取模赋值运算符 c %= a 等效于 c = c % a
**= : 幂赋值运算符 c **= a 等效于 c = c ** a
//= : 取整除赋值运算符 c //= a 等效于 c = c // a
:= : 海象运算符,这个运算符的主要目的是在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增运算符。
比较运算符
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 True。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。 (a < b) 返回 True。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 True。
逻辑运算符
and : x and y 布尔"与" - 如果 x 为 False,x and y 返回 x 的值,否则返回 y 的计算值。 (a and b) 返回 20。
or : x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。 (a or b) 返回 10。
not : not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。 not(a and b) 返回 False
if 作为条件判断
if 条件
条件成立的情况
elif 条件
条件成立的情况
else
以上条件都没有进入的时候 执行else
while 作为循环控制
一般的循环 需要加一个控制器
count = 0
while 条件:
条件成立的时候 进入循环体
count = count+1
break : 结束整个循环
continue : 结束当前循环 执行下一次循环
今日课程
for循环基本语法
for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典 )类型数据的遍历(循环)操作。
for循环主要用于序列类型数据的循环操作(遍历操作)
当循环次数未知的情况,建议使用for循环
python
语法:
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
例:使用for循环遍历字符串"itheima"
# 演示: for循环的入门案例
"""
语法格式:
for 临时变量 in 序列:
# 循环体: 需要重复执行的代码
应用场景: 当循环次数未知的情况,建议使用for循环。 一般 for循环主要是用于对五大容器进行遍历
"""
# 案例:使用for循环遍历字符串"itheima"
for e in 'itheima':
print(e)
range方法(函数)
在Python3中 range() 函数返回的是一个可迭代对象(类型是对象)
主要作用:用于生成一段连续的内容,从0到9
python
语法:
range(stop)
range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是 [0, 1, 2, 3, 4] 没有 5
step:步长,默认为1。例如:range(0,5) 等价于 range(0, 5, 1)
# 案例:for循环与range方法,使用for循环,循环5次: 0~5
"""
range使用格式:
range(start,stop[,step])
说明:
start: 默认从 0 开始
stop: 结束值, 包头不包尾
step: 步长 表示每个元素之间相距的距离 默认为1
"""
# 案例:for循环与range方法,使用for循环,循环5次: 0~5
for e in range(0, 5):
print(e)
for循环中的else结构
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码。
强调:'正常结束',非正常结束,其else中的代码时不会执行的。(如遇到break的情况)
python
语法:
for 临时变量 in 序列:
循环体
else:
当for循环正常结束后,返回的代码
break关键字对for...else结构的影响
break跳出循环后不会执行for else的代码
python
str1 = 'itheima'
for i in str1:
if i == 'e':
print('遇e不打印')
break
print(i)
else:
print('循环正常结束之后执行的代码')
continue关键字对for...else结构的影响
continu只对本此循环有影响 所以不会影响else的执行
python
str1 = 'itheima'
for i in str1:
if i == 'e':
print('遇e不打印')
continue
print(i)
else:
print('循环正常结束之后执行的代码')
字符串定义和切片
字符串是 Python 中最常用的数据类型。我们一般使用引号来创建字符串。创建字符串很简单,只要为变量分配一个值即可
python
name='这是一个字符串'
print( type(name) )
print(name)
name="这也是一个字符串"
print( type(name) )
print(name)
"""
字符串中可能会遇到特殊符号 ' 或者 ""
解决方案1: 可以使用转义符号 \
name ='\'程序员\'是\'牛马\'旗下的产品'
解决方案2: 如果字符串内部使用的是单引号 外层套双引号 如果内部使用的双引号 外部使用单引号
name ="'程序员'是'牛马'旗下的产品"
name ='"程序员"是"牛马"旗下的产品'
解决方案3: 字符串支持三引号 三个双引号 或者 三个单引号都可以
注释好像也是三个引号. 如果三引号的字符串赋值给某个变量的时候 就是字符串
但如果没有做任何赋值动作 就是注释
三引号中 可以支持多种字符 或者 特殊符号
三引号的字符串允许折行书写
"""
#name ='\'程序员\'是\'牛马\'旗下的产品'
#name ="'程序员'是'牛马'旗下的产品"
name ='"程序员"是"牛马"旗下的产品'
name =''' "程序员"是'牛马'
旗下的产品 '''
print( type(name) )
print(name)
字符串在计算机底层的存储形式
在计算机中,Python中的字符串属于序列结构。所以其底层存储占用一段连续的内存空间。
序列: 有序序列(数据具有一定的排序格式) 无序序列(没有顺序)
python
str1 = 'itheima'
字符串: 是由一个个的字符组成的
索引的最大值 = len(字符串) - 1
注意:索引下标从0开始。
索引下标,就是编号。比如火车座位号,座位号的作用:按照编号快速找到对应的座位。同理,下标的作用即是通过下标快速找到对应的数据。
什么是字符串切片
所谓的切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
字符串、列表、元组 有序的序列
字符串切片基本语法
python
顾头不顾尾:
序列名称[开始位置下标:结束位置下标:步长(步阶)]
三个参数都有默认值:
开始位置默认值: 第一个字符
结束位置默认值: -1 (最后一个)
步长 : 1
numstr = '0123456789'
numstr[0:3:1] # 012 => range方法非常类似,步长:每次前进1步
numstr[0:3:2] # 02 => 每次前进2步
步长可以为负数,正数代表从左向右截取,负数代表从右向左截取
"""
所谓的切片 其实就是截取
截取: 取字符串的某一个部分
含头不含尾
字符串[startIndex : endIndex : step]
startIndex: 开始索引 从0开始
没写默认是0
支持正整数和负整数
正整数 从左往右 负整数 从右往左
endIndex: 结束索引
没写默认是最后
支持正整数和负整数
正整数 从左往右 负整数 从右往左
step : 步长
没写默认是1
正整数的步长: 从左往右数
负整数的步长: 从右往左数
"""
① 不包含结束位置下标对应的数据, 正负整数均可;
② 步长是选取间隔,正负整数均可,正数从左向右,负数从右向左。默认步长为1。
字符串的操作方法(内置)
字符串中的查找方法
所谓字符串查找方法即是查找字符在字符串中的位置或出现的次数。
python
语法:
字符串.find(要查找的字符或者子串)

find()方法
作用:检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1
python
"""
字符串.函数(需要查找的内容)
find: 如果找到返回索引下标,找不到返回-1
index:如果找到返回索引下标,找不到报错
"""
file_name = 'avatar.png'
print( file_name.find('.') ) # 6
print( file_name.find('-') ) # -1
print( file_name.index('.') ) # 6
print( file_name.index('-') ) # substring not found 截取的字符串没有找到
index()方法
index()方法其功能与find()方法完全一致,唯一的区别在于当要查找的子串没有出现在字符串中时,find()方法返回-1,而index()方法则直接报错。
python
str1 = 'apple, banana, orange'
# 判断apple是否出现在字符串str1中: index方法
print(str1.index('apple'))
print(str1.find('apple'))
字符串的修改方法
所谓修改字符串,指的就是通过函数(方法)的形式修改字符串中的数据。

replace()方法
python
语法:
字符串.replace(要替换的内容, 替换后的内容, 替换的次数-可以省略)
例:
str1 = 'hello linux and hello linux'
# 把字符串中所有linux字符替换为python: replace
new_str = str1.replace('linux','python')
print(new_str)
目前在工作中,replace主要用于实现关键字替换或过滤功能。北京 > BJ,论坛关键字过滤
split()方法
作用:对字符串进行切割操作,返回一个list()列表类型的数据
python
str2 = 'apple-banana-orange'
# 需求1: 根据字符串的 - 对字符串进行切割操作
list = str2.split('-')
print(list)
# 需求2: 针对案例1的字符串, 请按照空格进行切割
list = str1.split(' ')
print(list)
join()方法
作用:和split()方法正好相反,其主要功能是把序列拼接为字符串
python
语法:
字符串.join(数据序列)
例:
# 需求: 把水果列表['apple', 'banana', 'orange']拼接成'apple-banana-orange'
list1 = ['apple', 'banana', 'orange']
# join 拼接操作
new_str = '-'.join(list1)
print(new_str)