1.知识点:循环嵌套
利用循环嵌套写个x行x列的代码
i = 0
外层循环控制图形的一个高度 (重点)
while i < 6:
#print('**************')
内层循环控制图形的一个宽度 (重点)
j = 0
while j < 5:
print('*',end='') “end= 换行”
j += 1
print()
i += 1
结果
D:\pycharm\
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
进程已结束,退出代码为 0
第二种叠加的写法 顺写
i = 0
while i < 5:
j = 0
while j < i + 1:
print("*", end=" ")
j += 1
print(" ")
i += 1
* i = 0 j < 1 ==> j < i + 1
* * i = 1 j < 2 ==> j < i + 1
* * * i = 2 j < 3 ==> j < i + 1
* * * * i = 3 j < 4 ==> j < i + 1
* * * * * i = 4 j < 5 ==> j < i + 1
第二种减少的写法 逆写
i = 0
while i < 5:
j = 0
while j < 5 - i:
print("*", end=" ")
j += 1
print(" ")
i += 1
* * * * * i = 0 j < 5 ==> j < 5 - 1
* * * * i = 1 j < 4 --> j < 5 - i
* * *
* *
*
99乘法表
# 1*1=1
# 1*2=2 2*2=4
# 1*3=3 2*3=6 3*3=9
# ..... 9*9=81
# i = 0
# while i < 9:
# j = 0
# while j < i + 1:
# print('*', end='')
# j += 1
# print()
# i += 1
# 创建一个外层循环控制高度
i = 0
while i < 9:
i += 1
# 创建一个内层循环控制图形的宽度
j = 0
while j < i:
j +=1
print(f'{j} * {i} = {i*j}\t',end=" ")
print(" ")
生成结果:
D:\pycharm\代码库\循环嵌套
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
进程已结束,退出代码为 0
2,知识点:continue
continue的用法
continue跳出当前的语句
//continue 可以用来跳过档次循环
i = 0
while i < 6:
i += 1
if i == 2:
continue
print(i)
else:
print("hello")
D:\pycharm\代码库\循环嵌套
1
3
4
5
6
hello
进程已结束,退出代码为 0
3.知识点:break
break的用法
break可以立刻退出循环语句,包括else语句
i = 0
while i < 6:
i += 1
if i == 2:
break
print(i)
else:
print("hello")
D:\pycharm\代码库\循环嵌套
1
进程已结束,退出代码为 0
4.知识点:列表
列表
- 序列,用于保存一组有序的数据,所有的数据在序列中都有一个位置,被称之为索引。并且序列中的数据会按照添加的顺序来分配这个索引。
- 数据结构,数据结构就是类似于计算机当中的一种存放数据的方式
可变序列 列表
不可变序列 字符串 整数 元组 - 列表
Python中的对象 list
作用,可以保存多个有序的数据
#lst = [] /创建的是一个空的列表
#列表里面存储的数据我们称之为元素
lst =[] /创建的是一个空的列表
列表里面存储的数据我们称之为元素
print(lst,type(lst))
生成结果:
D:\pycharm\代码库
[] <class 'list'>
Process finished with exit code 0
lst =[1,2,3,4,5] /添加多个元素要
用多个逗号隔开
print(lst,type(lst))
生成结果
D:\pycharm\代码库
[1, 2, 3, 4, 5] <class 'list'>
Process finished with exit code 0
列表可以保存任意的对象
1:
lst =['abb',1,2,3,4,5] 添加多个元素要用
多个逗号隔开
print(lst)
生成结果
D:\pycharm\代码库
['abb', 1, 2, 3, 4, 5]
Process finished with exit code 0
2:
lst =['abb',1,True,None,[2,3,4]] 添加多个元素要用多个逗号隔开
print(lst)
生成结果:
D:\pycharm\
['abb', 1, True, None, [2, 3, 4]]
Process finished with exit code 0
tips:列表当中的对象。都会按照插入的顺序。来存储到列表当中。
在列表当中可以通过索引(index)或者下标来获取列表中的元素
索引是从0开始,列表的第一个位置的索引就是0 以此类推(如下)
lst = [10,20,30,40,50]
print(lst[0])
生成的结果:
D:\pycharm\代码库
10
Process finished with exit code 0
如果显示代码:IndexError: list index out of range 当超出当前数量的值就会报错
len()函数可以获取列表的长度
(或者列表元素的个数) (如下)
lst = [10,20,30,40,50]
print(len(lst))
生成的结果:
D:\pycharm\代码库
5
Process finished with exit code 0
当输入-1值时,则会从最后一个值往前算
lst = [10,20,30,40,50]
print(lst[-1])
生成如下:
D:\pycharm
50
Process finished with exit code 0
5.知识点:切片
切片
切片是指从现有列表中,获取一个子列表
语法: 列表[开始:结束:步长]
步长,切片需要用到步长,把100个学生排成队,从其中每隔一个人拉出来一个组成的结果是切片,此时步长为2
1:在print格式就是[ ],在切片获取元素的时候,他会包括起始位置的元素,不会包括结束位置的元素 。
2:做切片操作时,他总会返回一个新的列表,不会影响一个原来的列表
hero = ['1','2','3','4','5','6']
print(hero[0:2]) # ['1', '2']
生成如下
D:\pycharm\代码库
['1', '2']
Process finished with exit code 0
如果省略开始的位置,会从当前的位置一直截取到最后
知识点例题(1)
现在有 a = [1,2,3,4,5,6] 不通过函数的形式实现列表的反转([6,5,4,3,2,1])
并写出推导过程
解题步骤
hero = ['1','2','3','4','5','6']
print(hero[::-1]) # ['6', '5', '4', '3', '2', '1']
D:\pycharm\代码库
['6', '5', '4', '3', '2', '1']
Process finished with exit code 0
提出思考:开始的位置和结束的位置的索引可不可以不写
如果省略结束的位置,会从当前的位置开始一直截取到最后
print(hero[2:0])
如果省略开始位置,会从当前第一个元素截取到结束的元素(不包括结束位置上的元素)
print(hero[ :3])
开始的位置和结束的位置都不写,会从第一个元素写到最后一个元素
print(hero[])
此时显示的是全部的元素1,2,3,4,5,6
逆向思维 如果在[ : :步长]写入一个负数
a= [1,2,3,4,5,6]
print(a[ : :-1] )
D:\pycharm
[ '6', '5', '4', '3', '2', '1']
Process finished with exit code 0
6:知识点:通用操作
通用操作
- +和 *
- +可以将2个列表拼接成一个列表
print(lst)
lst = [1 , 2 ,3] + [ 4 , 5 , 6]
print(lst)
生成如下
D:\pycharm\代码库
[1, 2, 3, 4, 5, 6]
Process finished with exit code 0
(*)可以将列表重复指定的次数
输入乘法的时候
lst = [1 , 2 ,3] *2
print(lst)
生成如下
D:\pycharm\代码库
[1, 2, 3, 1, 2, 3]
Process finished with exit code 0
7.知识点:in 和not in
in 和not in
in用来检查元素是否存在于列表中
not in 用来检查指定元素是否不在于列表中
如果输入 的数值在hero中,结果是False
如果输入 的数值不在hero中,结果是True
hero = ['1' , '2' , '3' , '4']
print('5' in hero)
生成如下
D:\pycharm
False
Process finished with exit code 0
8,知识点:min() max()
min()最小值
max()最大值
lst() = [100.20.30.1.4]
print(min(lst))
print(max(lst))
9,知识点:函数
函数 xxx()
方法yyy.xxx()
index() 获取指定在列表中的位置
hero = ['蜘蛛侠','钢铁侠','小飞机','大炮','蚁人','美队','黑豹']
print(hero.index('钢铁侠'))
生成结果为
D:\pycharm\代码库
1
Process finished with exit code 0
tips:1,如果有多个相同参数时,他只会显示第一个的数值所在位置
2,如果有多个参数相同,且想显示指定位置的参数可以输入前一个数值相同的值,后面跟一个位置的数值
hero = ['蜘蛛侠','钢铁侠','小飞机','大炮','蚁人','美队','黑豹','钢铁侠']
print(hero.index('钢铁侠',5))
生成结果:
D:\pycharm
7
Process finished with exit code 0
如果此时不知道钢铁侠的位置可以找到列表里的长度,然后输出钢铁侠的位置
hero = ['蜘蛛侠', '钢铁侠', '小飞机', '大炮', '蚁人', '美队', '黑豹', '钢铁侠','钢铁侠']
print(hero.index('钢铁侠',2,8 ))
生成结果:
D:\pycharm
7
Process finished with exit code 0
count( )指定元素在列表中出现的次数
hero = ['蜘蛛侠', '钢铁侠', '小飞机', '大炮', '蚁人', '美队', '黑豹', '钢铁侠','钢铁侠']
print(hero.count('钢铁侠' ))
print(hero.count('蝙蝠侠' ))
生成结果:
D:\pycharm
3
0
Process finished with exit code 0
10,知识点:修改列表
修改列表:通过索引是可以更改列表的数值。
第一个修改方法
想把列表里的某一个参数Y
进行替换修改时,可以写成hero[0] = ' x '
如
[0]代表的是位置
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
print('修改前',hero)
hero[0] = ('闪电侠') (要点)
#hero[0] = [闪电侠]
print('修改后',hero)
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
修改后 ['闪电侠', '蜘蛛侠', '绿巨人', '黑豹']
Process finished with exit code 0
第二个修改方法
通过del
来修改
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
print('修改前',hero)
del hero[0] (要点)
#hero[0] = [闪电侠]
print('修改后',hero)
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
修改后 ['蜘蛛侠', '绿巨人', '黑豹']
Process finished with exit code 0
第三个修改方法
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
print('修改前', hero)
hero[0:3] = 'abcd' (要点)
print('修改后', hero)
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
修改后 ['a', 'b', 'c', 'd', '黑豹']
Process finished with exit code 0
以后会讲
hero[0:2] = 132 #TypeError: can only assign an iterable (迭代)
当替换的元素大于原有 元素时,多余的元素会往后顺延
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
print('修改前', hero)
hero[0:2] = ['黑豹','雷神','变形金刚']
print('修改后', hero)
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
修改后 ['黑豹', '雷神', '变形金刚', '绿巨人', '黑豹']
Process finished with exit code 0
修改方法4
当所有的元素没有动时,在第一个元素前面插入一个元素
(索引位置为零的位置插入元素
hero[0:0] = ['黑豹'](向索引为0的位置插入元素)
hero[1:1] = ['黑豹'] (向索引为1的位置插入元素)
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
print('修改前', hero)
hero[0:0] = ['黑豹'] (重点)
print('修改后', hero)
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
修改后 ['黑豹', '钢铁侠', '蜘蛛侠', '绿巨人', '黑豹']
Process finished with exit code 0
在这行代码中,当需要取 ‘钢铁侠’, ‘绿巨人’, ‘绿魔人’,运用步长可以写成以下格式
hero [::2]
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹','绿魔人','美队']
print('修改前', hero)
print('修改后', hero [::2]) **
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '绿魔人', '美队']
修改后 ['钢铁侠', '绿巨人', '绿魔人']
Process finished with exit code 0
当出现以下情况的时候注意
ValueError: attempt to assign sequence of size 1 to extended slice of size 3
当设置步长的时候,序列中的元素要和切片的元素个数要保持一值。
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹','绿魔人','美队']
print('修改前', hero)
hero[::2] = ['雷神','指环王','大别墅']
print('修改后', hero)
生成如下:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '绿魔人', '美队']
修改后 ['雷神', '蜘蛛侠', '指环王', '黑豹', '大别墅', '美队']
Process finished with exit code 0
运用切片来删除(此方法只限于可变序列)
hero = ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹','绿魔人','美队']
print('修改前', hero)
hero[1:3] = [ ]
print('修改后', hero)
生成结果:
D:\pycharm\代码库
修改前 ['钢铁侠', '蜘蛛侠', '绿巨人', '黑豹', '绿魔人', '美队']
修改后 ['钢铁侠', '黑豹', '绿魔人', '美队']
Process finished with exit code 0
如何将字符串里面Python中的y元素改为j
可以使用
s = 'python'
s = list(s)
s[1] = 'j'
print(s)
生成如下:
D:\pycharm\代码库
['p', 'j', 't', 'h', 'o', 'n']
Process finished with exit code 0
总结
循环嵌套
- 外部循环可以控制高度
- 内部循环可以控制宽度
break和continue
- break可以立刻退出循环包括else的语句
- continue可以立刻退出当次循环
列表
-
序列
可变序列 列表
不可变序列 字符串 元祖 -
列表的快速入门
列表怎么创建 []
list -
切片
列表[开始:结束:步长]
起始位置省略
结束位置省略
省略开始和结束的位置
步长,默认为1,可以省略,不能为0,可以为负 -
通用操作
加号,乘号
in ,not in
len()
max() 和min()
index()
count() -
修改列表
切片
del
索引