第六讲 列表
99乘法
i = 0
while i < 9: # i控制行数
i += 1
j = 0
while j < i: # j控制每一行有几列*
j += 1
print(f’{j}{i}={ji}’, end=’\t’)
print()
…
while循环语句完整性的结构
continue的特性:当执行到continue的时候,我们的循环会跳过档次循环,直接开始下一次的循环
i = 0
while i < 5:
if i == 3:
continue
print(i)
i += 1
else:
print(‘while循环正常结束’)
break 会直接结束循环 终止循环, 不会执行else后面的语句
i = 0
while i < 5:
if i == 3:
break
print(i)
i += 1
else:
print(‘while循环正常结束’)
a = ‘abcdefg’
a[0] = ‘b’
…
列表
增删改查
列表使用[]来表示的 用list来表示
list1 = [1, ‘python’, True, None]
print(list1, type(list1))
列表就是用来存储对象的对象
取数据 通过索引来取数据
print(list1[0])
print(list1[-1])
print(list1[-2])
print(list1[-3])
print(len(list1))
…
修改列表
list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’]
修改
list1[-1] = ‘女儿国国王’
切片的方式来进行修改
用切片进行删除 就是令切片的结果等于一个空字符串
用切片的方式替换列表内容的时候,这个你需要替换的数据必须也得是一个序列
print(list1[3:5])
list1[3:4] = ‘234’
list1[3:5] = ‘唐僧’
list1[0:0] = [‘唐僧’]
当我们设置了步长的时候,那么你取到多少个数据,你替换的数据就要有多少个
list1[::2] = [‘唐僧’, ‘唐僧’]
print(list1.index(‘铁扇公主’))
list1[3] = ‘牛魔王’
删除 关键字
del list1[-1]
print(list1)
…
切片
创建空列表
list1 = []
print(list1)
切片
语法: str[] list[起始索引:结束索引:步长]
list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’]
print(list1[3:5])
print(list1[-2:-4:-1])
通用操作
a = [1, 2, 3] + [4, 5, 6]
a = [1, 2, 3] * 3# print(a)
a = ‘abcd’
print(‘a’ in a)
b = [1, 2, 3, 1]
print(max(b))
print(1 in b) # 返回的值是一个布尔值
print(b.index(1)) # index返回的结果就是当前这个数据的索引
print(b.find(1)) # 列表是没有find的这个方法
print(b.count(1))
列表中的修改方法.
方法 方法是和面向对象相关的 使用方式是 : 对象.方法名(‘参数’)
#添加方法
list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’, ‘铁扇公主’, ‘铁扇公主’, ‘铁扇公主’]
list.append() 向类表中最后的位置插入一个元素
list1.append(‘女儿国国王’)
list.insert() 向列表中的指定位置插入一个元素,第一个参数是要插入的位置,第二个参数是要插入的内容
list1.insert(4, ‘唐僧’)
list.extend() 使用新的序列来扩展当前序列
list1.extend([‘唐僧’, ‘沙悟净’])
删除方法
list.pop() 根据索引删除并返回元素, 如果不传递索引,默认删除最后一个
a = list1.pop()
print(a)
list.remove() 删除指定的元素
list1.remove(‘铁扇公主’)
反转列表
reverse()
list1.reverse()
排序
list.sort() 默认是正序排序 他有一个参数reverse
list1.sort(reverse=True)
print(list1)
…
for循环和range函数.py
list1 = [‘孙悟空’, ‘猪八戒’, ‘白龙马’, ‘白骨精’, ‘蜘蛛精’]
print(list1[0])
print(list1[1])
print(list1[2])
print(list1[3]) print(list1[4])
i = 0
while i < 5:
print(list1[i])
i += 1
语法
for 变量 in 序列(遍历的规则):
代码块
需求: 拿到一个列表数据,要对列表数据进行数据处理之后,在用
list1 = [1, 2, 3, 4, 5]
list2 = []
for i in list1: # 遍历list1列表中元素
i += 1
list1.remove(i)
# list2.append(i)
print(list1)
for循环循环的次, 如果你在循环过程中对列表的长度做了修改,那么你的循环次数就不在受控制了数取决于列表的长度
range()函数
语法 range(开始位置, 结束位置, 步长) 开始位置可以省略,省略即开始位置的数为0, 步长省略即为1 左闭右开区间
range(9) # 相当于 range(0, 9, 1)
print(range(9))
print(list(range(9)))
for i in range(9):
print(i)
…
作业讲解.py
- 求1000以内所有的水仙花数 大于100
循环100-1000内的所有的数
把拿到的数 个位、十位、百位拆分,
三次幂相加等于他本身
i = 100
while i < 1000:
a = i // 100
b = (i - a * 100) // 10
c = i % 10
if a ** 3 + b ** 3 + c ** 3 == i:
print(i)
i += 1
2. 获取用户输入的任意数,判断其是否是质数?
num = int(input(‘请输入整数:’))
i = 2
while i < num:
if num % i == 0:
print(‘不是质数’)
break
i += 1
else:
print(‘是质数’)
3. 猜拳游戏:
• 出拳 玩家:手动输入 电脑:随机输入
• 判断输赢: 玩家获胜 电脑获胜 平局
0 石头 1剪刀 2 布
import random
while True:
player = int(input(‘请输入0, 1, 2三个数中间的一个:’))
computer = random.randint(0, 2)
print(computer)
if (player == 0 and computer == 1) or (player == 1 and computer == 2) or (player == 2 and computer == 0):
print(‘玩家获胜’)
elif player == computer:
print(‘平局,再来’)
else:
print(‘电脑获胜’)