精华内容
下载资源
问答
  • 内容来源:key,小邬Python中for循环和while循环效率比较在总结这个问题之前,有两个前提希望大家先明白:1.在实际编程中,像GitHub学习资料中所写对于知道具体循环次数循环推荐使用for,不知道具体循环次数...

    52c6bc0bd9a22d5282a0507cc5dc919b.png

    009131e83d72098075553de8a7e1beec.png

    内容来源:key,小邬

    Python中for循环和while循环效率比较

    在总结这个问题之前,有两个前提希望大家先明白:

    1.在实际编程中,像GitHub的学习资料中所写的对于知道具体循环次数的循环推荐使用for不知道具体循环次数的循环推荐使用while。为什么?

    首先,程序是给人看的,可读性第一,效率其次。同样的程序使用python编写的效率本身就比大多数语言低,但是为什么python如今这么火,汇编却还有很多人不知道?

    2.这里的性能测试仅仅针对Python语言,以及非常小样本的测试结果得出,不同语言不同机器对于结果的影响可能会大于这两种循环的性能本身,所以请读者不要太过纠结两种循环的效率问题。

    @Python天下第一 同学提出了比较for循环和whlie循环效率的问题,出于好奇@Key 同学进行了简单的测试。发现Python的for循环的执行效率确实会比while循环稍微低一点(两种循环同时执行自增操作1千万次,for的执行时间比while慢0.1秒左右)

    @Python天下第一 、@甜瓜蜀黍 @雨山 的运行结果也是while循环的执行效率较高。但是同一段程序 @矢量七 的测试结果却是for效率更高。这更印证了前面说的大家不要过分纠结两种循环的性能问题,因为可能机器环境的影响比两种循环本身的性能影响更大。

           70078304a4f1b47091bedde77851c4d8.png

    @Python天下第一  同学又使用已有列表作为迭代对象进行了测试,发现此时是for更快一些。所以上面for消耗的时间主要是在range中。

           fbd7377a23aacee6a7187b074d41f5d7.png

    再次强调,这里的结果仅仅针对Python而言。因为@Key 同学又测试了scala语言两种循环的效率,结果正好相反。而且scala输出的结果单位是毫秒,且scala循环的迭代次数为10亿次。所以很明显scala的效率要比Python高很多。

    拓展这些还是想告诉大家要牢记Python中两种循环具体要使用哪个。首先考虑的要素是知不知道循环的具体次数,而不是效率。希望大家可以在这个问题中培养这种关注程序效率的意识,能够有所收获,有所成长~

           1fd3410fde7c51f2158459ff0d2bdd23.png

    ac122585a9a2a27b10f98ee16505a95b.png

    稀牛学院,专注大数据和人工智能实战式人才培养

    effe01d4950b007c1c9ea7c4f15f425d.png听说好看的人都「在看」9c84a1de8913290c4c60b0a8d7b0d208.png上期干货分享
    展开全文
  • while循环的格式如下所示。while(表达式):…else:…while循环的执行过程:当循环表达式为真时,依次执行while中的语句。直到循环表达式的值为False,程序的流程转到else语句。其中else子句可以省略,表达式两侧的...

    循环语句是程序设计中常用的语句之一。任何编程语言都有while循环,Python也不例外。while循环的格式如下所示。

    while(表达式):

    else:

    while循环的执行过程:当循环表达式为真时,依次执行while中的语句。直到循环表达式的值为False,程序的流程转到else语句。其中else子句可以省略,表达式两侧的括号也可以省略。

    注意:while循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。

    下面这段代码演示了while循环的使用。程序首先要求输入5个数字,然后依次输出这5个数字。

    # while循环

    numbers=input("输入几个数字,用逗号分隔:").split(",")

    print(numbers)

    x=0

    while x 

    print (numbers[x])

    x += 1                  # 一个循环结束时给x加1

    【代码说明】

    第2行代码使用input()捕获输入。按照提示输入5个数字,并用逗号分隔。input()根据输入的逗号,生成一个列表。

    第3行代码输出列表numbers的内容。

    第4行代码定义变量x的值为0。

    第5行代码循环列表numbers。

    第6行代码输出列表中第x+1个数字的值。

    第7行代码,每次循环使变量x增1。

    下面【例3-6】中的这段代码演示了else子句在while循环中的使用。当变量x的值大于0时,执行循环,否则输出变量x的值。

    【例3-6.py】

    # 带else子句的while循环

    x=float(input("输入x的值:"))   # 接收用户输入的数字并转换为float类型

    i=0

    while(x  != 0):                  # Python 3中的不等于不再使用<>,一律使用!=

    if(x >0):

    x -=1# 如果x大于0,则减1

    else:

    x += 1                 # 如果x小于0,则加1

    ii= i + 1

    print( "第%d次循环:%f" %(i, x))

    else:

    print ("x等于0:", x)

    【代码说明】

    第2行代码输入变量x的值。

    第3行代码定义变量i,变量i表示循环次数。

    第4行代码,给出循环条件x != 0。如果x不等于0,则执行第5行代码;否则,执行else子句的内容。

    第5行代码,判断变量x的值是否大于0。

    第6行代码,如果x的值大于0,则每次循环都减1。

    第7行代码,判断变量x的值是否小于0。

    第8行代码,如果x的值小于0,则每次循环都加1。

    第9行代码,每次循环使变量i的值加1。

    第11行代码,循环结束,else子句输出变量x的值。输出结果(假设输入数字为0):x等于0:0。

    在使用循环语句时,应注意循环表达式的布尔值,避免出现死循环。死循环是指循环条件永远为真的循环。例如:

    i=1

    while i >0:     # i永远大于0

    ii= i + 1

    print(i)

    这段代码就是一个死循环,变量i的值永远都大于0。

    2. for循环

    for循环用于遍历一个集合,依次访问集合中的每个项目。for循环的格式如下所示。

    for 变量 in 集合:

    else:

    for…in…循环的执行过程:每次循环从集合中取出一个值,并把该值赋值给变量。集合可以是元组、列表、字典等数据结构。其中else子句可以省略。

    注意:for循环中的else子句也属于循环的一部分,最后一次循环结束后将执行else子句。

    for…in…循环通常与range()函数一起使用,range()返回一个列表,for…in…遍历列表中的元素。range()函数的声明如下:

    class range(object)

    range(stop) ->range object

    range(start, stop[, step]) ->range object

    【代码说明】

    range()返回一个range对象,列表的元素值由3个参数决定:参数start表示列表开始的值,默认值为0;参数stop表示列表结束的值,该参数不可缺少;参数setp表示步长,即每次递增或递减的值,默认值为1。

    下面【例3-7】中的这段代码遍历range()生成的列表,过滤出正数、负数和0。

    【例3-7.py】

    # for in语句

    for x in range(-1, 2):

    if x >0:

    print ("正数:",x)

    elif x== 0 :

    print ("零:",x)

    else:

    print ("负数:",x)

    else:

    print ("循环结束")

    【代码说明】

    第2行代码遍历range(-1,2)生成的列表。range(-1,2)返回的3个数字分别为-1、0、1。每次循环结束,变量x的值依次为-1、0、1。

    第3行代码判断变量x的值是否大于0。

    第4行代码输出正数的值。输出结果为“正数:1”。

    第5行代码判断变量x的值是否等于0。

    第6行代码,输出结果为“零:0”。

    第8行代码,输出负数的值。输出结果为“负数:-1”。

    第9行代码并没有结束for循环,else子句执行后循环才结束。输出结果为“负数:-1”。

    在C、Java语言中,支持如下结构的for语句。

    for(表达式1; 表达式2; 表达式3)

    语句块

    Python不支持这样的for循环。如果需要编写类似功能的循环,可以使用while循环。例如:

    x=0

    while x <5:

    print(x)

    xx= x + 2

    while循环的写法比较琐碎,需要比较判断。因此,对此也可以使用for循环,借助range()函数来实现。例如:

    for x in range(0, 5, 2):

    print (x)

    【代码说明】

    输出的数字在[0,5)这个区间,不包括5。每次循环结束,x的值加2。输出结果:

    0

    2

    4

    这里只用了两行代码就实现了传统for循环。如果要用条件表达式作为循环的条件,可以构造range()函数来实现。

    3. break和continue语句

    break语句可以使程序跳出循环语句,从而执行循环体之外的程序,即break语句可以提前结束循环。例如,模拟switch分支结构使用了break语句。

    operator="+"

    x=1

    y=2

    for case in switch(operator):   # switch只能用于for... in...循环中

    if case('+'):

    print (x + y)

    break

    if case('-'):

    print (x - y)

    break

    if case('*'):

    print (x * y)

    break

    if case('/'):

    print (x / y)

    break

    if case():                      # 默认分支

    print ("")

    【代码说明】

    第7行代码中使用了break。当变量operator的值为“+”,则执行表达式x + y,然后中断switch分支结构,后面的case分支都不会执行。此时输出结果为3。后面的break作用相同。当匹配到某个case后,程序将跳出switch。

    如果第一个case不使用break子句,程序将输出两个值,分别是3和-1。因为执行完输出表达式x + y后,分支结构并没有中断,程序将流转到下面一个case。然后继续计算表达式x – y的值,遇到后面的break语句才退出分支结构。break语句在循环结构中也有类似的作用。【例3-8】中的这段代码将从0到99中查找用户输入的值。

    【例3-8.py】

    x=int(input("输入x的值:"))

    y=0

    for y in range(0, 100):

    if x== y:

    print ("找到数字:", x)

    break

    else:

    print("没有找到")

    【代码说明】

    第1行代码捕获用户输入的值,并把该值转换为int类型,赋值给变量x。

    第2行代码定义一个变量y,变量y用于暂存需要遍历的列表的值。

    第3行代码使用for…in…循环遍历range(0, 100)返回的列表。range(0, 100)的返回值为0、1、2、…、99。

    第4行代码判断输入的值是否等于列表中的值。如果条件成立,输出查找到的数字,并立即退出循环。循环结束,后面的else子句将不会被执行。

    第7行代码,当没有找到输入的值时,else子句后面的代码将被执行。

    注意:break语句不能运行在循环体或分支语句之外,否则,Python解释器将提示如下错误。

    SyntaxError: 'break' outside loop

    continue语句也是用来跳出循环的语句,但是与break不同的是,使用continue语句不会跳出整个循环体,只是跳出当前的循环,然后继续执行后面的循环。

    x=0

    for i in [1,2,3,4,5]:

    if x== i:

    continue

    x  += i

    print("x的值为", x)

    【代码说明】

    第1行代码将x赋值为0。

    第2行代码使用for...in...语句遍历列表[1,2,3,4,5]。

    第3行代码将x与i进行比较,如果x与值i相等,则执行第4行的continue语句,停止当前循环,即不再执行第5行代码,继续执行下一个循环。

    第6行代码打印出最终的结果,输出为12。

    展开全文
  • for循环、while循环和do-while循环

    千次阅读 2018-09-19 17:06:06
    什么是循环? 循环:同一个代码根据情况要一直执行。 循环的意义:大大减少代码量, 极大意义上的提升硬件利用率 什么时候使用循环?...1.for循环的语句格式: for ( init_expr ; boolean tes...

    什么是循环?

    循环:同一个代码根据情况要一直执行。
    循环的意义:大大减少代码量, 极大意义上的提升硬件利用率
    什么时候使用循环?
    1.重复并且有规律 —>逻辑能力
    2.开始条件 —>从什么时候开始
    3结束条件 —>什么时候结束(如果没有结束条件,会进入死循环,让代码一直不停地运行)

    for循环

    1.for循环的语句格式:

    for ( init_expr ; boolean test_expr ; alter_expr){
    			statement or block;
    		}
    

    init_expr :初始条件,只会执行一次(可以省略)

    boolean test_expr:判断条件,每次循环都要判断(可以省略,必须是boolean类型的表达式,默认是true)

    alter_expr:循环变量的改变,每次循环都要执行(可以省略)

    statement or block:循环体,每次循环都要执行,直到循环的判断条件不成立(可以省略)

    在for循环语句中:初始条件会先执行(只会执行一次),然后执行判断条件,若不符合判断条件,将会调出循环体, 停止循环,若符合判断条件,将会执行循环体,循环体执行完毕后,会执行循环变量的改变,然后就完成一次for循环
    for循环语句分析
    练习题:

    //1.请在控制台上面打印1-10
    		public class Test06 {
    		public static void main(String[] args) {
    			for(int i=1;i<=10;i++) {
    				System.out.print(i+"\t");
    			}
    		}
    }
    	
    

    while循环

    1.while语句格式:

    init_statement
    		while ( boolean_expr ){
    			statement or block;
    			alter_expr;
    		}
    

    特点:在括号中只可以写循环判断条件,不写的话,就是true
    练习题:

    public class Test06 {
    		public static void main(String[] args) {
    			
    			int sum=0;
    			int i=1;
    			while(i<=100) {
    				sum+=i;
    				i++;
    			}
    			System.out.println(sum);
    		}
    }
    

    要注意的是:在while循环中,一定不要忘记书写alter_expr(循环变量的改变)
    for循环和while循环的应用场景:
    当明确的知道循环的次数的时候,使用for,反之就使用while循环
    当想明确的操作循环步长时,使用for,反之亦然
    其实,就现阶段而言,循环的一个很大的用处就是用来遍历集合或者数组

    do-while循环

    do-while循环语句格式

    [init_expr]
    do{
    		body_statement;
    		[alter_expr;]
    }while( test_expr);
    

    特点:无论如何都会执行一次
    代码实例:

    public class DoWhile01
    {
    	public static void main(String args[])
    	{
    		int i = 9 ;
    		do
    		{
    			// 先执行循环体一次,之后再进行条件的判断
    			System.out.print("*") ;
    			i++ ;
    		}while(i<10) ;
    	}
    };
    
    展开全文
  • while循环嵌套

    万次阅读 2018-07-13 11:53:50
    while循环嵌套前面学习过if的嵌套了,想一想if嵌套是什么样子的?类似if的嵌套,while嵌套就是:while里面还有while&lt;1&gt;while嵌套的格式 while 条件1: 条件1满足时,做的事情1 条件1满足时,做的...

    while循环嵌套

    • 前面学习过if的嵌套了,想一想if嵌套是什么样子的?

    • 类似if的嵌套,while嵌套就是:while里面还有while

    <1>while嵌套的格式

        while 条件1:
    
            条件1满足时,做的事情1
            条件1满足时,做的事情2
            条件1满足时,做的事情3
            ...(省略)...
    
            while 条件2:
                条件2满足时,做的事情1
                条件2满足时,做的事情2
                条件2满足时,做的事情3
                ...(省略)...
    

    <2>while嵌套应用一

    要求:打印如下图形:

        *
        * *
        * * *
        * * * *
        * * * * *
    

    参考代码:

    i = 1
    while i <= 5:
        j = 1
        while j <= i:
            print("* ", end = '')
            j += 1
    
        print("\n")
        i += 1
    

    <3>while嵌套应用二:九九乘法表

    参考代码:

    i = 1
    while i<=9:
        j=1
        while j<=i:
            print("%d*%d=%-2d " % (j, i, i*j), end = '')
            j+=1
        print('\n')
        i+=1
    展开全文
  • 循环结构之 while循环

    2016-07-28 22:59:34
    day6 while循环**今天内容主要练习 练得多了就好了 慢慢会越来越熟悉** while循环结构简要介绍* 1. 什么叫做循环* : 循环就是有一段代码反复执行* 2. 格式* while(条件表达式) // 循环头 { 语句1; // ...
  • for循环的格式以及使用 什么是循环 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时 for循环格式 for(初始化表达式语句;判断条件语句;...
  • while循环嵌套 前面学习过if的嵌套了,想一想if嵌套是什么样子的? 类似if的嵌套,while嵌套就是:while里面还有while <1>while嵌套的格式 while 条件1: 条件1满足时,做的事情1 条件...
  • java9——while循环

    2017-06-24 14:48:34
    while循环的用法格式:while(条件表达式){ 执行语句块; 停止条件; }格式上来说,和if也差不多。java中的一些语句格式基本如此,这里着重说一下停止条件。对于while循环来说,在条件表达式中并没有具体说明什么...
  • 上节课我们学习了while循环,他结构格式为: while(条件) { // 循环做事 } 由于程序代码从上到下执行,所以每次循环,都要先判断while后面小括号中条件是否成立? 如果成立,则做大括号中循环事情;...
  • 点击上方蓝字,关注我吧课 程 表for循环代发格式for循环的3个要点即:1.空房间;2.一群等着办业务的人;3.业务流程空房间的学名叫【元素】(item),你可以把它当成一个变量。那么首先,我们需要给房间取一个名字,...
  • 三种循环的格式以及执行流程的介绍如下图 比较三种循环语句的区别: for和while循环先对条件判断语句进行判断,只有在满足条件的时候才会继续往下执行,而do…while循环语句先执行一次循环体才开始对条件...
  • if语句用来进行判断,其使用格式如下: if 要判断条件: 条件成立时,要做事情 #比较,运算符== 检查两个操作数值是否相等,如果则条件变为真。 如a=3,b=3,则(a == b) 为 True!= 检查两个操作数...
  • 点击上方蓝字,关注我吧课 程 表for循环代发格式for循环的3个要点即:1.空房间;2.一群等着办业务的人;3.业务流程空房间的学名叫【元素】(item),你可以把它当成一个变量。那么首先,我们需要给房间取一个名字,...
  • 不仅生活中有,在软件开发中"判断"功能也经常会用到if语句用来进行判断,其使用格式如下:if 要判断条件:条件成立时,要做事情#比较,运算符==检查两个操作数值是否相等,如果则条件变为真。如a=3,b=3,...
  • Java一门很重要的编程语言,涉及的技术点也非常广泛,所以需要学习的知识也很多,不管学什么技术,都从基础学起的,下面我就和大家分享一下这个java基础的三种循环的区别。 首先我先说一下这三种循环的基本格式...
  • 在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。这几个循环语句...
  • 1.循环结构概述和for语句的格式及其使用* 什么是循环结构循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断...
  • 一、流程控制之while循环1.1什么是循环当我们攻略单机游戏时,总要重复对某一些关卡进行反复攻略以达到通关目的。而在编程中,我们也需要对有一些程序进行循环操作,这个时候就需要用到循环语句for 或者while循环。...
  • 1 顺序语句语句:使用分号分隔代码称作为一个语句。... 什么是判断语句:用于判断语句叫判断语句。1.格式一 if(判断条件){ 如果符合条件执行代码; 执行代码块1; 执行代码块2; …………...
  • 其中一段代码,大体就是读一个文件里字符串,为什么我调试发现每次读完最后一个字符串后,程序就在那个WHILE循环那退出了,不会执行循环外那条输出语句即 StdOut.println("(" + stack.size() + " left on ...
  • whiledo.while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见在for循环中嵌套for循环,Java嵌套循环格式如下:for(初始化表达式;循环条件;操作表达式){…for(初始化表达式;循环条件;操作...
  • while 循环做个小游戏

    千次阅读 2017-08-05 14:11:56
    import random #可输入次数 flag = 0 #生成一个1到10之间随机整数 ... temp = input('来,猜猜我心里想数字是什么?\r\n') #格式化输入字符串数字为整型 temp = int(temp) #如果相等 if tem
  • while条件循环语句是一种让脚本根据某些条件一直循环执行命令语句,while语句相对于Java种的while语句来说相对于简单,而相对与python中的while语句来说又相对与复杂些,下面我们来看看它语法格式是什么样子吧...
  • whiledo.while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见在for循环中嵌套for循环, Java嵌套循环格式如下:  for(初始化表达式;循环条件;操作表达式){  for(初始化表达式;循环条件;...
  • 注意:for循环的3个要点即:1.空房间;2.一群等着办业务的人;3.业务流程。 举个例子: 1)空房间的学名叫【元素】(item),可以把它当成一个变量。那么首先,需要给房间取一个名字,也就是“变量名”。变量...
  • 1.循环结构概述和for语句的格式及其使用 * 什么是循环结构  循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环...
  • <p><strong>问题描述</strong><br /> 想要找出经过gaowei区域居民,分析位置记录一种简单有效方法。 具体来说,一位居民位置记录包含t个平面坐标(x1,y1),(x2,y2),…,(xt,...这什么呀</p>
  • 思考:生活中有哪些循环的事情? 总结:什么是循环? 重复做类似的事情,而且有终止条件,如果没有终止条件会怎样? 类似这样的情况,Java早就为我们提供了相关的技术解决方案 for、while、do while 一、 ...
  • 文章目录循环结构概述循环结构概述什么是循环结构循环结构的分类案例:在控制台输出10次"helloworld"for语句for语句的格式及其使用循环结构for语句的格式执行流程注意事项环结构for语句的练习之获取数据案例演示注意...
  • 截取字符串中一部分(1)从给定下标出开始截取到给定下标之前(2)从头截取到给定下标之前(3)从给定下标处开始截取到结尾二、格式化输出三、转义字符(\)(一)换行符(\n)(二)( \\\ )保证在程序中不会...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 318
精华内容 127
关键字:

while循环的格式是什么