python学习笔记40-54

1.前言

今天是隔离的第三天,还好学习python比较消磨时间,要不然我真不知道我该怎么度过这漫长的隔离期。

2.学习内容

1.流程控制语句break(40)

 '''从键盘录入密码,最多录入三次,如果正确就结束循环'''
 for item in range(3):
     pwd=input('请输入密码')
     if pwd=='8888':
         print('密码正确')
         break
     else :
         print('密码错误')

需要注意的是,使用for item in range(3): 这行语句实现输出0 1 2三个数进行三次循环

2.流程控制语句continue(41)

 '''要求输出1到50之间所有5的倍数,使用continue语句'''
 for item in range(1,51):
     if item%5==0:
         print(item)
 ​
 print('使用continue')
 for item in range(1,51):
     if item%5!=0:
         continue
     print(item)

continue是结束本次的循环,进入下一次的循环(还是同一个层次的循环体)(只能运用到循环结构中)

3.else与while搭配(42)

 a=0
 while a<3:
     pwd=input('请输入密码')
     if pwd == '8888':
         print('密码正确')
         break
     else:
         print('密码错误')
     '''改变变量'''
     a+=1
 else:
     print('三次机会已用完')

break终止,跳出,结束循环(可以作用在任何地方)。密码正确后执行break,直接程序的while循环就直接结束了==

3.else和for搭配(42)

esle语句的使用与else配合的三种情况

1.if else if表达式不成立时执行esle

2.while else 没有碰到break时执行else

 a=0
 while a<3:
     pwd=input('请输入密码')
     if pwd == '8888':
         print('密码正确')
         break
     else:
         print('密码错误')
     '''改变变量'''
     a+=1
 else:
     print('三次机会已用完')

3.for else 没有碰到break时执行else

 for item in range(3):
     pwd=input('请输入密码')
     if pwd =='8888':
         print('密码正确')
         break
     else:
         print('密码错误')
 else:
     print('对不起,三次密码均错误')

4.循环嵌套

4.1九九乘法表(热身)

 '''输出一个三行四列的矩形'''
 for i in range(1,4):#行数1 2 3
     for j in range(1,5):#列数1 2 3 4
         print('*',end='\t')#不换行输出
     print()

4.2九九乘法表

 for i in range(1,10):#行数
     for j in range(1,i+1):
         print(i,'*',j,'=',i*j,end='\t')   #end=''表示结束后不换行,\t表示不换行后但是空几个格,接着输出下一个
     print()

先写行数,九九乘法表为9行,所以用for i range(1,10)共九个数,且i从1开始,随后发现行数和列数相等,所以

for j in range(1,i+1):表示列数。

注意end=''表示结束后不换行,\t表示不换行后但是空几个格,接着输出下一个。print()表示每行输出完后换行。

5.二重循环中的break与continue

 '''流程控制语句break与continue在二重循环中的使用'''
 for i in range(5):#代表外层循环执行五次
     for j in range(1,11):
         if j%2==0:
             #break
             continue#break中断返回根循环,cuntinue中断返回本层循环。
         print(j,end='\t')
     print()
 #1、break:终止,跳出,结束循环(可以作用在任何地方)。常与switch分支结构合用。
 #2、continue:结束本次的循环,进入下一次的循环(只能运用到循环结构中)

break中断返回根循环,cuntinue中断返回本层循环。

6.为什么需要列表?

如a=10 id:886 type:int value:10 a中存储的是对象的id值

 

 

7.列表对象的创建

8.获取指定元素的索引

 

 lst=['hello','world',98,'hello']
 print(lst.index('hello'))#注意此处为lst.index 是点!不是逗号!如果列表中有相同元素,只返回列表中相同元素的第一个元素的索引'''
 #为啥上一行注释用''''''会报错?????
 #print(lst.index('python'))
 print(lst.index('hello',1,3))#ValueError: 'hello' is not in list     1,3是指1和2,不包括3

print(lst.index('hello'))#注意此处为lst.index 是点!不是逗号!如果列表中有相同元素,只返回列表中相同元素的第一个元素的索引'''

还有为什么上一行注释我用三引号会报错?我不懂!

 

9.获取列表中指定的元素

 lst=['hello','world',98,'hello','world',234]
 #获取索引为2的元素
 print(lst[2])#98
 #获取索引为-3的元素
 print(lst[-3])#hello
 #获取索引为10的元素
 print(lst[10])#IndexError: list index out of range

直接print(lst[索引数])就好啦!

10.获取列表中多个元素 切片操作

 lst=[10,20,30,40,50,60,70,80]
 #start=1,stop=6,step=1
 print(lst[1:6:1])#[20, 30, 40, 50, 60]
 print('原列表',id(lst))
 lst2=lst[1:6:1]
 print('切的片段:',id(lst2))
 print(lst[1:6])#默认步长为1
 print(lst[1:6:])
 #start=1,stop=6,step=2
 print(lst[1:6:2])
 #stop=6,step=2,start采用默认
 print(lst[:6:2])#默认从0开始
 #start=1 step=2 stop=采用默认
 print(lst[1::2])#[20, 40, 60, 80]
 ​
 print('------------step为负数---------')
 print('原列表',lst)
 print(lst[::-1])#[80, 70, 60, 50, 40, 30, 20, 10]
 #start=7,stop省略 step=-1
 print(lst[7::-1])#[80, 70, 60, 50, 40, 30, 20, 10]
 #start=6,stop=0 step=-2
 print(lst[6:0:-2])#注意不包括索引为0的,所以不包括10

print(lst[1:6])#默认步长为1

print(lst[:6:2])#默认start从0开始

print(lst[1::2] )#[20, 40, 60, 80]默认stop到最后一个数

11.列表元素的判断及遍历

 print('p' in 'python')#true
 print('k'not in 'python')#true
 ​
 lst=[10,20,'python','hello']
 print(10 in lst)#T
 print(100 in lst)#F
 print('------------列表元素的遍历就是用for循环将元素全部打印下来')
 for item in lst:
     print(item)

print('------------列表元素的遍历就是用for循环将元素全部打印下来') for item in lst: print(item)

12.列表元素的添加操作

 #向列表末尾添加一个元素
 lst=[10,20,30]
 print('添加元素之前',lst,id(lst))#添加元素之前 [10, 20, 30] 1685772369408
 lst.append(100)#添加元素之后 [10, 20, 30, 100] 1685772369408
 print('添加元素之后',lst,id(lst))#两个lst的id一样,说明还是一个列表
 lst2=['hello','world']
 #将list2作为一个元素添加到列表末尾
 lst.append(lst2)#[10, 20, 30, 100, ['hello', 'world']]
 #向列表的末尾一次性添加多个元素
 lst.extend(lst2)#[10, 20, 30, 100, 'hello', 'world']
 print(lst2)
 ​
 #在任意位置上添加一个元素
 lst.insert(1,90)
 print(lst)
 ​
 lst3=[True,False,'HELLO']
 #在任意位置上添加N多个元素
 lst[1:]=lst3#把lst的元素从1索引开始全部切掉换成lst3的内容
 print(lst)

1.#向列表末尾添加一个元素

使用lst.append(100)可以将100这个元素加到lst列表的最后,成为该列表的最后一个元素。print('添加元素之前',lst,id(lst))#添加元素之前 [10, 20, 30] lst.append(100)#添加元素之后 [10, 20, 30, 100] 但是需要注意print('添加元素之后',lst,id(lst))#两个lst的id一样,说明还是一个列表

2.#将list2作为一个元素添加到列表末尾 lst.append(lst2)#[10, 20, 30, 100, ['hello', 'world']] 注意是将lst2作为一个元素添加到末尾

3.#向列表的末尾一次性添加多个元素 lst.extend(lst2)#[10, 20, 30, 100, 'hello', 'world'] print(lst2) 注意此处用的是extend而不是append,而且是将lst2中的hello', 'world'直接变成lst的最后一个元素,注意没有[ ]

4.#在任意位置上添加一个元素 lst.insert(1,90)#将90这个元素放到索引数为1的位置 print(lst)

5.lst3=[True,False,'HELLO'] #在任意位置上添加N多个元素 lst[1:]=lst3#把lst的元素从1索引开始全部切掉换成lst3的内容 print(lst)

13.列表元素的删除操作

 lst=[10,20,30,40,50,60,30]
 lst.remove(30)
 print(lst)#第一个30被删除
 #lst.remove(100)#ValueError: list.remove(x): x not in list
 ​
 #pop根据索引移除元素
 lst.pop(1)
 print(lst)
 lst.pop()#若不写索引,会删除列表的最后一个元素
 print(lst)
 print('-----切片操作----删除至少一个元素,但是将产生新的列表对象')
 new_list=lst[1:3]#产生新列表
 print('原列表',lst)
 print('切片后的列表',new_list)#??我觉得应该叫切片比较好,是被切下来的部分
 ​
 '''不产生新的列表对象。而是删除原列表的内容'''
 lst[1:3]=[]#这是去除切下来的部分(切片),剩下切片后的列表,再加上后面的空列表,即为lst
 print(lst)
 ​
 '''清除列表中的所有元素'''
 lst.clear()
 print(lst)
 ​
 '''del语句将列表对象删除'''
 del (lst)
 print(lst)#nameError: name 'lst' is not defined. Did you mean: 'list'?

1.用lst.remove(30) 根据元素删除

lst=[10,20,30,40,50,60,30] lst.remove(30) print(lst)#第一个30被删除 #lst.remove(100)#ValueError: list.remove(x): x not in list

2.pop根据索引移除元素 lst.pop(1)#删除索引为1的元素 print(lst) lst.pop()#若不写索引,会删除列表的最后一个元素 print(lst)

3.用切片删除元素

print('-----切片操作----删除至少一个元素,但是将产生新的列表对象') new_list=lst[1:3]#产生新列表 是指new_list为切片,元素为lst的索引为1,2 的元素 print('原列表',lst) print('切片后的列表',new_list)#??我觉得应该叫切片比较好,是被切下来的部分

4.'''不产生新的列表对象。而是删除原列表的内容''' lst[1:3]=[]#这是去除切下来的部分(切片),剩下切片后的列表,再加上后面的空列表,即为lst print(lst)

5.'''清除列表中的所有元素''' lst.clear() print(lst)

6.'''del语句将列表对象删除''' del(lst) print(lst)#nameError: name 'lst' is not defined. Did you mean: 'list'? 为啥会报错?

14.列表元素的修改

 lst=[10,20,30,40]
 #一次修改一个值
 lst[2]=100
 print(lst)                #[10, 20, 100, 40]
 #一次修改多个值
 lst[1:3]=[300,400,500,600]#索引1与2的元素被替换为[300,400,500,600]
 print(lst)                #[10, 300, 400, 500, 600, 40]

3.结束语

今天结束啦!今天没能打成校篮球赛真是我隔离期间迄今为止最遗憾的事,不过正好也能让我更加专注于学习,有利有弊吧!不过我还是更想打比赛嘿嘿嘿。对于学习计划方面,我决定以后白天学习新课程,晚上做总结(也就是写这个笔记),不然像昨天一样晚上十点才开始写笔记,时间就会很赶,而今天吃完晚饭就开始写了这个笔记,时间很充裕,效率也更高了一些,时间刚刚好嘻嘻!晚安!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值