1.循环嵌套
- Python 语言允许在一个循环体里面嵌入另一个循环。
- 外层循环控制表或图的高度
- 内层循环控制表或图的宽度
# 语法:
while 表达式:
while 表达式:
代码块
代码块
while 表达式:
if 表达式:
代码块
代码块
可以先看(入门篇 三)理解while循环
- break和continue
break 可以用来立即退出循环语句,包括跳过else语句。
continue 用来跳过本次循环(含有continue的本次不循环进行跳过)
i = 0
while i < 3:
i += 1
if i == 2:
break
else:
print("循环结束")
print(i)
# 输出结果为 1,运行到i = 2 时跳出循环,包括else语句
i = 0
while i < 3:
i += 1
if i == 2:
continue
print(i)
# 输出结果1,3,运行到i = 2 时跳过本次循环,然后继续循环i = 3直到循环结束2.序列
- 序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引。
- 序列的分类
- 可变序列(序列中的元素可以改变):列表(list)、字典(dict)、集合(set)
- 不可变序列(序列中的元素不能改变):例如 字符串(str)元组(tuple)
3.列表
3.1列表基础
列表是一个对象 。
- 列表的作用
- 列表中可以保存多个有序的数据。
- 列表是用来存储对象的对象。
- 列表的创建
通过[ ]来创建,或者运用list创建。
li1 = []
li2 = ['abc',True,3.14]
li3 = list("hello")
print(li1)
print(li2)
print(li3)
输出为:[] (可以是空列表)
['abc', True, 3.14] (创建可以是任何类型)
['h', 'e', 'l', 'l', 'o'] (list返回的是索引值)3.2索引
- 索引
通过索引取出列表中的元素。
# name = “hello oldamy”
# 如何取出e值?如何取出最后一个值?
'''应用索引取出;name[ ]则为索引,用来取出列表中字母元素,正方向从零开始,空格也占一个元素位置;-1表示从反方向(列表的最后)开始取元素'''
name = "hello oldamy"
print(name[1]) #(取出为e)
print(name[11]) #(取出为y,最后一个值)
print(name[len(name)-1]) #(索引里面用总长度减1与name[-1]相等所以输出为字母y)3.3切片
- 切片
- 切片是指从现有列表中获得一个子列表,是对序列进行截取,选取序列中的某一段。
- 通过切片来获取指定的元素。
- 语法: 列表[起始 : 结束 : 步长]
- 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素(元素左闭右开)
- 起始位置和结束位置的索引可以不写
- 如果省略结束位置, 则会从当前的开始位置一直截取到最后。
- 如果省略开始位置, 则会从第一个元素截取到结束的元素,但是不包括结束的元素。
- 如果开始位置和结束位置都省略, 则则会从第一个元素开始截取到最后一个元素。
- 步长表示每次获取元素的间隔,默认是1(可以省略不写)
- 步长不能是0,但可以是是负数
name = hello oldamy
'''
切片的语法是: list[start:end:step]
以冒号分割索引,start代表起点索引,end代表结束点索引,step代表步长。省略start表示以0开始,省略end表示到列表的结尾。
注意,区间是左闭右开的!
'''
# name[ : ] 切片中间用:连接,左闭右开,不包含右边的数,需要加一
name[6:11] # 输出为‘oldam' (左闭右开,不包含右边的字母,需要加一)
name[6:12] # 输出为‘oldamy' (左闭右开,需要加一,才能输出‘oldamy')
name[6: ] # 输出为‘oldamy' (左边无数字则默认走到最后一位)
name[ : ] # 输出为' hello oldamy' (只有:则切出整个字符串)
# name[ : :step ]
name[ : :2 ] # 输出为'hloodm' (step为2则隔一个输出一个字母,step一般默认为1)
name[ : :-1 ] # 输出为'ymadlo olleh' (step为-1,则为倒置,逆序输出,step不能是小数)3.4通用操作
- 通用操作
‘+’ 和 ’ * ’- ‘+’ 可以将两个列表拼接成一个列表。
- ‘*’ 可以将列表重复指定的次数 (注意2个列表不能够做乘法,要和整数做乘法运算)
- in 和 not in
- in用来检查指定元素是否在列表当中,返回值是布尔类型。
- not in 用来检查指定元素是否不在列表当中,返回值是布尔类型。
- len() 获取列表中元素的个数。
- max() 获取列表中最大值。
- min() 获取列表中最小值。
- list.index(x[, start[, end]])
- 第一个参数 获取指定元素在列表中的位置(指定元素的索引值)。
- 第二个参数 表示查找的起始位置。
- 第三个参数 表示查找的结束位置。
- list.count(x) 统计指定元素在列表中出现的个数(或次数)
# '+' 将两个列表拼接成一个列表。
li1 = [1,2]
li2 = [3,4]
print(li1 + li2) # 输出为[1,2,3,4]
# '*'将列表重复指定的次数
print(li1 * 2) # 输出为[1,2,1,2]
# in用来检查指定元素是否在列表当中
print(2 in li1) # 元素2在列表中,输出为Ture
# not in 用来检查指定元素是否不在列表当中
print(5 not in li1) # 元素5不在列表中,输出为Ture
'''
len() 获取列表中元素的个数。
max() 获取列表中最大值。
min() 获取列表中最小值。
'''
print(len(li1)) # 列表中有2个元素,输出为2
print(max(li1) # 最大为2,输出为2
print(min(li1)) # 最小为1,输出为1
s4 = "hello"
print(s4.index('l')) # 输出为2(为输入字母输出为最小索引值,如两个l输出的是值最小的那个的索引值。)
# list.count(x) 统计指定元素在列表中出现的个数(或次数)
li3 = [1,2,2,2,3]
print(li3.count(2)) # 列表中2出现了三次,所有输出为3.3.5修改列表
- 通过给索引赋值来修改列表中的元素,如果索引值超过列表个数,给这个列表中不存在的索引值赋值就会将这个新赋的值添加到列表的最后。
- 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
- 当设置了步长时,序列中元素的个数必须和切片中元素的个数保持一致。
# 通过给索引赋值来修改列表中的元素
li1 = [1,2,3]
li1[0] = 2
print(li1) # 输出为[2,2,3],将列表中第一个元素取出,再重新赋值,则会修改原来列表中的这个元素,变成新赋的值。
# 如果索引值超过列表个数,给这个列表中不存在的索引值赋值就会将这个新赋的值添加到列表的最后。
li1[5] = 5
print(li1) # 输出为[1,2,3,5]
# 通过切片来修改(起始就是给切片的内容重新赋值,但是赋值的内容必须是一个序列)
li1[0:2] = [3,3] # 注意切片左闭右开,取不到第三个元素。
print(li1) # 输出为[3,3,3]4.总结
先理解和掌握列表的基础内容!!!
版权声明:本文为FutureT原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
