第4讲 运算符
- 字符串的其他操作
- 切片
- 通用操作
- 修改列表
- 列表的方法
- 1.运算符
-
- 1.1运算符的概念
- 1.2运算符的分类
-
- 1.2.1算术运算符
- 1.2.2赋值运算
- 1.2.3比较运算符
- 1. 2.4逻辑运算符
- 1.2.5条件运算符(三元运算符)
- 作业
字符串的其他操作
- len() 字符串的长度
- max() 最大值
- min() 最小值
- split()分割字符串
- join()拼接字符串
- find()查找字符串
- replace() 替换字符串
- partition() 把字符串分割为三部分
- 去空格
s.strip() 左右两边去空格
s.lstrip() 去左边空格
s.rstrip() 去右边空格
- 字符串大小写
s.upper() 全部大写
s.lower() 全部小写
s.isupper() 判断是不是大写
s.islower() 判断是不是小写
演示如下:
最大值,最小值以ASCII码大小对比表为依据
切片
- 切片是指从现有列表中获得一个子列表
- 通过切片来获取指定的元素
- 语法: 列表[起始 : 结束 : 步长]
- 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
- 起始位置和结束位置的索引可以不写
如果省略结束位置, 则会从当前的开始位置一直截取到最后
如果省略开始位置, 则会从第一个元素截取到结束的元素,但是不包括结束的元素
如果开始位置和结束位置都省略, 则则会从第一个元素开始截取到最后一个元素
- 步长表示每次获取元素的间隔,默认是1(可以省略不写)
- 步长不能是0,但可以是是负数
演示如下:
通用操作
- ‘ + ’ 和‘ * ’
‘ + ’ 可以将两个列表拼接成一个列表
‘ * ’可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)
- in 和 not in
- in用来检查指定元素是否在列表当中
- not in 用来检查指定元素是否不在列表当中
- len() 获取列表中元素的个数
- max() 获取列表中最大值
- min() 获取列表中最小值
- list.index(x[, start[, end]])
第一个参数 获取指定元素在列表中的位置
第二个参数 表示查找的起始位置
第三个参数 表示查找的结束位置
- list.count(x) 统计指定元素在列表中出现的个数
演示如下:
- 获取列表中的位置:
修改列表
- 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
- 当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致
- 通过切片来删除元素
del list[起始 : 结束]
list = []
演示如下:
列表的方法
- append() 像列表的最后添加一个元素
- insert(arg1,arg2) 像列表指定位置插入一个元素 参数1:要插入的位置 参数2:要插入的元素
- extend(iterable) 使用一个新的序列来扩展当前序列(它会将该序列的中元素添加到列表中) 参数需要传递一个序列
- pop() 根据索引删除并返回指定元素
- remove() 删除指定元素 (如果相同值的元素有多个,只会删除第一个)
- reverse() 翻转列表
- sort(key=None,reverse=False) 用来对列表中的元素进行排序 reverse:True反序;False 正序
演示如下:
1.运算符
1.1运算符的概念
- 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”
1.2运算符的分类
- 算术运算符
- 赋值运算符
- 比较运算符(关系运算符)
- 逻辑运算符
- 条件运算符(三元运算符)
1.2.1算术运算符
- 加法运算符 表现形式 +
- 减法运算符 表现形式 -
- 乘法运算符 表现形式 *
- 除法运算符 表现形式 /
- // 整除,只会保留计算后的整数位,总会返回一个整型
- % 取模,求两个数相除的余数
- ** 幂运算,求一个值的几次幂
演示如下
1.2.2赋值运算
- 赋值运算符
复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的
- += (x+= 3 相当于 x = x + 3 )
- -= (x -= 3 相当于 x= x - 3 )
- = (x = 3 相当于 x = x 3 )
- **= (x **= 3 相当于 x = x ** 3 )
- /= (x /= 3 相当于 x = x/ 3 )
- //= (x //= 3 相当于 x = x // 3 )
- %= (x %= 3 相当于 x= x % 3 )
1.2.3比较运算符
- 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
- ‘’> 比较左侧值是否大于右侧值
- ‘’>= 比较左侧的值是否大于或等于右侧的值
- < 比较左侧值是否小于右侧值
- <= 比较左侧的值是否小于或等于右侧的值
- 特殊的比较方式
- == 比较两个对象的值是否相等
- != 比较两个对象的值是否不相等
- is 比较两个对象是否是同一个对象,比较的是对象的id
- is not 比较两个对象是否不是同一个对象,比较的是对象的id
1. 2.4逻辑运算符
(1) not 逻辑非
- not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
(2)and 逻辑与
- and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
- 与运算是找False的,如果第一个值为False,则不再看第二个值
(3) or 逻辑或
- 或运算两个值中只要有一个True,就会返回True
- 或运算是找True的
(4) 非布尔值的与或运算
- 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
- 非布尔值与运算的规则
- 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
- 非布尔值或运算的规则
- 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
1.2.5条件运算符(三元运算符)
表达式1 - if - 语句 - else - 表达式2
True执行表达式1,返回结果;False执行表达式2,返回结果
作业
1. 完成字符串的逆序以及统计
- 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入
- 打印出字符串长度
- 使用切片逆序打印出字符串
2. 要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入
• 用户名长度6-20,用户名必须以字母开头
• 密码长度至少6位,不能为纯数字,不能有空格
3.以4种格式化字符串的方式来实现 521 xxx 嫁给我好吗?
4.现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值