Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 24, 2021 18:21:11

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

Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

Написал так:

 for i in range (24,40+1,1):
    if i==32:
        i=1
    print(i)
    if i==23:
        break

Но не работает.

Пишет:

24
25
26
27
28
29
30
31
1
33
34
35
36
37
38
39
40

Почему не работает? Может кто-то объяснить?
Это как-то связано с инициализацией i?

Отредактировано andant7 (Апрель 24, 2021 18:31:13)

Офлайн

#2 Апрель 24, 2021 18:39:53

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

Цикл for перебирает значения, полученные от твоего range. Подумай, после 32 какое следующее число идет в твоём итераторе range?
Посмотрри содержимое

 list(range (24,40+1,1))
думаю, что сможешь ответить на свой вопрос.

Офлайн

#3 Апрель 24, 2021 18:45:03

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

Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

Rafik
Цикл for перебирает значения, полученные от твоего range. Подумай, после 32 какое следующее число идет в твоём итераторе range?Посмотрри содержимое

Ясно.

А то я цикл for range использовал по аналогии с циклом for из с++

for(int i=24;i<40;i++) 
{
if(i==32)
i=1;

Alert(i);

if(i==23)
break;
}

Офлайн

#4 Апрель 24, 2021 18:46:30

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

Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

Сделал так:


i=24
while i<40:
if i==32:
i=1

print(i)

if i==23:
break
i+=1

Отредактировано andant7 (Апрель 24, 2021 18:49:02)

Офлайн

#5 Апрель 24, 2021 20:43:33

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2751
Репутация: +  184  -
Профиль   Отправить e-mail  

Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

> Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

Если тебе даты нужны, то используй даты, а не числа.

 >>> from datetime import datetime, timedelta
>>> delta = timedelta(days=1)
>>> date = datetime(2021, 3, 1)
>>> while date < datetime(2021, 4, 23):
...          date += delta
...          print(date)
... 
2021-03-02 00:00:00
2021-03-03 00:00:00
2021-03-04 00:00:00
2021-03-05 00:00:00
2021-03-06 00:00:00
2021-03-07 00:00:00



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Апрель 24, 2021 22:03:27

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9874
Репутация: +  854  -
Профиль   Отправить e-mail  

Как создать цикл от 24-го числа прошлого месяца до 23-го числа этого месяца?

  
>>> (list(range(1, 31 + 1)) * 2)[23:41]
[24, 25, 26, 27, 28, 29, 30, 31, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version