-
python循环变量赋值_Python在while循环中的条件期间为变量赋值
2021-01-13 21:59:10我想在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循环中根据变化的条件来控制特效播放开关
2016-11-15 14:02:22在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; } }
-
js 在while循环判断条件中进行赋值语句操作
2020-08-14 10:58:16突然想起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:25else 可以在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循环中可以在线程接到通知后再一次判断条件
2018-02-15 07:14:00wait()方法写在while循环中可以在线程接到通知后再一次判断条件 synchronized public String pop() { String returnValue = ""; try { while(list.size()==0) { System.out.println("pop... -
在while循环中使用boolean结果来显示条件结果
2011-10-19 23:41:58<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']... -
python中while嵌套循环_python中的while循环
2021-01-11 22:16:37程序的三大流程在程序开发中,一共有三种流程方式:顺序 —— 从上向下,顺序执行代码 分支 —— 根据条件判断,决定执行代码的 分支 循环 —— 让 特定代码 重复 执行02. while 循环基本使用循环的作用就是让 指定... -
js中while死循环语句_循环语句-while循环
2021-03-03 15:21:26(例如,求若干数的和需要重复做加法,求班级全部学生成绩需要重复做加法)循环的分类while循环do…while循环for循环while循环while循环的语法结构执行的顺序:先判断表达式,表达式成立就执行循环语句,直到表... -
python整数作为条件_在while循环中字符串和整数作为多个条件的问题?(Python)...
2021-01-15 04:34:55我是python语言的初学者,在编写包含while循环的代码时遇到了一些问题,我想用一个未被检查的条件检查多个条件,以及字符串/整数的问题。在最初的代码(第二个代码示例)是我第一次写的,但它的问题是,当一个键满足第... -
java编写猜数字游戏中,解决在while循环内部使while有条件的实行循环。
2018-09-15 11:40:49在用java编写一个猜数字游戏中,想使得可以自主的是否继续游戏。 于是我想到了运用标号跳转: package 猜数字游戏测试; import java.util.Random; import java.util.Scanner; public class 测试 { public ... -
java中while循环_Java中的do-while循环——通过示例学习Java编程(11)
2021-01-19 11:18:32作者:CHAITANYA SINGH来源:通过示例学习...do-while循环类似于while循环,但是它们之间有一个区别:在while循环中,循环条件在循环的主体执行之前进行评估,而在do-while循环中,循环条件在循环的主体执行之后再进... -
while循环和doWhile循环
2017-08-02 20:57:40在while循环中的小括号中,是一个条件判断,当条件判断的结果是true的时候才会进行循环体中的内容,当循环体执行一遍之后,在返回到条件处判断,如果符合条件,继续运行循环体,如果不符合,直接运行while循环之外的代码 ... -
在java中 while 循环的使用
2021-01-20 17:02:25while特点:先判断在执行 eclipse快捷键 输出语句:alt+/ man方法:alt+/ 导包:ctrl+shift+o while结构死循环 写法1:while(true){ //循环操作 } 写法2:while(条件表达式){ //循环操作 //此处没有迭代变量。... -
while循环嵌套,不满足外层循环条件时跳出内层循环
2020-04-24 12:41:08描述:双层while循环时,想在不满足外层循环条件时跳出内层循环 上面代码中的第二个方法中,如果内层循环中两个while循环不添加条件left<right。使用debug的时候,当left指向t,right指向c时,此时,满足外层... -
python中for循环和while循环的区别_python的for循环和while循环
2020-11-24 00:12:17不同点在于,for循环是在序列穷尽时停止,while循环是在条件不成立时停止。1、for循环是需要先设定循环的次数(n),然后再执行属于for循环语句的n次。基本构造是for 元素 in 序列:statement举例来说,我们编辑一个... -
do matlab的 while循环_JavaScript中的while循环
2021-01-09 21:43:41在 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 判断条件: # 注意冒号 ... -
python while两个条件_Python中嵌套while循环的两个条件?
2021-02-03 01:24:27目前,我已经将其设置为,如果用户忽略了为三个输入中的任何一个输入输入一个值,它将使用while循环返回一个错误消息。那很好。在但是,我还想设置它,使半径不能小于或等于零。我使用了嵌套的while循环。这是我的... -
while循环,条件中定义变量和循环体变量一致时出现问题分析
2019-01-30 17:24:25问题:做底层文件copy实验时,为得到read write的返回值在,循环条件中直接定义了 while(int readnum=read(in,&amp;amp;c,1)), 部分代码如下: in=open(“file.in”,O_RDONLY,0666); out=open(“file.... -
java中 while循环和 do while循环的区别| while与do while的区别
2020-01-14 23:06:28所以while循环的条件一般通过变量来进行控制,在循环体内对变量值做相应改变,以便在适当的时候退出,避免陷入死循环。 int i =1; while(i <5){ //业务逻辑 if(i%2>0){ System.out.print(“i是偶数”) }... -
python中for循环与while循环的区别_for循环和while循环的区别及用法
2020-12-14 03:31:35展开全部区别:1、使用...2、两种循环在构造死循环时的区别:while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件如PC-L... -
循环结构:while循环;do-while循环;for循环
2021-01-03 20:32:10条语句,直到遇到终止条件为止循环语句也称迭代语句,在Java语言中存在的while、for和do-while循环语句。 while循环 while是Java中最基本的循环语句,满足条件才执行循环体,如果不满足条件则不执行。所以有可能循环... -
while循环_while循环简介
2020-12-12 13:31:36写在前面:一个真正温柔的人,并不是因为Ta从来没有吃过苦,而是经历过生活的残酷和艰辛后依然能够保持一颗...while循环中num小于等于5就会继续执行这个循环,然后打印出num的值,再使用num += 1(等价于num = num +... -
java while do循环_c语言中,while 和 do while 循环的主要区别是( )
2021-03-06 05:53:552、执行末尾循环体的次第不同while循环的末尾循环体也是在中间循环体里,并在中间循环体中执行,循环体能否继续运转的条件也在循环体中。do-while循环是在中间循环体中参加末尾循环体,并在执行中间循环体时执行... -
PHP 循环 – While 循环
2021-01-03 03:54:29do…while – 首先执行一次代码块,然后在指定的条件成立时重复这个循环 for – 循环执行代码块指定的次数 foreach – 根据数组中每个元素来循环代码块 while 循环 while 循环将重复执行代码块,直到指定的条件不... -
python while循环语句-谈谈Python中的while循环语句
2020-11-01 12:47:15前言python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组。循环里面还有两个比较重要的... -
c语言中while循环
2019-04-29 15:11:35在考查while循环的操作时,遵循的原则: 条件测试是在每个循环开始的时候就进入测试,并且这是包含第一个周期的,如果测试第一次的时候就为假,那就不会执行for循环语句里面的东西的。 对条件的测试只在一个循环...