使用Python中的while循环同时检索和检查值 使用C++语言编程时,我经常使用以下 > 循环模式。 while ((Data data = GetNewData()) != END) { // Do some processing ProcessData(data); }

使用Python中的while循环同时检索和检查值 使用C++语言编程时,我经常使用以下 > 循环模式。 while ((Data data = GetNewData()) != END) { // Do some processing ProcessData(data); },python,loops,while-loop,Python,Loops,While Loop,我们如何在Python中做同样的事情?下面的方法似乎不起作用 while (data = GetNewData()) != END: # Do some processing ProcessData(data) 那么我可以想到的另一个选择是: while 1: data = GetNewData() if data == END: break # Do some processing using data ProcessData(data) 但是上面看起来并不

我们如何在Python中做同样的事情?下面的方法似乎不起作用

while (data = GetNewData()) != END:
  # Do some processing
  ProcessData(data)
那么我可以想到的另一个选择是:

while 1:
  data = GetNewData()
  if data == END:
    break
  # Do some processing using data
  ProcessData(data)

但是上面看起来并不整洁。有人能推荐一个好方法吗?

在Python中,赋值是一个函数,这就是为什么

while (data = GetNewData()) != END:
    # Do some processing
    ProcessData(data)
不起作用<代码>(data=GetNewData())不能用作值

相反,您可以使用:

循环将在每次迭代中调用
GetNewData()
,并将值分配给
data
,除非它等于
END
。虽然这种语法绝对不像C++的直觉那样,但它确实消除了错误,代码< > =代码>代替了<代码>=< /代码>,反之亦然。

for data in iter(GetNewData, END):
    # Do some processing
    ProcessData(data)