2009-03-06 12 views

Répondre

25
print 'yes' if 0 < x < 0.5 else 'no' 

range() est pour générer des tableaux d'entiers consécutifs

+0

merci you..i mais j'ai concept de gamme() est-il une méthode intégrée? – user46646

+0

méthode intégrée pour quoi? – SilentGhost

+0

méthode intégrée pour écrire 0 vartec

69

Non, vous ne pouvez pas le faire. range() attend des arguments entiers. Si vous voulez savoir si x est à l'intérieur de cette plage essayer une certaine forme de ceci:

print 0.0 <= x <= 0.5 

Soyez prudent avec votre limite supérieure. Si vous utilisez range() il est exclu (range(0, 5) ne comprend pas 5!)

+1

-1: Aucune référence à la documentation et aucun exemple de ce que la gamme fait vraiment. +1: Être poli face à une question absurde. –

+14

"Range" est aussi un mot anglais, non seulement un nom de fonction;) –

4
>>> s = 1.1 
>>> 0<= s <=0.2 
False 
>>> 0<= s <=1.2 
True 
3

Pour vérifier si un certain nombre n est dans la gamme inclusive notée par les deux nombres a et b que vous faites soit

if a <= n <= b: 
    print "yes" 
else: 
    print "no" 

utiliser le remplacer >= et <= avec > et < pour vérifier si n est dans la gamme exclusive notée a et b (c.-à-a et b ne sont pas t eux-mêmes membres de la gamme).

La plage produira une progression arithmétique définie par les deux (ou trois) arguments convertis en nombres entiers. Voir le documentation. Ce n'est pas ce que tu veux, je suppose.

+1

votre version alternative est tout simplement carrément faux – SilentGhost

+2

tort comme dans le concept-faux, pas faute de frappe – SilentGhost

+0

Eh bien, cela fonctionne pour les entiers. Pour les flottants, il peut fonctionner, en fonction des valeurs de b et n. – Abgan

3

fidèle Vieux:

if n >= a and n <= b: 

Et il ne ressemble pas à Perl (blague)

+8

Ce n'est pas Pythonic. –

5

J'utiliser la bibliothèque numpy, qui vous permettra de le faire pour une liste de numéros ainsi :

from numpy import array 
a = array([1, 2, 3, 4, 5, 6,]) 
a[a < 2] 
+1

pour une plage comprise entre 0,0 et 5,0: a [numpy.logical_and (0,0 ecoe

+0

Cette opération est plus lente et plus complexe que la réponse la mieux notée. –

3
if num in range(min, max): 
    """do stuff...""" 
else: 
    """do other stuff...""" 
+0

Cela ne fonctionnera pas pour l'exemple de 'float' de l'OP. Voir la réponse de @ vartec. –

+0

Probablement, c'est une implémentation très lente. –

Questions connexes