首页 > 解决方案 > 没有循环if语句的for循环

问题描述

这是我的代码:

import openpyxl


wb = openpyxl.load_workbook("Bok1.xlsx", data_only=True)
ws = wb["Blad1"]

n = 0

for row in ws['A1:A100']:
    for cell in row:
        if cell.value == "Konto":
            for hej in range(13):
                n+=1
                konto = cell.offset(row=n).value
                if konto == None or isinstance(konto, str) == True:
                    pass
                else:
                     if konto == 306888 or konto == 306889:
                        #derp = input("derpderpderp?: ")
                        #if derp == "y":
                            if konto == 306888 or konto == 306889:
                                kst = cell.offset(row=n, column = 1).value
                                proj = cell.offset(row=n, column = 2).value
                                vht = cell.offset(row=n, column = 3).value
                                motp = cell.offset(row=n, column = 4).value
                                fin = cell.offset(row=n, column = 5).value
                                text = cell.offset(row=n, column = 8).value
                                belopp = cell.offset(row=n, column = 9).value
                                print(konto)
                                print(kst)
                                print(proj)
                                print(vht)
                                print(motp)

正如您在代码中的 # 所看到的,我有一个“依赖于”循环的输入。我怎样才能编写此代码,使其不会循环并在每次迭代时都要求输入?

标签: python-3.xfor-loop

解决方案


我要做的是保留一个计数器:

n = 0
cnt=1         # counter

for row in ws['A1:A100']:
       # continue with your code

然后,当您输入时:

if cnt==1:
   derp = input("derpderpderp?: ")
   cnt += 1
   if derp == "y":
      #continue with your code

这样,您可以确保您的输入仅在第一次使用时被采纳。


推荐阅读