精华内容
下载资源
问答
  • 李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的...从上面的语法格式可以看出,for表达式与普通for循环的区别有如下两点: 在for关键字之..

    李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习。

    《Python编程思想》总目录

    《Python编程思想》专栏

    for表达式可以利用其他元组、列表等集合对象创建列表。for表达式的语法格式如下:

    [表达式 for 循环计数器 in 可迭代对象]

    从上面的语法格式可以看出,for表达式与普通for循环的区别有如下两点:

    • 在for关键字之前需要定义一个表达式,该表达式通常会包含循环计数器;

    • for表达式没有循环体,因此不需要冒号;

    for表达式当然也是有循环的,它同样会对可迭代对象进行循环,这一点与普通的for循环没什么两样。for表达式最终返回的是列表,因此for表达式也被称为列表推导式。

    下面的代码演示了如何用for表达式创建列表:

    示例代码:for_expr1.py

    num_range = range(10)
    # 对num_range执行for表达式
    num_list1 = (x + x for x in num_range)   # 生成一个生成器
    num_list2 = [x + x for x in num_range]   
    for num in num_list1:
        print(num)
    # num_range集合包含10个元素
    print(num_list2)

    这段代码的执行结果如下:

    0
    2
    4
    6
    8
    10
    12
    14
    16
    18
    [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

    上面的代码会对 num_range执行选代,由于 num_range相当于包含10个元素的可迭代对象,因此程序生成的 num_list1和num_list2同样包含10个元素,每个元素都是 num_range中每个元素的2倍(由表达式x+x控制)。

    如果将for表达式的方括号改为圆括号,for表达式将不再生成列表,而是生成一个生成器( generator),该生成器不能直接输出相应的值,但可以使用for循环迭代。

    还可以在for表达式后面添加if条件,这样for表达式将只迭代那些符合条件的元素。代码如下:

    示例代码:for_expr2.py

    num_range = range(10)
    num_list = [x + x for x in num_range if x % 2 == 1]
    # a_list集合包含10个元素
    print(num_list)

    上面的代码代码与前面的代码大致相同,只是为for表达式增加了if条件,这样程序只处理 num_range区间的奇数,因此程序生成的列表中只包含5个元素。

    执行这段代码,可以看到如下输出结果

    [2, 6, 10, 14, 18]

    在前面看到的for表达式都是单层循环,实际上for表达式也可以是嵌套循环,代码如下:

    示例代码:for_expr3.py

    num_list = [(x, y) for x in range(5) for y in range(4)]
    # num_list列表包含20个元素
    print(num_list)
    last_list = []
    for x in range(5):
        for y in range(4):
            last_list.append((x, y))
    print(last_list)

    上面代码中x是遍历 range(5)的计数器,因此x可迭代5次(0到4);y是遍历 range(4)的计数器,因此该y可选代4次(0到3)。所以(x,y)表达式一共会迭代20次。

    运行这段代码,可以看到如下输出结果

    [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]
    [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]

    上面的for表达式相当于如下嵌套循环

    last_list=[]
    for x in range(5):
        for y in range(4):
            last_list.append((x, y))
    print(last_list)

    当然,for表达式也支持3层或更多层嵌套,例如如下代码是3层嵌套:

    num_list = [[x, y, z] for x in range(5) for y in range(4) for z in range(8)]
    print(num_list)

    num_list列表共包含160个元素。

    对于嵌套循环的for表达式,同样可指定if条件。假如我们有一个需求:程序要将两个列表中的数值按“能否整除”的关系配对在一起。比如num_list1列表中包含30,num_list2列表中包含6,其中30可以整除6,这样就可以将30和5配对在一起。对于上面的需求使用for表达式来实现非常简单,代码如下:

    num_list1 = [30, 12, 77, 34, 39, 78, 36, 36, 121]
    num_list2 = [3, 6, 7, 12]
    # 只要y能整除x,就将它们配对在一起
    result = [(x, y) for x in num_list2 for y in num_list1 if y % x == 0]
    print(result)

    运行这段代码,会输出如下结果:

    [(3, 30), (3, 12), (3, 39), (3, 78), (3, 36), (3, 36), (6, 30), (6, 12), (6, 78), (6, 36), (6, 36), (7, 77), (12, 12), (12, 36), (12, 36)]

    对本文感兴趣的同学可以加微信unitymarvel,或扫描下面二维码加群,然后拖加入技术讨论群。

     

    展开全文
  • 李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。...for表达式的语法格式如下:[表达式 for 循环计数器 in 可迭代对象]从上面的...
    李宁老师已经在「极客起源」 微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」 公众号中输入 160442 开始学习-----------正文----------for表达式可以利用其他元组、列表等集合对象创建列表。for表达式的语法格式如下:[表达式 for 循环计数器 in 可迭代对象]从上面的语法格式可以看出,for表达式与普通for循环的区别有如下两点:
    • 在for关键字之前需要定义一个表达式,该表达式通常会包含循环计数器;

    • for表达式没有循环体,因此不需要冒号;

    for表达式当然也是有循环的,它同样会对可迭代对象进行循环,这一点与普通的for循环没什么两样。for表达式最终返回的是列表,因此for表达式也被称为列表推导式。下面的代码演示了如何用for表达式创建列表:示例代码:for_expr1.py
    num_range = range(10)# 对num_range执行for表达式num_list1 = (x + x for x in num_range)   # 生成一个生成器num_list2 = [x + x for x in num_range]   for num in num_list1:    print(num)# num_range集合包含10个元素print(num_list2)
    这段代码的执行结果如下:
    024681012141618[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
    上面的代码会对 num_range执行选代,由于 num_range相当于包含10个元素的可迭代对象,因此程序生成的 num_list1和num_list2同样包含10个元素,每个元素都是 num_range中每个元素的2倍(由表达式x+x控制)。如果将for表达式的方括号改为圆括号,for表达式将不再生成列表,而是生成一个生成器( generator),该生成器不能直接输出相应的值,但可以使用for循环迭代。还可以在for表达式后面添加if条件,这样for表达式将只迭代那些符合条件的元素。代码如下:示例代码:for_expr2.py
    num_range = range(10)num_list = [x + x for x in num_range if x % 2 == 1]# a_list集合包含10个元素print(num_list)
    上面的代码代码与前面的代码大致相同,只是为for表达式增加了if条件,这样程序只处理 num_range区间的奇数,因此程序生成的列表中只包含5个元素。执行这段代码,可以看到如下输出结果
    [2, 6, 10, 14, 18]
    在前面看到的for表达式都是单层循环,实际上for表达式也可以是嵌套循环,代码如下:示例代码:for_expr3.py
    num_list = [(x, y) for x in range(5) for y in range(4)]# num_list列表包含20个元素print(num_list)last_list = []for x in range(5):    for y in range(4):        last_list.append((x, y))print(last_list)
    上面代码中x是遍历 range(5)的计数器,因此x可迭代5次(0到4);y是遍历 range(4)的计数器,因此该y可选代4次(0到3)。所以(x,y)表达式一共会迭代20次。运行这段代码,可以看到如下输出结果
    [(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)][(0, 0), (0, 1), (0, 2), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 0), (2, 1), (2, 2), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3), (4, 0), (4, 1), (4, 2), (4, 3)]
    上面的for表达式相当于如下嵌套循环
    last_list=[]for x in range(5):    for y in range(4):        last_list.append((x, y))print(last_list)
    当然,for表达式也支持3层或更多层嵌套,例如如下代码是3层嵌套:
    num_list = [[x, y, z] for x in range(5) for y in range(4) for z in range(8)]print(num_list)
    num_list列表共包含160个元素。对于嵌套循环的for表达式,同样可指定if条件。假如我们有一个需求:程序要将两个列表中的数值按“能否整除”的关系配对在一起。比如num_list1列表中包含30,num_list2列表中包含6,其中30可以整除6,这样就可以将30和5配对在一起。对于上面的需求使用for表达式来实现非常简单,代码如下:
    num_list1 = [30, 12, 77, 34, 39, 78, 36, 36, 121]num_list2 = [3, 6, 7, 12]# 只要y能整除x,就将它们配对在一起result = [(x, y) for x in num_list2 for y in num_list1 if y % x == 0]print(result)
    运行这段代码,会输出如下结果:
    [(3, 30), (3, 12), (3, 39), (3, 78), (3, 36), (3, 36), (6, 30), (6, 12), (6, 78), (6, 36), (6, 36), (7, 77), (12, 12), (12, 36), (12, 36)]
    往期回顾:Python编程思想(12):for-in循环Python编程思想(13):循环中的else语句Python编程思想(14):嵌套循环更多视频课程:

    257bf5774fb130dbcfba92fe132f40ca.png

    5684682b56e621f3791142a22eb32d5f.png

    展开全文
  • 1、if条件表达式 package com.scala.test.Test object IfTest02 { def main(args: Array[String]): Unit = { val a:Int=60 //这种情况和java语言一样 if(a>60){ println("大于60") }else{ printl...

    1、if条件表达式

    package com.scala.test.Test
    
    object IfTest02 {
      def main(args: Array[String]): Unit = {
        val a:Int=60
        //这种情况和java语言一样
        if(a>60){
          println("大于60")
        }else{
          println("小于等于60")
        }
    
        //与java不同的是,Scala表达式可以返回一个值,类似于java的三元表达式
        val b= if(a>60) 100 else 0
        println(b)
    
        //代码块
        //无论条件如何总是返回代码块最后的值
        val c = {
          if(a>60) 100 else 0
          "end"
        }
        println(c)
      }
    }
    
    小于等于60
    0
    end

    2、while循环

    while循环结构和java完全一样

    package com.scala.test.Test
    
    import scala.collection.mutable.ArrayBuffer
    
    object WhileTest {
      def main(args: Array[String]): Unit = {
        val a : Int = 30
        while (a==30){
          println("a==30")
          //return
        }
        println("a!=30")
    
    //    do{
    //      println("a==30")
    //    }while(a==30)
        
      }
    }
    

    3、for循环

    (1)基本语法结构

       //基本for循环
        for(i <- 1 to 5){
          println(i)
        }
    
        //嵌套for循环
        for(i <- 1 to 3;j <- 1 to 4){
          println("i: "+i," j: "+j)
        }
    

    (2)守卫式for循环

         for(i <- 1 to 5 if i % 2 == 0){
          println(i)
        }
    
          for(i <- 1 to 3;j <- 1 to 4 if j%2==0){
          println("i: "+i," j: "+j)
        }

    (3)for推导式

    package com.scala.test.Test
    
    object ForTest {
      def main(args: Array[String]): Unit = {
        
        //for推导式
        val array = for(i <- 1 to 5 if i%2==0) yield i*2
        for(i<-array){
          println(i)
        }
        println("=========================================")
        //和上面等价
        val array01 = (1 to 5).filter(_%2==0).map(_*2)
        for(i<-array01){
          println(i)
        }
    
    
      }
    
    }
    
    4
    8
    =========================================
    4
    8

     

    展开全文
  • for循环表达式 for(表达式1,表达式2,表达式3) { 表达式4; } 第一次运行顺序: 表达式1 → 表达式2 → 表达式4 → 表达式3 非第一次运行顺序: 表达式2 → 表达式4 → 表达式3 注:学for循环,计算阶乘遇到的思考...

    for循环表达式

    for(表达式1,表达式2,表达式3)
    {
    	表达式4;
    }
    

    第一次运行顺序:
    表达式1 → 表达式2 → 表达式4 → 表达式3

    非第一次运行顺序:
    表达式2 → 表达式4 → 表达式3

    注:学for循环,计算阶乘遇到的思考
    例:

    int main()
    {
    	int n;
    
    	scanf("%d", &n);
    	int fact = 1;
    
    	
    	for (int i = 1; i < n+1 ; i++)
    	{
    		fact *= i;
    	}
    
    	printf("%d!=%d\n", n, fact);
    
    	system("pause");
    
    	return 0;
    }
    
    展开全文
  • 一步步学spark之一scala循环表达式for循环使用 1.5 scala循环表达式for循环使用  while 使用   do while使用   上面代码中 scala.io.StdIn.readLine() 指定了readLine()方法用的是哪个包下的 ...
  • 对于学c的朋友来说,for循环可能使我们经常用到的一种循环语句 for(表达式1;表达式2;表达式3){循环体} ...由上面的执行结果不难看出for循环中除了表达式1为了初始化变量,其的循环是表达式2——循环体——表达
  • el表达式 for循环The usual syntax of a for-loop is < ?php for($i = 0; $i < 10; $i++){ // do your thing } ?> for循环的常用语法是<?php for($ i = 0; $ i <10; $ i ++){//做你的事}?> ...
  • 对于学c的朋友来说,for循环可能使我们经常用到的一种循环语句 for(表达式1;表达式2;表达式3){循环体} 知道其的语句执行顺序对我们来说可以避免很多失误 我们可以利用下面这个小程序轻易测出其内在的语句...
  • for循环 逗号表达式

    2016-08-02 18:04:26
    C++ for(vector::iterator iter = m_FYourfriend.begin(),int i = 1 ; iter != m_FYourfriend.end(); i++) { file ; file m_DFriendid ; file m_SFriendname << e
  • 1、for循环原型: for(表达式1;表达式2;表达式3) { 循环体; } 2、for循环执行顺序: 3、for循环举例 1)如上图,执行完循环体后,再执行表达式3的情况 void func()//普通情况,表达式3都会执行 { ...
  • 第七课循环结构程序设计——第二节一、for循环概述二、for语句表达式总结三、例题用for循环编程序计算n的阶乘,其中n是一个非负整数。四、while循环与for循环简单辨析五、编程序求出所有的水仙花数。六、总结循环...
  • C语言中的for循环与逗号表达式 目录 1 for循环 1.1 格式 1.2 break与continue在三种循环之间的区别 1.3 关于for循环的两点建议 1.4 关于for循环的死循环 2 逗号表达式 1 for循环 1.1格式 for...
  • public static void main(String[] args) { int i = 0; for(;i&lt;4;i+=2){ System.out.print(i+" ".../*(1)语法:for表达式1;表达式2;表达式3){ 循环体 }*/ /*表达式1:1....
  • for循环表达式: 简单循环: var num = 0; for(var i = 0;i5;i++){  console.log(num+=1) }  第一步 第二步  for 循环 (创建一个开始循环标记变量(初始化变量); 循环的成立的条件; 第三步 定义...
  • 表达式1,表达式2;) 则以条件2为主。 for(;表达式1&表达式2;) 则以先达到条件的表达式为主。 for(;表达式1|表达式2;) 则以后达到条件的表达式为主。 测试代码: for(a=0,b=0;a<6,b<4;a++,b++) ...
  • for循环和lamda表达式如何跳出循环

    千次阅读 2019-09-17 02:29:46
    夜晚10.44,想起了曾经面试的一个问题,但是我回答...在使用lamda表达式处理集合的时候,发现对return,break,continue不是很明白,于是自己动手测试,发现lamda表达式中使用foreach处理循环时不能使用break和contui...
  • JAVA中诸如IF条件表达式FOR、WHILE等循环语句随处可见,SCALA也同样有这些条件表达式循环语句。IF条件表达式语法if…else 语句 (else可以省略)if(布尔表达式){// 如果布尔表达式为 true 则执行该语句块}else{// ...
  • 1.for(表达式1;表达式2;表达式3) 表达式1:1.执行初始部分,循环结构的初始部分,为循环变量赋初值。初始化只执行一次 表达式2:1.进行循环条件判断(); 2.根据循环条件判断结果(true则执行循环体,...
  • java8 .stream().filter() 代替for循环 lambda表达式

    万次阅读 多人点赞 2019-01-17 16:44:05
    先说一下lambda表达式: lambda 表达式的语法格式如下: (parameters) -&gt; expression (parameters) -&gt;{ statements; } //或者这种 Lambda 表达式的简单例子: // 1. 不需要参数,返回值为 5 ()...
  • for循环自定义条件表达式SetCond beego框架中,高级查询的setcond是可以自定义条件表达式的,当我们一次要查询出多个条件下的数据,恐怕就需要用for循环来自定义条件表达式了,范例如下: cond := orm....
  • for循环三个表达式的省略

    千次阅读 2013-06-08 13:06:00
    for循环的3个表达式可以写0-3个,也就是说,3个表达式都可以省略,如果全部省略,相当于while(true)的效果 转载于:https://www.cnblogs.com/atubaibai/archive/2013/06/08/3126537.html...
  • for循环的三个表达式

    千次阅读 2016-03-15 20:42:07
    首先我们我来一段代码,看看它有什么错误: for(i = 0,printf("First = %d\t",i); i ,printf("Second = %d\t",i);...有没有感觉for循环里面的表达式好复杂,但是语句绝对没有错误,编译没有错误,但是运行呢?
  • if表达式for循环

    2019-08-06 18:15:50
    fun test(): Unit { /** * if 表达式可以直接将结果返回给变量 * */ var x = 2; var result = if(x%2==0) "偶数" else "奇数" /** * 循环可以加标签,通过@定位标签 ...
  • Java增强for循环&三元表达式

    千次阅读 2018-06-22 11:36:21
    增强for循环的语法:for(元素类型:数组名/Iterable实例){}举例: // 定义一个字符串 String string = "abcduieuihnjksnakjjlajaasbnv jidm"; // 将字符串转化为字符数组 char[] ch = string....
  • 大家好,我是天空之城,今天给大家带来,数据分析—for循环,while循环,正则表达式 正则表达式 正则表达式的定义 正则表达式是指专门用于描述或刻画字符串内在规律的表达式。 正则表达式的使用场景 无法通过...
  • Kotlin编程:if语句,while循环,when表达式for循环
  • for循环中的逗号表达式

    千次阅读 2018-05-04 15:42:28
    https://blog.csdn.net/hurmishine/article/details/75172761for循环在是在编程中用的比较多的循环语句了,逗号运算符在实际编程中用到的不是很多,一般就用到定义变量的时候吧,其它的地方自己不会用,用了也怕别人看不...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,413
精华内容 4,165
关键字:

for循环表达式