1.三元运算符
# 条件运算符(三元运算符)
# 语法: 语句1 if 条件表达式 else 语句2
# 执行流程:
# 条件运算符在执行时,会先对条件表达式进行求值判断
# 如果判断结果为True,则执行语句1,并返回执行结果
# 如果判断结果为False,则执行语句2,并返回执行结果
# 练习:
# 现在有a b c三个变量,三个变量中分别保存有三个数值,
# 请通过条件运算符获取三个值中的最大值
# print('你好') if False else print('Hello')
a = 30
b = 50
# print('a的值比较大!') if a > b else print('b的值比较大!')
# 获取a和b之间的较大值
max = a if a > b else b
print(max) #50
2.循环
# if-else语句
# 语法:
# if 条件表达式 :
# 代码块
# else :
# 代码块
# if 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# elif 条件表达式 :
# 代码块
# else :
# 代码块
# while 条件表达式 :
# 代码块
# else :
# 代码块
3.列表
# 创建列表,通过[]来创建列表
my_list = [] # 创建了一个空列表
# 通过索引获取列表中的元素
# 语法:my_list[索引] my_list[0]
# print(my_list[4])
# 获取列表的长度,列表中元素的个数
# len()函数,通过该函数可以获取列表的长度
4.切片
stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精']
# 通过切片来获取指定的元素
# 语法:列表[起始:结束]
# 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素
# 做切片操作时,总会返回一个新的列表,不会影响原来的列表
# 起始和结束位置的索引都可以省略不写
# 如果省略结束位置,则会一直截取到最后
# 如果省略起始位置,则会从第一个元素开始截取
# 如果起始位置和结束位置全部省略,则相当于创建了一个列表的副本
# print(stus[1:]) ['猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']
# print(stus[:3]) ['孙悟空', '猪八戒', '沙和尚']
# print(stus[:]) ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']
# print(stus) ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']
# 语法:列表[起始:结束:步长]
# 步长表示,每次获取元素的间隔,默认值是1
# print(stus[0:5:2]) ['孙悟空', '沙和尚', '蜘蛛精']
# 步长不能是0,但是可以是负数
# print(stus[::0]) ValueError: slice step cannot be zero
# 如果是负数,则会从列表的后部向前边取元素
# print(stus[::-1]) ['白骨精', '蜘蛛精', '唐僧', '沙和尚', '猪八戒', '孙悟空']
5.通用操作
# + 和 *
# +可以将两个列表拼接为一个列表
my_list = [1,2,3] + [4,5,6]
# print(my_list) [1, 2, 3, 4, 5, 6]
# * 可以将列表重复指定的次数
my_list = [1,2,3] * 5
# print(my_list) [1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1, 2, 3]
# 创建一个列表
# stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精','沙和尚','沙和尚']
# in 和 not in
# in用来检查指定元素是否存在于列表中
# 如果存在,返回True,否则返回False
# not in用来检查指定元素是否不在列表中
# 如果不在,返回True,否则返回False
# print('牛魔王' not in stus) True
# print('牛魔王' in stus) False
# min() 获取列表中的最小值
# max() 获取列表中的最大值
# arr = [10,1,2,5,100,77]
# print(min(arr) , max(arr)) 1 100
# s.index() 获取指定元素在列表中的第一次出现时索引
# print(stus.index('沙和尚')) 2
# index()的第二个参数,表示查找的起始位置 , 第三个参数,表示查找的结束位置 依然不包括最后一个
# print(stus.index('沙和尚',3,7)) 6
# 如果要获取列表中没有的元素,会抛出异常
# print(stus.index('牛魔王')) ValueError: '牛魔王' is not in list
# s.count() 统计指定元素在列表中出现的次数
# print(stus.count('沙和尚')) 3
6.序列(sequence)
- 序列是Python中最基本的一种数据结构
- 数据结构指计算机中数据存储的方式
- 序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)
并且序列中的数据会按照添加的顺序来分配索引
- 序列的分类:
可变序列(序列中的元素可以改变):
> 列表(list)
不可变序列(序列中的元素不能改变):
> 字符串(str)
> 元组(tuple)
- 上面的所有操作都是序列的通用操作
7.修改元素
stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精']
# print("修改前:",stus)
# 修改列表中的元素
# 直接通过索引来修改元素
# stus[0] = 'sunwukong' 修改后: ['sunwukong', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']
# stus[2] = '哈哈' 修改后: ['孙悟空', '猪八戒', '哈哈', '唐僧', '蜘蛛精', '白骨精']
# 通过del来删除元素
# del stus[2] # 删除索引为2的元素 修改后: ['孙悟空', '猪八戒', '唐僧', '蜘蛛精', '白骨精']
# 通过切片来修改列表
# 在给切片进行赋值时,只能使用序列
# stus[0:2] = ['牛魔王','红孩儿'] 修改后: ['牛魔王', '红孩儿', '沙和尚', '唐僧', '蜘蛛精', '白骨精']
# 向索引为0的位置插入元素
# stus[0:0] = ['牛魔王'] 修改后: ['牛魔王', '孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精']
# 当设置了步长时,序列中元素的个数必须和切片中元素的个数一致
# stus[::2] = ['牛魔王','红孩儿','二郎神'] 修改后: ['牛魔王', '猪八戒', '红孩儿', '唐僧', '二郎神', '白骨精']
# 通过切片来删除元素
# del stus[0:2] 修改后: ['沙和尚', '唐僧', '蜘蛛精', '白骨精']
# del stus[::2] 修改后: ['猪八戒', '唐僧', '白骨精']
# stus[1:3] = [] 修改后: ['孙悟空', '唐僧', '蜘蛛精', '白骨精']
# 以上操作,只适用于可变序列
# s = 'cat'
# s[1] = 'a' #不可变序列,无法通过索引来修改
# 可以通过 list() 函数将其他的序列转换为list
# s = list(s) ['c', 'a', 't']
8.列表的方法 只适合列表
stus = ['孙悟空','猪八戒','沙和尚','唐僧']
# append()
# 向列表的最后添加一个元素
# stus.append('唐僧') ['孙悟空', '猪八戒', '沙和尚', '唐僧', '唐僧']
# insert()
# 向列表的指定位置插入一个元素
# 参数:
# 1.要插入的位置
# 2.要插入的元素
# stus.insert(2,'唐僧') ['孙悟空', '猪八戒', '唐僧', '沙和尚', '唐僧']
# stus[2:2] = ['唐僧'] ['孙悟空', '猪八戒', '唐僧', '沙和尚', '唐僧']
# extend()
# 使用新的序列来扩展当前序列
# 需要一个序列作为参数,它会将该序列中的元素添加到当前列表中
# stus.extend(['唐僧','白骨精']) ['孙悟空', '猪八戒', '沙和尚', '唐僧', '唐僧', '白骨精']
# stus += ['唐僧','白骨精'] ['孙悟空', '猪八戒', '沙和尚', '唐僧', '唐僧', '白骨精']
# stus[3:3] = ['唐僧','白骨精'] ['孙悟空', '猪八戒', '沙和尚', '唐僧', '白骨精', '唐僧']
# clear()
# 清空序列
# stus.clear() []
# pop()
# 根据索引删除并返回被删除的元素
# result = stus.pop(2) # 删除索引为2的元素 ['孙悟空', '猪八戒', '唐僧']
# stus[2:3] = [] ['孙悟空', '猪八戒', '唐僧']
# result = stus.pop() # 删除最后一个
# print('result =',result) result = 唐僧
# remove()
# 删除指定值得元素,如果相同值得元素有多个,只会删除第一个
# stus.remove('猪八戒') ['孙悟空', '沙和尚', '唐僧']
# reverse()
# 用来反转列表
# stus.reverse() ['唐僧', '沙和尚', '猪八戒', '孙悟空']
# sort()
# 用来对列表中的元素进行排序,默认是升序排列
# 如果需要降序排列,则需要传递一个reverse=True作为参数
# my_list = list('asnbdnbasdabd')
# my_list.sort()
# print('修改后:',my_list) ['a', 'a', 'a', 'b', 'b', 'b', 'd', 'd', 'd', 'n', 'n', 's', 's']
# my_list = [10,1,20,3,4,5,0,-2]
# print('修改前',my_list) [10, 1, 20, 3, 4, 5, 0, -2]
# my_list.sort(reverse=True)
# print('修改后',my_list) [20, 10, 5, 4, 3, 1, 0, -2]