2021-01-27

本文涵盖6个关键主题:99乘法表、while循环与continue/break用法、列表操作(增删改查)、for循环与range函数、以及两个实战项目:水仙花数检测和猜拳游戏。深入理解Python语言并提升列表处理能力。
摘要由CSDN通过智能技术生成

第六讲 列表

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

  1. 求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(‘电脑获胜’)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值