2016-08-07 1 views
0

Je veux parcourir des dates différentes, par exemple du 20/08/2015 au 21/09/2016, mais je veux pouvoir courir tous les jours même si l'année est la même. Par exemple du 20/08/2015 au 25/09/2015. Maintenant, si j'écris ceci en C, je pourrais juste utiliser une boucle for et le faire fonctionner de manière à value of startYear <= value of endYear, mais d'après tous les exemples que je vois en ligne, la boucle for fonctionne avec la fonction range, ce qui signifie que si je donne Si les valeurs de début et de fin sont identiques, il ne fonctionnera tout simplement pas.Écrire une boucle for dans python qui a la condition <= (plus petit ou égal) en elle?

Par exemple:

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

Comme l'entrée est de l'utilisateur que je n'ai pas le contrôle. Donc si startYear et endYear sont tous les deux 2015 je ne peux pas le faire recommencer une seule fois. Notez que je ne peux pas "tricher" en changeant les valeurs de startYear et endYear car j'utilise l'année variable pour les calculs plus tard.

J'aimerais savoir:

  1. Y at-il un moyen d'exécuter une boucle en Python qui vérifie inférieure ou égale?
  2. Quelle est la meilleure façon d'écrire cette simple itération?

Merci

+0

Quel est le code que vous avez essayé et qui ne fonctionne pas? – Andrej

Répondre

0
  1. Vous pouvez utiliser endYear + 1 lorsque vous appelez range. Notez également que le passage de 1 à l'argument step est redondant.

    for year in range(startYear, endYear + 1): 
    
  2. Vous pouvez utiliser des dates objet au lieu afin de créer une gamme dates, comme dans this SO answer.

+0

juste pour être clair si je cours: pour année dans la gamme (startYear, endYear + 1) année aurait seulement une valeur de startYear, courir une fois alors la boucle for est terminée suis-je correct? – SteveR

+0

@SteveR Si 'startYear == endYear' vous avez raison. – DeepSpace

+0

Merci, je ne pensais pas comme ça c'est exactement ce que je voulais parfois les choses faciles ne apparaissent pas en face de vous je suis désolé je ne peux pas affecter le score des réponses, mais je l'ai voté merci – SteveR