2009-03-06 17 views

risposta

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

range() è per la generazione di array di interi consecutivi

+0

grazie you..i preso range() concetto esiste un metodo built-in? – user46646

+0

metodo integrato per cosa? – SilentGhost

+0

metodo incorporato per scrivere 0 vartec

69

No, non è possibile farlo. range() si aspetta argomenti interi. Se vuoi sapere se x è all'interno di questo intervallo di provare una qualche forma di questo:

print 0.0 <= x <= 0.5 

stare attenti con il limite superiore. Se si utilizza range() è esclusa (range(0, 5) non include 5!)

+1

-1: nessun riferimento alla documentazione e nessun esempio di quale intervallo funzioni realmente. +1: essere educati di fronte a una domanda assurda. –

+14

"Intervallo" è anche una parola inglese, non solo un nome di funzione;) –

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

Per verificare se un certo numero n è nel range compreso indicata con il numero due A e B si esegue una

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

usa la sostituzione >= e <= con > e < verificare se n è nell'intervallo esclusiva indicato con a e b (cioè a e b non sono t se stessi membri della gamma).

L'intervallo produce una progressione aritmetica definita dai due (o tre) argomenti convertiti in numeri interi. Vedi lo documentation. Questo non è quello che vuoi, immagino.

+1

la tua versione alternativa è semplicemente errata – SilentGhost

+2

errata come in errore di concetto, non errore di battitura – SilentGhost

+0

Bene, funziona con numeri interi. Per i float può * funzionare *, a seconda dei valori di been. – Abgan

3

Vecchio fedele:

if n >= a and n <= b: 

E non sembra Perl (scherzo)

+8

Questo non è Pythonic. –

5

Vorrei utilizzare la libreria NumPy, che permetterebbe di fare questo per un elenco di numeri così :

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

per un intervallo compreso tra 0,0 e 5,0: a [numpy.logical_and (0,0 ecoe

+0

Questo è più lento e più complesso della risposta con il punteggio più alto. –

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

Questo non funzionerà per l'esempio dell'OP di 'float's. Vedi la risposta di @ vartec. –

+0

Probabilmente questa è un'implementazione molto lenta. –

Problemi correlati