序列
- 是Python中的一种基本的数据结构
- 数据结构指计算机中数据的存储方式
- 序列的分类
可变序列(序列中的元素可以改变),如列表
不可变序列,如字符串
循环嵌套
- while 循环
while 条件表达式:
循环体
当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。
- break 语句(终止当前的循环)
while 条件表达式1:
执行代码
if 条件表达式2:
break
其中,条件表达式2用于判断何时调用 break 语句跳出循环。
- continue 语句
continue 语句的作用没有 break 语句强大,它只能中止本此循环而提前进入下一次循环中
while 条件表达式1:
执行代码
if 条件表达式2:
continue
其中,条件表达式2用于判断何时调用 continue 语句跳出循环。
一个非常重要的例子,真的非常重要
- 关于打印一个九九乘法表
# while 循环打印九九乘法表
i = 1
while i <= 9:
j = 1
while j < i + 1:
print(f'{j}*{i}={j*i}','\t',end='')
j += 1
print()
i += 1
# for 循环打印九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print(f'{j}*{i}={i*j}','\t',end='')
print()
- 内在逻辑
首先,我们需要一个能够打印出一个九九乘法表的模型出来,方便我们明白原理
如上图代码和运行结果所示:第一个 while 循环控制整个图形的高度,而 第二个 while循环(嵌套)控制的是整个图形的宽度,下面这一段代码一个一个尝试,便能明白其中原理
# 打印一个长方形
i = 0
while i < 5:
j =0
while j < 5:
print('*',end=" ")
j += 1
print()
i += 1
# 打印一个等腰直角三角形
i = 0
while i < 5:
j = 0
while j < i+1:
print('*',end=' ')
j += 1
print()
i += 1
# 打印倒立三角形
i = 0
while i < 5:
j = 0
while j < 5-i:
print("*",end=" ")
j += 1
print()
i += 1
这其中主要明白的原理是:1-外层的循环控制高度;内层的循环控制宽度 2-两个嵌套的运行顺序和运行过程
列表
列表属于可变序列,用 [] 表示
a = []
print(type(a))
# <class 'list'>
-
索引
序列中的每个元素都有一个编号,也称为索引(Indexing),这个索引是从 0 开始递增的,即下标为 0 表示第一个元素,下标为 1 表示第二个元素,依次类推Python比较神奇,它的索引可以是负数。这个索引从右向左计数,也就是从最后的一个元素开始计数,即最后一个元素的索引值是 -1 ,倒数第二个元素的索引值为 -2 ,以此类推。
-
切片
切片操作是访问序列元素中的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:
sname[start:end:step]
需要注意的是切片操作取元素是 左闭右开
a = ['肥龙','日古','建建','亮亮','狮子狗','浩浩','凯凯']
# 不给 start ,默认从0开始取(不给 step ,默认为 1 )
b = a[:5]
print(b)
# ['肥龙', '日古', '建建', '亮亮', '狮子狗']
# 不给 end ,默认取到最后一个元素
c = a[0:]
print(c)
# ['肥龙', '日古', '建建', '亮亮', '狮子狗', '浩浩', '凯凯']
# step 为步长,隔几个取元素
d = a[::2]
print(d)
# ['肥龙', '建建', '狮子狗', '凯凯']
# 步长为 -1 ,倒着取元素
e = a[::-1]
print(e)
# ['凯凯', '浩浩', '狮子狗', '亮亮', '建建', '日古', '肥龙']