【2022-06-23】Python流程控制之for循环语句

python流程控制之for循环语句

什么是for循环

  • 首先,我们知道循环就是重复的做某件事情,而for循环是python中提供的另一种循环机制

for循环的作用

  • 需要多次重复执行的代码,都可以使用for循环来完成,并且for循环在进行循环取值时,要比while循环更加的简洁

for循环的基本使用

  • for循环语法结构

    for 变量名 in 可迭代对象:     #可迭代对象可以是:列表,字典,字符串,元组,集合
    循环体语句
    
    基本使用:
    定义一个列表:l2 = [11, 22, 33, 44, 55]
    for i in l2:
         print(l2)
    
  • for循环基本使用之列表循环取值

    l3 = ['张三','李四','王五']
    for a in l3:
         print(a)
    	
    打印结果:张三
             李四
             王五
             
    eg:for循环打印列表时,默认取到的值是列表中的每一个数据值         
        
    
  • for循环基本使用之字典循环取值

    user_dic = {'height': 183, 'weight': 55, 'address': 'shanghai'}
    for k in user_dic:
        print(k)
        
     打印结果:height
     	  weight
     	  address
     	  
     eg:for循环字典 默认只能取到字典的key
    
  • for循环基本使用之字符串循环取值

    info = ‘you are my best frined’
    for i in info:
    	print(i)
    
    eg:for循环字符串 默认每次取单个字符
    
    
  • for循环基本使用之元组循环取值

    l4 = ('11', '22', '33')
    for b in l4:
        print(b)
    
    打印结果:11
             22
             33
    eg:for循环元组与列表一致,默认取到的值是元组中的每一个数据值       
    
    

for循环的执行流程

eg:
先定义一个可迭代对象:列表:l2 = [11, 22, 33, 44, 55]
for i in l2:
     print(l2)

for循环依次将获取到的列表元素(即可迭代对象,也可以是字典、字符串、元组、集合),赋值给变量名i,每循环一次,变量名i就被赋值一次,直到列表中的最后一个元素被获取完毕,循环结束。流程图如下:

image

for循环+break语句

  • break语句可用于结束整个for循环,与while循环一样,当有嵌套循环时,break语句只能跳出最近一层的循环

    # eg:打印数字1-10  遇到数字7则结束打印
    for i in range(1,11):
        if i == 7:
            break
        print(i)
        
    """
    break也能够结束所在的那一层for循环
    """
    

for循环+continue语句

  • continue语句用于结束本次循环,之后进行下一次,当有嵌套循环时,continue语句也是只能跳出最近一层的循环,然后继续执行下一次

    # eg:打印数字1-10  遇到数字7跳过,继续执行下一次循环
    for i in range(1, 11):
        if i == 7:
            continue
        print(i)
        
    """
    continue也能够结束所在的那一次for循环 直接开始下一次
    """
    

for循环+else语句

  • 如果for循环没有被break语句强制终止,循环体结束后,则会执行else语句下的子代码,否则不执行

    for i in range(10):
        print(i)
        if i == 5:
            break
    else:
        print('嘿嘿嘿 猜猜我什么时候执行')
    

range函数用法

  • range()函数可用于创建一个整数列表,一般用于for循环中

    注意:在python3中,range()返回的是一个可迭代对象(对象是类型),而不是列表,这样做的目的是为了节省代码所占用的空间

  • 函数语法

    range(start, stop[, step])
    
  • 参数说明:

    • start: 计数从 start 开始,默认是从 0 开始。例如range(5)等价于range(0, 5);
    • stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
    • step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
  • 实例

    for i in range(10):
        print(i)      
        
    # 从 0 开始到 10   (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
    # 如果括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
    
    
    for i in range(3, 11):
        print(i)
        
    # 从 3 开始到 11   (3, 4, 5, 6, 7, 8, 9, 10)
    # 括号内有两个数字 第一个是起始位置(包含) 第二个是终止位置(不含)
    
    
    for i in range(0, 30, 5):  
        print(i)
        
    # 步长为 5         (0, 5, 10, 15, 20, 25)
    # 括号内有三个数字 最后一个是数据的间隔数(等差数列)
    
    
  • python2和python3中使用range的区别

    """
    在python2中有两个
    	range()
    		直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
    	xrange()
    		其实就是python3里面的range方法
    		
    在python3中只有一个
    	range()
    		类似于是一个工厂 什么时候要什么时候创建给你 节省内存
    """
    

课题演练

# 1.计算1-100所有的数之和

total = 0              # 定义一个变量名total,并给它赋值为0
for i in range(101):   # 循环打印100次
    total += i
print(total)


# 2.判断列表中数字2出现的次数

l1 = [11, 2, 3, 2, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 2, 2, 2, 3, 2]
number_of_time = {}
for i in l1:
    if i not in number_of_time:
        number_of_time[i] = 1
    else:
        number_of_time[i] += 1
print(number_of_time)

# 3.编写代码自动生成所有页网址
# https://movie.douban.com/top250

base_url = 'https://movie.douban.com/top250?start=%s&filter='
for i in range(0, 250, 25):
    print(base_url % i)
    

# 4.编写代码打印出下列图形(ps:for循环嵌套)
# 	*****
# 	*****
# 	*****
# 	*****

for i in range(4):
    for a in range(5):
        print("*", end='')
    print()

  ###  大鹏一日同风起,扶摇直上九万里
  ###  假令风歇时下来,犹能簸却沧溟水             

                                                    ——摘自《上李邕》  作者:李白






  ###  路漫漫其修远兮,吾将上下而求索 ###
posted @ 2022-06-23 22:45  dy12138  阅读(173)  评论(0)    收藏  举报