第六章-列表(循环嵌套99乘法表,continue,break用法,列表入门,

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.知识点:列表

列表

  1. 序列,用于保存一组有序的数据,所有的数据在序列中都有一个位置,被称之为索引。并且序列中的数据会按照添加的顺序来分配这个索引。
  2. 数据结构,数据结构就是类似于计算机当中的一种存放数据的方式
    可变序列 列表
    不可变序列 字符串 整数 元组
  3. 列表
    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
    索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值