欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

初学Python课程笔记-第六课

程序员文章站 2022-07-14 11:19:56
...

1. 循环嵌套

Python 语⾔允许在⼀个循环体⾥⾯嵌⼊另⼀个循环。

1.1 循环嵌套语法

while 表达式:
	while 表达式:
		代码块
	代码块

流程解析:
若 while 语句控制的代码块中还有 while 语句,则按照 while 语句的流程执行其所控制的代码块,结束后继续执行上级 while 语句代码块剩下的语句。

1.2 示例代码

  • 在写循环嵌套代码之前,先提及一个print()函数的知识点。
    print() 语句默认是换行的,比如执行两个print()得出的结果如下图:

初学Python课程笔记-第六课

将print() 的参数end写为空,则不会换行,继续打印其他内容:
初学Python课程笔记-第六课

print() 语句如果不加任何参数,则相当于输出一个换行符。
初学Python课程笔记-第六课

  • 接下来给出循环嵌套的具体代码。
    代码任务:打印出特定高度与宽度的 “*” 图形。
# 打印特定的图形
i = 0
# 外部循环控制图形高度
while i < 5:
    j = 0
    # 内部循环控制图形宽度
    while j < 5:
        # 参数end=''表示不换行
        print('*', end='')
        j += 1
    print()
    i += 1

运行结果:
初学Python课程笔记-第六课

为方便分析如何控制图形,给出图形与循环变量 i、j 之间的关系:

>  *      i = 0  j < 1          *****  i = 0  j < 5
>  **     i = 1  j < 2          ****   i = 1  j < 4
>  ***    i = 2  j < 3          ***    i = 2  j < 3
>  ****   i = 3  j < 4          **     i = 3  j < 2
>  *****  i = 4  J < 5          *      i = 4  j < 1

由上图,图形的高度与外层循环变量 i 有关,图形的宽度与内层循环变量 j 有关。
修改上述示例代码内层循环的条件表达式为:

while j < i + 1:

得到如下结果:

初学Python课程笔记-第六课
如果想得到倒三角图形,则修改内层循环条件表达式为:

while j < 5 - i:

得到如下结果:

初学Python课程笔记-第六课

1.3 循环嵌套小练习

练习题目:编写代码打印九九乘法表。
代码如下:

i = 0
# 外部循环控制乘法表高度
while i < 9:
    # 公式里面是从1开始,所以先更新循环变量
    i += 1
    j = 0
    # 内部循环控制乘法表宽度
    while j < i:
    	# 同样先更新循环变量
        j += 1
        # 参数end=''表示不换行,加入\t是为了让格式好看
        print(f'{j}*{i}={i*j}\t', end='')
    print()

运行结果:

初学Python课程笔记-第六课

2. continue和break的使用

2.1 语句解释

  • continue
    跳出本次循环,即 continue 后的语句都不执行,直接进行 while 条件表达式的判断;

  • break
    直接跳出循环,包括else(如果有)。

2.2 示例代码

i = 0
while i < 6:
    i += 1
    if i == 2:
        continue
    print(i)
else:
    print('hello')

运行结果:

初学Python课程笔记-第六课

将上述代码的 continue 改为 break,结果如下:

初学Python课程笔记-第六课

3. 序列

3.1 基本概念

  • 序列是Python中最基本的⼀种数据结构。序列⽤于保存⼀组有序的数据,所
    有的数据在序列当中都有⼀个唯⼀的位置(索引),并且序列中的数据会按照
    添加的顺序来分配索引。
  • 数据结构指计算机中数据存储的⽅式。

3.1 序列的分类

  • 可变序列(序列中的元素可以改变):例如 列表(list)字典(dict)
  • 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)

初学Python课程笔记-第六课

4. 列表

  • 列表是Python中的⼀个对象。
  • 列表的作⽤:
    列表中可以保存多个有序的数据;
    列表是⽤来存储对象的对象。

4.1 列表的使用

  • 列表可以通过 [] 创建
list = [] # 创建一个空列表
print(list, type(list))

运行结果:

初学Python课程笔记-第六课

  • 列表中可以保存任意的对象,也包括子列表。
a = 5
list = [1, 'python', None, True, [1, 2, 3], a]
print(list)

运行结果:

初学Python课程笔记-第六课

  • 列表中的元素是有序的,其索引从0开始,列表中第一个位置为0,第二个为1,以此类推。可以通过索引获取列表中元素,但不能超过其长度。
list = [1, 2, 3, 4, 5]
print(list[2])
print(list[6])

运行结果:

初学Python课程笔记-第六课

  • 可以用 len() 获取列表的长度
list = [1, 2, 3, 4, 5]
print(len(list))

运行结果:

初学Python课程笔记-第六课

  • 列表的索引值可以是负数,如果索引是负数,则从后向前取值。索引值为负数,也需要注意不能超出长度上限。
list = [10, 20, 30, 40, 50]
print(list[-1]) # -2:40 -3:30 -4:20 -5:10

运行结果:

初学Python课程笔记-第六课

4.2 切片的使用

切⽚是指从现有列表中获得⼀个⼦列表。

  • 可以通过切⽚来获取指定的元素;
  • 语法: 列表[起始 : 结束 : 步⻓];

从列表中获取 ‘乔峰’ 到 ‘郭靖’:

person = ['乔峰', '郭靖', '令狐冲', '杨过', '张无忌', '韦小宝']
print(person[0:2]) # 注意:索引2指向'令狐冲'

运行结果:

初学Python课程笔记-第六课

从上述结果看出:

  • 通过切⽚获取元素时,会包括起始位置的元素,不会包括结束位置的元素;

如果在切片时,省略起始或者结束位置的索引。

person = ['乔峰', '郭靖', '令狐冲', '杨过', '张无忌', '韦小宝']
print(person[:]) # 开始和结束位置都省略
print(person[:3]) # 省略开始位置
print(person[3:]) # 省略结束位置

运行结果:

初学Python课程笔记-第六课

从上述结果看出:

  • 如果省略结束位置, 则会从当前的开始位置⼀直截取到最后;
  • 如果省略开始位置, 则会从第⼀个元素截取到结束的元素,但是不包括结
    束的元素;
  • 如果开始位置和结束位置都省略, 则则会从第⼀个元素开始截取到最后⼀
    个元素;

关于切片时的步长:

person = ['乔峰', '郭靖', '令狐冲', '杨过', '张无忌', '韦小宝']
print(person[0:5:1]) # 步长为1,可以省略不写
print(person[0:5:2]) # 步长为2,表示隔一个值获取元素
print(person[::-1]) # 步长为-1,表示倒叙取值
print(person[0:5:0]) # 步长不能为0

运行结果:

初学Python课程笔记-第六课

从上述结果看出:

  • 步⻓表示每次获取元素的间隔,默认是1(可以省略不写);
  • 获取元素的间隔等于步长减一;
  • 步⻓不能是0,但可以是是负数。