2015-04-24 3 views
0
def searcher(): 
    mun = raw_input("Enter name of city> ") 
    pal = mun.replace(' ', '') 
    state = raw_input("Enter State abbreviation> ") 
    city = pal + state 
    city = city.upper() 
    for r in range(sheet.nrows): 
     for c in range(sheet.ncols): 
      cell = sheet.cell(r, c) 
      if cell.value == city: 
       loc = r 
      else: 
       print "not found" 
    cell = sheet.cell(loc, 15) 

Почему последнее if-else пропускает «if», а затем печатает not found бесконечно?Python if-else внутри цикла не работает (пропускает, если)

+0

Это действительно печать бесконечно? Или это 'sheet.nrows' раз' sheet.ncols' просто действительно действительно большое число? Имейте в виду, что «не найден» будет печататься один раз для каждой ячейки, значение которой не равно «городу». Если вы хотите только «не найти», чтобы печатать один раз, то он не входит в петли. – Kevin

+0

Он пропускает блок 'if', потому что' cell.value! = City', предположительно. – alcedine

+0

он пропускает блок if, даже если cell.value == city. И да, я только хочу, чтобы он печатал «не найден» один раз, если и только если нет ячейки == city – MacRiogh

ответ

0

Вы должны иметь переменное состояние как found

# Start out False 
found = False 
for r in range(sheet.nrows): 
    for c in range(sheet.ncols): 
     cell = sheet.cell(r, c) 
     if cell.value == city: 
      loc = r 
      found = True # set it to True if we find the value 
# Now, the for loops are done. 
if not found: 
    print "not found" 
+0

Спасибо за помощь! – MacRiogh

Смежные вопросы