首页 > 其他分享 >流程控制之循环(二)

流程控制之循环(二)

时间:2022-09-28 19:22:39浏览次数:70  
标签:控制 num 流程 while break range 循环 print

流程控制之循环(二)

while循环之补充说明

  1. 死循环

死循环的意思是一旦程序运行就不会自动停止

image

像上图所示的这种就是一个死循环,但还不是一个真正的死循环

真正的死循环是一旦程序运行,电脑的CPU利用率会急速上升,直至电脑采取紧急措施

程序执行前电脑的CPU利用率

image

程序执行后的CPU利用率

image

所以我们在以后编写程序的时候千万不要写出来一个死循环(自己电脑CPU烧了是小事,公司服务器出问题了那就BBQ了)

ps:我们在使用电脑时尽量不要让电脑的CPU长时间不间断运行

  1. 嵌套以及全局标志位

小知识:

  • 一个break只能结束它所在的那一个循环体代码
  • 想要一次性结束所有的循环体代码有几个while的嵌套就应该写几个break
  • 如果不想写break,可以使用全局标志位

全局标志位:

看到这个名字就知道它很重要,概括的说就是程序中修改一次之后程序中所有有它的地方都会跟着修改从而使程序作出相应的改变

eg:
    is_flag = True
   while is_flag:
        username = input('username>>>:')
        password = input('password>>>:')
        if username == 'jason' and password == '123':
            while is_flag:
                cmd = input('请输入您的指令>>>:')
                if cmd == 'q':
                    break
                print('正在执行您的指令:%s' % cmd)
        break
        else:
            print('用户名或密码错误')

比如,在这个程序中我们写了两个while的嵌套,当我们想要一次性结束时,就需要写两个break,且break的位置需要与循环体代码相对应,如果我们不想写break,想用全局变量只需要一点小小的改动就行

is_flag = True
   while is_flag:
        username = input('username>>>:')
        password = input('password>>>:')
        if username == 'jason' and password == '123':
            while is_flag:
                cmd = input('请输入您的指令>>>:')
                if cmd == 'q':
                    is_flag = False
                print('正在执行您的指令:%s' % cmd)
        else:
            print('用户名或密码错误')

像这样,break去掉以后加一个is_flag = False,那么程序就会整体直接结束,而我们所加的就是一个全局变量

流程控制之for循环

for循环做到的事情while都能做到,while能做到的事情for不一定能做到,只是for循环在某些情况下的应用会比while更方便更简单

for循环主要应用于获取一些内部可以存储数据的数据的内部数据值

for循环语法结构:

for 变量名 in 待遍历的数据:
    for循环体代码

eg:有一个列表[1, 2, 3, 4, 5, 6],我们需要循环打印出列表里的每一个数据值

num_list = [1, 2, 3, 4, 5, 6]
# for循环写法
for i in num_list:
        print(i)
# while循环写法
count = 0
while count < 6:
    print(num_list[count])
    count += 1

在这个例子中我们可以看到第一个for循环的代码远远少于while循环,第二个当列表内的数据值的数量有变动时,for循环不需要动任何东西但是while循环需要修改条件不太方便

for循环的特点:

  1. 擅长遍历取值
  2. 不需要结束条件,遍历完以后自动结束

for循环主要遍历的数据类型是可以存储数据值的数据类型,字符串、列表、字典、元组、集合都是

字符串与字典稍微特殊

字符串遍历的是单个单个的字符

image

字典则是只有键参与遍历

image

for循环结构中变量名的命名

首先第一个尽量做到见名知意,第二个如果遍历出来的数据值没有具体的含义,那么就随便,但是推荐使用常用的,如:i j k v

小知识

  1. break与continue在for循环中的用法与while循环一致

  2. for循环结构也可以加else

    for 变量名 in 待遍历的数据:
        for循环体代码  # 遇到break整个程序即停止,下面的else不会运行
    else:
        for循环体代码没有被break强制结束且运行完毕之后才运行的代码
    

    range方法

    range可以简单的理解为是一个可以帮我们产生多个数字的数据

    eg:

    for i in range(101):  # 起始位置为0 终止位置为100 
        print(i)  # [0,.......100]
    

    当然,range的写法不止这一种,还可以这样写

    for i in range(10, 20):  # 第一个为起始位置 第二个终止位置
        print(i)
    # 或者这样写    
    for i in range(1, 20, 2):  # 第三个数为等差值 默认不写为1
        print(i)
    

    range小知识

    range()在python2余python3中虽然长得一样但是产生的效果不一样,在python2中会产生一个内部存放多个数据值的列表,在python3中则只会产生一个像第二种range写法那样的数据,只要在范围内,我们需要哪个数据它就会产生哪个数据

image

在python2中range还有一种写法xrange(),这其实就是python3中的range

作业

  1. 计算1-100所有的数之和
num = 0
for i in range(1, 101):
    num += i
print(num)

  1. 判断列表中数字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]
num = 0
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]
for i in l1:
    while i == 2:
        num += 1
        break
print(num)
  1. 编写代码自动生成所有页网址(注意总共多少页)
    https://movie.douban.com/top250
URL = ('https://movie.douban.com/top%s')
for i in range(1, 251):
    print(URL % i)
  1. 编写代码打印出下列图形(ps:for循环嵌套)
***** 
*****  
*****  
*****
for i in range(4):
    for j in range(5):
        print('*', end='')
    print()

标签:控制,num,流程,while,break,range,循环,print
From: https://www.cnblogs.com/zyg111/p/16739292.html

相关文章

  • 流程控制之for循环
    目录一.流程控制之for循环1.for循环语法结构2.for循环特点3.for循环主要遍历的数据类型4.for循环语法结构中的变量名如何命名5.for循环中break/continue/else的使用二.ran......
  • python流程控制下-for、while循环补充
    循环结构之for循环实现循环结构还可以用关键字for。for关键字我们来看这一段代码:emotions=['smile','laugh','cry','angry']foremoinemotions:print('我......
  • while.for循环和基本数据类型内置方法
    while循环补充说明流程控制之for循环基本数据类型内置方法内容详细1.死循环真正的死循环是一旦执行,Cpu的功耗会急速上升知道系统采取紧急措施所以尽......
  • for循环与range()方法
    1、昨日内容回顾垃圾回收机制引用计数、标记清除、分代回收流程控制理论顺序流程、分支结构、循环结构代码的缩进及其含义分支结构单if...else语句、if...elif.......
  • 循环与range基本知识
    今日内容详细while循环补充说明1.死循环真正的死循环是一旦执行CPU功耗会急速上升直到系统采取紧急措施尽量不要让CPU长时间不间断运算2.嵌套及全局标志位强调:一......
  • golang 的双向循环链表
                如下为go实现的双向循环列表。packagemainimport("fmt")typeRingstruct{prev,......
  • 8、python正式篇 for循环和range的使用
    目录一、while循环补充说明1、死循环2、嵌套及全局标志位二、for...循环1、for...循环特点2、for...循环语法结构三、range方法1、什么是range2、不同版本python,range区别3......
  • for循环语句
    for语句基本使用1.for循环可以遍历任何可迭代对象,如一个列表或者一个字符串。比如:fruits=["apple","banana","orange","pear"]forfruitinfruits:pri......
  • for循环
    今日内容回顾昨日作业讲解while循环知识补充流程控制之for循环今日内容回顾详情作业讲解1.根据用户输入内容打印其权限'''jason-->超级管理员to......
  • 通过Thread Pool Executor类解析线程池执行任务的核心流程
    摘要:ThreadPoolExecutor是Java线程池中最核心的类之一,它能够保证线程池按照正常的业务逻辑执行任务,并通过原子方式更新线程池每个阶段的状态。本文分享自华为云社区《​​【......