Python While循环没有预期的行为

Python While循环没有预期的行为,python,while-loop,Python,While Loop,我从Python开始。在当前代码中,A1无限“返回”,就好像没有变量célula的和一样。我怎样才能从A1和A2获得“回报” import xlwings as xw wb = xw.Book(r'C:\Users\Guilh\bin\teste\Contabilização Automática\myproject\myproject.xlsx') sht = wb.sheets[0] def buscar(): linha = '1' célula = 'A' + l

我从Python开始。在当前代码中,A1无限“返回”,就好像没有变量célula的和一样。我怎样才能从A1和A2获得“回报”

import xlwings as xw

wb = xw.Book(r'C:\Users\Guilh\bin\teste\Contabilização Automática\myproject\myproject.xlsx')

sht = wb.sheets[0]

def buscar():

    linha = '1'
    célula = 'A' + linha
    valor_célula = sht.range(célula).value

    while valor_célula != None:
        print('A1')

        linha = int(linha) + 1
        célula = 'A' + str(linha)

    else:
        print('A2')

您忽略了更新valor_célula,因此陷入了while循环

我相信您希望将代码更新为:

def buscar():

    linha = '1'
    célula = 'A' + linha
    valor_célula = sht.range(célula).value

    while valor_célula != None:
        print('A1')

        linha = int(linha) + 1
        célula = 'A' + str(linha)
        valor_célula = sht.range(célula).value  # Update Value

    else:
        print('A2')

使用
if
更改
while
valor_célula
在循环之前只计算一次,因此
while valor_célula!=无:
在您进入该循环后永远为真。您需要在
while
循环中重新计算
valor_célula
,以便它的值可以完美地更改,@roganjosh!!!谢谢