Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 28, 2012 09:57:30

Felixx
Зарегистрирован: 2012-04-04
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

Привет всем, подскажите полалуйста, есть цикл

    
for i in range(CONFIG_MAX + 1):

Как я понимаю это цикл с шагом “CONFIG_MAX + 1” ?
от 0 до … бесконечности? 0_о
Или я вообще не правельно все понел?

Может ли это быть аналогом?

for(int i = 0; i <= CONFIG_MAX + 1; i++)

Отредактировано Felixx (Апрель 28, 2012 09:58:58)

Офлайн

#2 Апрель 28, 2012 09:59:43

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Цикл... с шагом?

>>> for i in range(0,100,12):
...     print i
... 
0
12
24
36
48
60
72
84
96
>>> 



Офлайн

#3 Апрель 28, 2012 10:02:39

XPb14
От:
Зарегистрирован: 2010-09-07
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

Не совсем понял вопрос, но для цикла с шагом есть функция range. Например цикл от нуля, до десяти с шагом два:

for i in range(0, 10, 2):
       ...
Подробнее



Офлайн

#4 Апрель 28, 2012 10:04:39

Felixx
Зарегистрирован: 2012-04-04
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

Это я знаю, но тут 3 переменные, а у меня одна переменная в range

range(4) получается если быть точным.

Офлайн

#5 Апрель 28, 2012 10:08:03

Felixx
Зарегистрирован: 2012-04-04
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

XPb14
Не совсем понял вопрос, но для цикла с шагом есть функция range. Например цикл от нуля, до десяти с шагом два:
for i in range(0, 10, 2):
       ...
Подробнее

Спасибо!

range(4)


Тоесть от 0 до 3 получается?

Отредактировано Felixx (Апрель 28, 2012 10:14:41)

Офлайн

#6 Апрель 28, 2012 10:13:47

XPb14
От:
Зарегистрирован: 2010-09-07
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

Felixx
XPb14
Не совсем понял вопрос, но для цикла с шагом есть функция range. Например цикл от нуля, до десяти с шагом два:
for i in range(0, 10, 2):
       ...
Подробнее

Спасибо!

range(4)


Тоесть от 0 до 3 получается?

Да.
>>> range(4)
[0, 1, 2, 3]

Только тебе же вроде шаг нужен еще?



Отредактировано XPb14 (Апрель 28, 2012 10:14:33)

Офлайн

#7 Апрель 28, 2012 10:14:51

Felixx
Зарегистрирован: 2012-04-04
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?


Тоесть мой код на Java ошибочен получается..
Вот как щас:

 for(int i = 0; i <= CONFIG_MAX + 1; i++)

А надо либо так:
for(int i = 0; i <= CONFIG_MAX; i++)
Либо так:
for(int i = 0; i < CONFIG_MAX + 1; i++)

Я правельно понел?

Офлайн

#8 Апрель 28, 2012 10:16:31

XPb14
От:
Зарегистрирован: 2010-09-07
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

Напиши какой цикл тебе нужен. Что на входе и на выходе?



Офлайн

#9 Апрель 28, 2012 10:20:31

Felixx
Зарегистрирован: 2012-04-04
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

Бр, Я переписываю с Питона на Java.
Вот весь метод..
Питон:

def SUB_COUNT(data):
    j=-1;k=0
    for i in range(CONFIG_MAX + 1):
        if data[i] == -1: k+=1
        if CID_LEVEL(data[i+2]) >= Math.min(2,CONFIG_CLASS_TRANSFER_LEVEL): j+=1
    if j==-1 and k <= CONFIG_MAX: return -2
    return j

Ява:
	private int SUB_COUNT(TIntArrayList data)
	{
		int j = -1, k = 0;
		for(int i = 0; i <= CONFIG_MAX + 1; i++)
		{
			if(data.get(i) == -1)
				k += 1;
			if(Integer.parseInt(CID_LEVEL(String.valueOf(data.get(i + 2)))) >= Math.min(2, CONFIG_CLASS_TRANSFER_LEVEL))
				j += 1;
		}
		if(j == -1 && k <= CONFIG_MAX)
			return -2;
		return j;
	}

Цикл у меня не правельный получился видимо…
Надо либо < только либо +1 убирать. Правельно же?

Отредактировано Felixx (Апрель 28, 2012 10:22:44)

Офлайн

#10 Апрель 28, 2012 10:22:33

XPb14
От:
Зарегистрирован: 2010-09-07
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Цикл... с шагом?

По-моему все правильно написал.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version