Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 14, 2017 22:12:48

netvis
Зарегистрирован: 2017-11-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл for - как добавить счетчик

Здравствуйте,
Вроде бы простой вопрос. Но что-то не пойму как записать.
Читаю записи из базы данных. СУБД вернула набор, я прохожу его построчно и вывожу на экран. Рядом хочу вывести цифру - номер строки и вывести только 5 первых строк:

 cursor = db.cursor()
         try:
             cursor.execute(sql)
             data = cursor.fetchall()
             i = 0
      
             for row in data:
                  if i >= 5: # не пойму почему тут переменная всегда 0. Во всех языках программирования было по-другому же...
                       break
                  else:
                       ++i

Почему переменная i так и остается со старым значением внутри цикла перебора списка? И разве на Питоне нельзя писать, например: z = ++i + 10?
Спасибо.

Офлайн

#2 Ноя. 14, 2017 22:16:59

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Цикл for - как добавить счетчик

 else:
      i += 1



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Ноя. 14, 2017 22:22:13

Romissevd
От: Счастье
Зарегистрирован: 2015-03-01
Сообщения: 533
Репутация: +  76  -
Профиль   Отправить e-mail  

Цикл for - как добавить счетчик

 i += 1
или
 i = i + 1

Офлайн

#4 Ноя. 14, 2017 22:40:54

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Цикл for - как добавить счетчик

 for index, row in enumerate(data):



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#5 Ноя. 14, 2017 22:43:50

netvis
Зарегистрирован: 2017-11-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл for - как добавить счетчик

Не, это понятно, спасибо.
Просто в чем вопрос-то был: я перебираю список, как попутно инкрементировать переменную?
То есть у меня в данном коде, почему-то, переменная i = 0 всегда:

 data = [] #СУБД вернула список ...
for row in data:
   i = i + 1
   print (str(i) + ". X=" + row['X'] + ", Y=" + row['Y']);

Почему переменная i не меняется с каждой итерацией? Я что-то не понял?

Отредактировано netvis (Ноя. 14, 2017 22:44:22)

Офлайн

#6 Ноя. 14, 2017 22:45:05

netvis
Зарегистрирован: 2017-11-06
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл for - как добавить счетчик

JOHN_16
for index, row in enumerate(data):
Во, да, спасибо! Пока писал - ответили…

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version