python课程知识点总结(循环结构~列表)(0基础学习,后持续更新)

五。循环结构

在这里插入图片描述

1.内置函数 range函数

在这里插入图片描述

  • range的三种创建方式

    1. 只有一个参数(小括号中只给了一个数)

      r=range(10)   #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   ,默认从零开始,默认相差一称为步长
      print(r)  #range(0,10)
      print(list(r))#可以用于查看range对象中的整数序列  --list列表2. 给了两个参数(小括号中给了两个数)
      
  1. 给了两个参数(小括号中给了两个数)

    r=range(1,10)  #指定起始值,从一开始,到十结束(不包含十),默认步长为一
    print(r)  #range(1,10)
    
  2. 给了3个参数(小括号中给了3个数)

    r=range(1,10,2)
    print(list(r))    #[1, 3, 5, 7, 9]
    '''判断指定的的整数 在序列中是否存在  in ,not in'''
    print(10 in r)  #False
    print(9 in r)  #True
    

2.while 循环

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2YFIw3YR-1639395454593)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20211127150543175.png)]

  • 计算0到n之间的累加和
n=int(input())
a=0
sum=0#用于存储累加和
while(a<n):
    a=a+1
    sum=sum+a
print(sum)
  • 计算0到n之间的偶数累加
# eg 1
n=int(input())
a=0
sum=0#用于存储累加和
while(a<n):
    a=a+2
    sum=sum+a
print(sum)
# eg 2
n=int(input())
a=0
sum=0#用于存储累加和
while(a<n):
    a = a + 1
    if not bool(a%2):
        sum=sum+a
print(sum)

3.for-in循环

在这里插入图片描述

pythonfor item in 'Python' :  #第一次取出的是p,将p赋值给item,并将其输出
    print(item)
 '''P
y
t
h
o
n
'''
for i in range(1,10,2):
    print(i)
 '''1
3
5
7
9
'''

如果在循环体中不需要使用自定义变量,可将自定义变量写为”_“

for _ in range(5):
    print('人生苦短,我用python')
    '''人生苦短,我用python
       人生苦短,我用python
       人生苦短,我用python
       人生苦短,我用python
       人生苦短,我用python
     '''
print('计算一到一百的偶数和')
sum=0
for i in range(1,101):
     if i%2==0:
         sum=sum+i

print(sum)  #结果2550

输出100到999之间的水仙花数

for i in range(100,1000):
    b=i//100
    s=i//10%10
    g=i%10
    if i==b**3+s**3+g**3:
     print('水仙花数为'+str(i)+'')
'''153 为水仙花数
370 为水仙花数
371 为水仙花数
407 为水仙花数'''        

4.流程控制语句break

在这里插入图片描述

从键盘录入密码,最多录入三次,如果正确,就退出循环(for in)

for item in range(3):
    pwd=input('请输入密码')
    if pwd=='1234':
        printf('密码正确')
        break
    else:
        print('密码不正确')  

从键盘录入密码,最多录入三次,如果正确,就退出循环(while)

a=0
while a<3:
    pwd=input('请输入密码')
    if pwd=='1234':
        print('密码正确')
        break
    else:
        print('密码不正确')

5.流程控制语句continue

在这里插入图片描述

要求输出1到n之间所有5的倍数

n=int(input())
for item in range(1,n+1):
    if item%5==0:
        print(item)
    else:
        continue
n=int(input())
for item in range(1,n+1):
    if item%5!=0:
        continue

    else:
        print(item)

6.else语句

在这里插入图片描述

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


a=0
while a<3 :
    pwd=input('请输入密码')
    if pwd=='8888':
        print('密码正确')
    else:
        print('密码错误')

    a=a+1
else:
   print('对不起,三次输入密码错误')

7.嵌套循环

在这里插入图片描述

for i in range(1,10):
    for j in range(1,i+1):
        print(''+str(i)+'*'+str(j)+'='+str(i*j)+'',end='\t')  
    print()
'''
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	'''
for i in range(6):
    for j in range(0,10-i):
        print(end=" ")
    for j in range(10-i,10):
        print('*',end=' ')   #end=‘ ’不换行输出
    print('')                #换行
'''
         * 
        * * 
       * * * 
      * * * * 
     * * * * * '''

8.二重循环中的break和continue

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2g1JSB6o-1639395454597)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20211128201539498.png)]

for i in range(5):
    for j in range(1,11):
        if j%2==0:
            break
        print(j,end='')
        print( )
'''
    1
    1
    1
    1
    1
'''
for i in range(5):
    for j in range(1,11):
        if j%2==0:
            continue
        print(j,end='')
     print( )    
'''
1  3  5  7  9
1  3  5  7  9
1  3  5  7  9
1  3  5  7  9
1  3  5  7  9
'''        

总结

在这里插入图片描述

六,列表

在这里插入图片描述

1.列表start

a=10 #变量存储一个对象的引用
lst=['hello','56','hcj']#存储多个对象的引用
print(id(lst))
print(type(lst))
print(lst)

2.列表的创建

在这里插入图片描述

  • 列表的第一种创建方式,使用 []
lst=['hello','world','hcj']
print(lst)
  • 列表的第二种创建方式,使用使用内置函数list()
lst2=list(['hello','world','hcj'])
print(lst2)

3.列表的特点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fC3YNw0I-1639395454599)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20211129202213593.png)]

  • 索引映射唯一一个数据

    lst=['hello','world',23,'hcj']
    print(lst[1],lst[-1])    
    # world      hcj
    

​ **注意 ** 从前往后正数,从后往前负数

4.列表的查询操作

在这里插入图片描述

+ 获取列表中指定元素的索引
lst=['hello','world','hcj''hello']
print(lst.index('hello'))#如果列表中有相同的元素只返回列表中相同元素的第一个元素的索引
#   0  
print(lst.index('hcj'))
#   2
print(lst.index('tn'))
  ''' 报错 raceback (most recent call last):
          File "D:\编码\pythonProject\main.py", line 4, in <module>
            print(lst.index('tn'))
        alueError: 'tn' is not in list
 '''
print(lst.index('hello',1,4))
#  3
+ 获取列表中的单个元素
lst=['hello','hcj','python','tn']
print(lst[3])
#  tn
print(lst[-1])
#  tn
+ 获取列表当中的多个元素

在这里插入图片描述

lst=['hello','hcj','python','tn']
print(lst [1:3:1])       #步长为一
#  ['hcj', 'python']

lst=['hello','hcj','python','tn']
print(lst [1:4:2])       #步长为二
#  ['hcj', 'tn']

lst=['hello','hcj','python','tn']
print(lst [:4:3])       #默认从0开始
#  ['hello', 'tn']

lst=['hello','hcj','python','tn']
print(lst [1:4:])       #默认步长为1
#  ['hcj', 'python', 'tn']

lst=['hello','hcj','python','tn']
print(lst [1::2])       #默认到最后结束
#  ['hcj', 'tn']

print('--------step 步长为负数--------')
print('原列表',lst)
print(lst[3::-1])
'''原列表 ['hello', 'hcj', 'python', 'tn']
         ['tn', 'python', 'hcj', 'hello']
'''
+判断指定元素在列表中是否存在及遍历
print('------in和not in--------')
lst=['hello','hcj','python','tn',10,20]
print(10 in lst)      #True
print(10 not in lst)  #False

print('------for in--------')
for item in lst:
    print(item,end='  ')
#  hello  hcj  python  tn  10  20
```!


### 5.列表元素的增删操作

 ####   + 元素增加

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IKKLkBf0-1639395454600)(C:\Users\hcj\AppData\Roaming\Typora\typora-user-images\image-20211129211612737.png)]

```python
lst=['hello','hcj','python','tn',10,20]
print('添加之前',lst)#添加之前['hello', 'hcj', 'python', 'tn', 10, 20]
lst.append(100)
print('添加之后',lst)#添加之后['hello', 'hcj', 'python', 'tn', 10, 20, 100] 


lst2=[1,2]
lst.extend(lst2) 
print('添加之后',lst)#添加之后 ['hello', 'hcj', 'python', 'tn', 10, 20, 1, 2]
'''extend 可将列表化为元素加到后面 
   append将列表直接加入到后面
  eg  lst.append(lst2)
      print('添加之后',lst)
      ['hello', 'hcj', 'python', 'tn', 10, 20, [1, 2]] '''

lst.insert(1,5)
print('添加之后',lst)   #['hello', 5, 'hcj', 'python', 'tn', 10, 20]

lst2=[1,2]
lst[1:]=lst2
print('添加之后',lst)  #['hello', 1, 2]
'''start决定从哪切
   stop决定切到哪'''
+ 列表元素的删除操作

在这里插入图片描述

lst=[10,20,30,5,6,8,30]
lst.remove(30)
print(lst)
#  [10, 20, 5, 6, 8,30]

lst=[10,20,30,5,6,8]
lst.pop(2)
print(lst)
#  [10, 20, 5, 6, 8,30]
lst=[10,20,30,5,6,8,30]
lst.pop()  # 默认删除倒数第一个
print(lst)
#  [10, 20, 30, 5, 6, 8]

lst=[10,20,30,5,6,8,30]
lst2=[1,2,3,4]
lst[2:]=lst2
print(lst)
# [10, 20, 1, 2, 3, 4]

lst.clear()
print(lst)
# []

del lst
print(lst)
'''报错
NameError: name 'lst' is not defined.
'''
+列表元素的修改操作

在这里插入图片描述

lst=[1,2,3,4]
#一次修改一个值
lst[2]=10
print(lst)
#  [1, 2, 10, 4]

lst[1:3]=[30 ,40 ,50]
print(lst)
#  [1, 30, 40, 50, 4]
+ 列表元素的排序操作

在这里插入图片描述

lst=[1,10,20,30,5,6]
print('输出前的列表',lst,id(lst))
lst.sort()
print('排序后的列表',lst,id(lst))
'''输出前的列表 [1, 10, 20, 30, 5, 6] 2433745549632
   排序后的列表 [1, 5, 6, 10, 20, 30] 2433745549632
'''

print('排序后的列表',lst,id(lst))
lst.sort(reverse= True)
#   reverse=True表示降序排序,reverse=False就是升序排序
print(lst)
#   [30, 20, 10, 6, 5, 1]


print('-----使用内置函数sorted()对列表进行排序,将产生一个新的列表对象---------')
lst=[10,2,30,4,50,6]
print('原列表',lst)
#开始排序
new_list=sorted(lst)
print(lst)
print(new_list)
'''原列表 [10, 2, 30, 4, 50, 6]
         [10, 2, 30, 4, 50, 6]
         [2, 4, 6, 10, 30, 50]
'''
#     指定关键字参数,实现列表元素的降序排序
new_list=sorted(lst,reverse=True)
print(new_list)
#     [50, 30, 10, 6, 4, 2]

6. 列表生成式

]
在这里插入图片描述

lst=[ i for i in range(1,10)]
print(lst)
#  [1, 2, 3, 4, 5, 6, 7, 8, 9]

lst=[ i+i for i in range(1,10)] # i+i 表示列表的表达式
print(lst)
#  [2, 4, 6, 8, 10, 12, 14, 16, 18]

总结

在这里插入图片描述
参考视频:
https://www.bilibili.com/video/BV1wD4y1o7AS?spm_id_from=333.999.0.0

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值