2016-08-07 4 views
0

Я хочу перебирать разные даты, например, с 20/08/2012 по 21/09/2016, но я хочу, чтобы иметь возможность работать в течение всех дней, даже если год тот же. Например, 20/08/2015 по 25/09/2015.Запись петли for в python, которая имеет в ней условие <= (меньшее или равное)?

Теперь, если я пишу это в C, я мог бы просто использовать цикл for и сделать его таким, чтобы он работал, если value of startYear <= value of endYear, но из всех примеров, которые я вижу в Интернете, цикл for работает с функцией диапазона, что означает, что если я дам это те же начальные и конечные значения, которые он просто не выполнит.

Например:

startYear=int(raw_input("Starting year (yyyy):")); 
endYear=int(raw_input("Ending year (yyyy):")); 
for year in range(startYear,endYear,1): 

Поскольку вход поступает от пользователя, у меня нет никакого контроля над ним. Так что если startYear и endYear - оба, то я не смогу сделать его итерацией хотя бы один раз. Обратите внимание, что я не могу «обмануть», изменив значения startYear и endYear, так как позже я использую переменный год для вычислений.

Я хотел бы знать:

  1. Есть ли способ, чтобы запустить цикл в Python, который проверяет меньше или равно?
  2. Каков наилучший способ написать эту простую итерацию?

Благодаря

+0

Какой код вы пробовали и он не работает? – Andrej

ответ

0
  1. Вы можете использовать endYear + 1 при вызове range. Также обратите внимание, что передача 1 аргумента шага является избыточной.

    for year in range(startYear, endYear + 1): 
    
  2. Вы можете использовать объект даты, вместо того, чтобы создать диапазон дат, как в this SO answer.

+0

только для того, чтобы быть ясным, если я запускаю: за год в диапазоне (начало года, конец года + 1) год будет иметь значение startYear, запускается один раз, тогда цикл for завершен Я прав? – SteveR

+0

@SteveR Если 'startYear == endYear', вы правы. – DeepSpace

+0

Спасибо, Я так и не подумал об этом Это именно то, что я хотел, иногда простые вещи просто не появляются перед вами им жаль, что я не могу повлиять на оценку ответов, но я проголосовал за это спасибо – SteveR

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

  • Нет связанных вопросов^_^