精华内容
下载资源
问答
  • 我想在while循环条件期间将函数的值赋给变量。 当函数返回的值为false时,循环应该中断。 我知道如何在PHP完成它。while (($data = fgetcsv($fh, 1000,",")) !== FALSE)但是,当我在Python尝试类似的语法时,...

    关于Python语法的一个简单问题。 我想在while循环的条件期间将函数的值赋给变量。 当函数返回的值为false时,循环应该中断。 我知道如何在PHP中完成它。

    while (($data = fgetcsv($fh, 1000,",")) !== FALSE)

    但是,当我在Python中尝试类似的语法时,我得到一个语法错误。

    如果Python中的函数fgetcsv返回字符串或False,那么与PHP中的模式完全相同,则for data in iter(lambda: fgetcsv(fh, 1000,","), False):将具有您想要的效果。

    @Duncan - 嗯...如果你想要一个更通用的iter,将任何False y值视为哨兵怎么办?

    您不能在表达式中使用赋值。赋值本身就是一个语句,你不能组合Python语句。

    这是语言设计者的明确选择;很容易意外地使用一个=并分配,你打算使用两个==并测试相等性。

    将赋值移动到循环中,或在循环之前分配,并在循环本身中分配新值。

    对于您的具体示例,Python csv模块为您提供了更高级别的API,而您将循环遍历csv.reader():

    with open(csvfilename, 'rb') as csvfh:

    reader = csv.reader(csvfh)

    for row in reader:

    如果有的话,我很少需要在循环结构中进行分配。通常有一种(更好)解决手头问题的方法。

    也就是说,从Python 3.8开始,语言实际上会有赋值表达式,使用:=作为赋值运算符。请参阅PEP 572.分配表达式在列表推导中实际上很有用,例如,当您需要在正在构建的列表中包含方法返回值并且需要能够在测试中使用该值时。

    现在,您必须使用生成器表达式:

    absolute = (os.path.abspath(p) for p in files)

    filtered = [abs for abs in absolute if included(abs)]

    但是使用赋值表达式可以内联os.path.abspath()调用:

    filtered = [abs for p in files if included(abs := os.path.abspath(p))]

    谢谢。 我实际上需要这个而不是csv,抱歉,如果我感到困惑。

    @BorutFlis:当然,但请再次确保检查实现这一目标的更好方法。

    只是学习Python并喜欢它的简洁性。 这是让我心烦意乱的第一件事,尽管我能理解语言设计师做出的选择......

    @opncow:实际上,Python 3.8将有一个赋值表达式。 见PEP 572。

    你不能在Python中做到这一点,在表达式中没有赋值。至少这意味着你不会意外地键入==而不是=或反过来并让它工作。

    传统的Python风格只是在True和break时使用:

    while True:

    data = fgetcsv(fh, 1000,",")

    if not data:

    break

    # Use data here

    但是现在我把它放在一台发电机里:

    def data_parts(fh):

    while True:

    data = fgetcsv(fh, 1000,",")

    if not data:

    break

    yield data

    所以在使用该文件的代码中,丑陋隐藏起来:

    for data in data_parts(fh):

    # Use data here

    当然,如果它实际上是您正在进行的CSV读取,请使用csv模块。

    谢谢。 我将使用不定式循环。

    @RemcoGerlich一个简单的生成器而不是while循环的很好的例子。

    我写了一个Python模块,我称之为let,它允许您在允许函数的任何地方执行变量赋值。

    像这样安装:

    pip install let

    我相信以下内容将实现您的目标:

    from let import let

    while let(data = fgetcsv(fh, 1000, ',')):

    # Do whatever you'd like with data here

    但是...... Duncan评论说使用iter的原始问题很有意思。直到他提起这个功能我才意识到这个功能,我现在相信它可能比我的解决方案更好。这是值得商榷的 - iter要求明确提供标记,而我不关心并且只是等待fgetcsv返回任何False y值。

    展开全文
  • 在While循环中根据变化的条件来控制特效播放开关 在开发过程中遇到的一个小问题

    在While循环中根据变化的条件来控制特效播放开关

      在Run()函数中的逻辑需求如下: 判断某个动态变化的条件是否被满足,一旦条件被满足则播放某个特效,一旦不满足停止播放特效,由于每次调用播放特效的函数都会导致特效被重头开始播放,所以播放特效的函数只能被执行一次,多次循环重复执行则影响表现.简单代码实现如下:

    bool IsNeedPlayMagic()
    {
        //To Do ...
    }
    
    void PlayMagic()
    {
        //To Do ...
    }
    
    void StopPlayMagic()
    {
        //To Do ...
    }
    
    bool bIsPlayingMagic = false;
    
    void Run()
    {
        if(IsNeedPlayMagic())
        {
            if(!bIsPlayingMagic)
            {
                //每次进来只执行一次
                PlayMagic();    
            }
            bIsPlayingMagic = true;
        }
        else
        {
            if(bIsPlayingMagic )
            {
                //每次进来只执行一次
                StopPlayMagic();
            }
            bIsPlayingMagic = false;
        }
    }
    
    展开全文
  • 突然想起while可以在条件判断进行while(nowParam = reg.exec(param) 语句的赋值。 这种用法以前我一直不太敢使用,担心会出现什么问题,一般都是先在循环外部定义好遍历,将值赋给遍历后再作为循环条件。 所以...

    最近在使用while的时候,由于使用正则的exec方法,同时也是进行全局匹配,需要匹配出全部的内容,所以想用while进行循环获取。突然想起while可以在条件判断中进行while(nowParam = reg.exec(param) 语句的赋值。

    这种用法以前我一直不太敢使用,担心会出现什么问题,一般都是先在循环外部定义好遍历,将值赋给遍历后再作为循环的条件。

    所以今天想弄清楚这个的使用方法:
    原代码:

         while(nowParam = reg.exec(param)){
            console.log(nowParam)
            console.log(123)
        }
    

    打印输出nowParam这个变量是存在的
    在这里插入图片描述

    该变量并没有在循环的外部进行定义过,所以尝试在循环外部前面进行打印该变量,是会直接报错Uncaught ReferenceError: nowParam is not defined
    console.log(nowParam)
        while(nowParam = reg.exec(param)){
            console.log(nowParam)
         }
    

    在这里插入图片描述

    而尝试在循环体后面打印该变量,结果却是null
    while(nowParam = reg.exec(param)){
            console.log(nowParam)
         }
         console.log(nowParam)
    

    在这里插入图片描述

    所以在循环题条件判断语句中直接对一个未定义的变量进行赋值操作,实际上是等于先定义好一个变量,然后再进行赋值操作,而当循环结束后,清空该变量的内容,但是并不销毁这个变量??

    后面又尝试了一下while((aa = i) > -2)这样的赋值写法

     while((aa = i) > -2){
             console.log(aa);
             i--;
        }
        console.log(aa)
    
    打印出来的结果是

    在这里插入图片描述

    这样写结束循环之后,aa的值没有被清空而是保留了下来

    有点神奇,不过个人感觉相比之下还不如循环之前定义好变量,能明确一下你的变量以及变量的内容…

    展开全文
  • python 中else在while循环中的用法

    千次阅读 2018-08-04 17:01:25
    else 可以在while和for循环中运用,else和while或for搭配使用,不再是条件判断的含义。而是当while条件不成立时,直接跳出while循环,执行else输出如: count = 0 while count > 12: if True: print('Yes...

    else 可以在while和for循环中运用,else和while或for搭配使用,不再是条件判断的含义。而是当while条件不成立时,直接跳出while循环,执行else输出如:

    count = 0
    while count > 12:
       if True:
          print('Yes')
          break
       count += 1
    else:
       print('No')

    >>>No

     

    a = 0
    while a < 6:
       print('loop',a)
       a = a + 1
    else:
       print('well done!')#没有break的情况下,循环没有被打断

    >>>

    loop 0
    loop 1
    loop 2
    loop 3
    loop 4
    loop 5
    well done!

    a = 0
    while a < 6:
       print('loop', a)
       a += 1
       break # 有break的情况下,执行一次循环中止了,这种情况下不是正常中止的,else代码块是不执行的
    else:
       print('Well done!')

    >>>

    loop 0

    总结:else下的代码块在while循环正常执行结束了之后就会执行else代码块。否则,不执行。

     

    展开全文
  • wait()方法写在while循环中可以在线程接到通知后再一次判断条件 synchronized public String pop() { String returnValue = ""; try { while(list.size()==0) { System.out.println("pop...
  • <pre><code>while( $row = mysql_fetch_array($result) ) { echo var_dump($phpgsb->doLookup($row['origin'])). " - ". $row['origin']; echo "<br>"; } </code></pre> <p><code>$row['origin']...
  • 程序的三大流程程序开发,一共有三种流程方式:顺序 —— 从上向下,顺序执行代码 分支 —— 根据条件判断,决定执行代码的 分支 循环 —— 让 特定代码 重复 执行02. while 循环基本使用循环的作用就是让 指定...
  • (例如,求若干数的和需要重复做加法,求班级全部学生成绩需要重复做加法)循环的分类while循环do…while循环for循环while循环while循环的语法结构执行的顺序:先判断表达式,表达式成立就执行循环语句,直到表...
  • 我是python语言的初学者,编写包含while循环的代码时遇到了一些问题,我想用一个未被检查的条件检查多个条件,以及字符串/整数的问题。最初的代码(第二个代码示例)是我第一次写的,但它的问题是,当一个键满足第...
  • 用java编写一个猜数字游戏,想使得可以自主的是否继续游戏。 于是我想到了运用标号跳转: package 猜数字游戏测试; import java.util.Random; import java.util.Scanner; public class 测试 { public ...
  • 作者:CHAITANYA SINGH来源:通过示例学习...do-while循环类似于while循环,但是它们之间有一个区别:在while循环中循环条件在循环的主体执行之前进行评估,而在do-while循环中,循环条件在循环的主体执行之后再进...
  • while循环和doWhile循环

    千次阅读 2017-08-02 20:57:40
    在while循环中的小括号中,是一个条件判断,当条件判断的结果是true的时候才会进行循环体中的内容,当循环体执行一遍之后,在返回到条件处判断,如果符合条件,继续运行循环体,如果不符合,直接运行while循环之外的代码 ...
  • while特点:先判断执行 eclipse快捷键 输出语句:alt+/ man方法:alt+/ 导包:ctrl+shift+o while结构死循环 写法1:while(true){ //循环操作 } 写法2:while条件表达式){ //循环操作 //此处没有迭代变量。...
  • 描述:双层while循环时,想不满足外层循环条件时跳出内层循环 上面代码中的第二个方法中,如果内层循环中两个while循环不添加条件left<right。使用debug的时候,当left指向t,right指向c时,此时,满足外层...
  • 不同点在于,for循环是序列穷尽时停止,while循环在条件不成立时停止。1、for循环是需要先设定循环的次数(n),然后再执行属于for循环语句的n次。基本构造是for 元素 in 序列:statement举例来说,我们编辑一个...
  • JavaScript 语言,当我们使用 while 循环时,只要指定条件为 true,循环就可以一直执行。并且只要条件一直满足,就可以实现一个无限循环,例如:while(true){ console.log("1"); } 执行这个循环,就会无止境的...
  • python while循环

    千次阅读 2018-07-14 13:46:48
    语言基础循环有三种while循环,for循环,do while循环。而python编程没有do while循环while循环 while 语句用于循环执行指令,直到不满足条件,结束指令。基本形式为:while 判断条件: # 注意冒号 ...
  • 目前,我已经将其设置为,如果用户忽略了为三个输入的任何一个输入输入一个值,它将使用while循环返回一个错误消息。那很好。但是,我还想设置它,使半径不能小于或等于零。我使用了嵌套的while循环。这是我的...
  • 问题:做底层文件copy实验时,为得到read write的返回值循环条件中直接定义了 while(int readnum=read(in,&amp;amp;amp;c,1)), 部分代码如下: in=open(“file.in”,O_RDONLY,0666); out=open(“file....
  • 所以while循环条件一般通过变量来进行控制,循环体内对变量值做相应改变,以便适当的时候退出,避免陷入死循环。 int i =1; while(i <5){ //业务逻辑 if(i%2>0){ System.out.print(“i是偶数”) }...
  • 展开全部区别:1、使用...2、两种循环构造死循环时的区别:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-L...
  • 条语句,直到遇到终止条件为止循环语句也称迭代语句,Java语言存在的while、for和do-while循环语句。 while循环 while是Java最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环...
  • 前面:一个真正温柔的人,并不是因为Ta从来没有吃过苦,而是经历过生活的残酷和艰辛后依然能够保持一颗...while循环中num小于等于5就会继续执行这个循环,然后打印出num的值,再使用num += 1(等价于num = num +...
  • 2、执行末尾循环体的次第不同while循环的末尾循环体也是中间循环体里,并中间循环体执行,循环体能否继续运转的条件循环体。do-while循环中间循环体参加末尾循环体,并执行中间循环体时执行...
  • PHP 循环While 循环

    2021-01-03 03:54:29
    do…while – 首先执行一次代码块,然后指定的条件成立时重复这个循环 for – 循环执行代码块指定的次数 foreach – 根据数组每个元素来循环代码块 while 循环 while 循环将重复执行代码块,直到指定的条件不...
  • 前言python有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组。循环里面还有两个比较重要的...
  • c语言中while循环

    千次阅读 2019-04-29 15:11:35
    考查while循环的操作时,遵循的原则: 条件测试是每个循环开始的时候就进入测试,并且这是包含第一个周期的,如果测试第一次的时候就为假,那就不会执行for循环语句里面的东西的。 对条件的测试只一个循环...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,959
精华内容 1,983
关键字:

在while循环中循环条件