[Python-es] curioso comportamiento de if elif
Alvaro Manrique
sanreikaj.foros en gmail.com
Sab Feb 25 18:55:25 CET 2012
Siempre se hace primero el parsing y luego es que se ejecuta, no es que
esta evaluando las dos en tiempo de ejecución
El 25/02/2012 13:22, "mauricio rodriguez" <rodriguez.mauricio55 en gmail.com>
escribió:
> estamos de acuerdo, creo que no me estoy haciendo entender
>
> mi problema no es con el if esta resuelto el asunto. Lo que sucede es que
> no comprendo porque python evalúa la sentencia de una condición que no
> se cumple.
>
> Por lo visto el interprete evalúa siempre la sintaxis y si esta esta
> equivocada detiene la ejecución del script
>
> bueno ese parece ser el comportamiento solo quería saber por que,
> supongo que es cuestión del diseño del lenguaje.
>
> En php digamos que no se puede imprimir nada luego de un header(Location:
> xxx), pero si lo metes dentro de un if esleif no evaluara el print o echo
> dentro del elseif en tanto se cumpla la condición del if .
>
> esa es mi curiosidad ..
>
> espero haberme explicado bien
>
>
>
>
> El 26 de febrero de 2012 15:28, Manuel A. Estevez Fernandez <
> stvzito en gmail.com> escribió:
>
>> [root en stvz stvz]# python3
>> Python 3.2.1 (default, Jul 11 2011, 18:55:33)
>> [GCC 4.6.1 20110627 (Red Hat 4.6.1-1)] on linux2
>>
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> var = '1'
>> >>> if var == '1':
>> ... print('algo')
>>
>> ... elif var =='2':
>> ... print('otra cosa')
>> ...
>> algo
>> >>>
>>
>>
>> El 25/02/12 11:30, mauricio rodriguez escribió:
>>
>> [mcun en RUN ~] <$> python
>> Python 3.2.2 (default, Nov 21 2011, 16:50:59)
>> [GCC 4.6.2] on linux2
>> Type "help", "copyright", "credits" or "license" for more information.
>> >>> var = '1'
>> >>> if var == '1'
>> File "<stdin>", line 1
>> if var == '1'
>> ^
>> SyntaxError: invalid syntax
>> >>> var = '1'
>> >>> if var == '1':
>> ... print ('algo')
>> ... elif var == '2':
>> ... print 'otra cosa'
>> File "<stdin>", line 4
>> print 'otra cosa'
>> ^
>> SyntaxError: invalid syntax
>>
>> ?¿?¿
>>
>> evalúa la sentencia de elif ¿?
>>
>>
>> El 25 de febrero de 2012 15:26, Jhonny5 <jhonny5 en gmail.com> escribió:
>>
>>> Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
>>> [GCC 4.5.2] on linux2
>>> Type "help", "copyright", "credits" or "license" for more information.
>>> >>> var = '1'
>>> >>> if var == '1':
>>> ... print ('algo')
>>> ... elif var == '2':
>>> ... print 'otra cosa'
>>> ...
>>> algo
>>>
>>>
>>>
>>> saludos,
>>> j.
>>>
>>> 2012/2/25 mauricio rodriguez <rodriguez.mauricio55 en gmail.com>
>>>
>>>> disculpen me equivoque al tipear var es un string
>>>>
>>>> el ejemplo seria así
>>>>
>>>> var = '1'
>>>> if var == '1':
>>>> print ( 'algo')
>>>> elif var == '2':
>>>> print 'otra cosa '
>>>>
>>>> el error me lo marca en elif ya que print lo pues sin paréntesis y
>>>> corro la versión 3 de python
>>>>
>>>> de allí mi pregunta porque evalúa la sentencia de elif si
>>>> la condición de elfi no se cumple
>>>>
>>>> gracias por su tiempo
>>>>
>>>>
>>>>
>>>> El 25 de febrero de 2012 15:17, Juan José Gómez Romera <
>>>> jjgomera en gmail.com> escribió:
>>>>
>>>>>
>>>>>
>>>>> El 25 de febrero de 2012 17:54, Alvaro Manrique <
>>>>> sanreikaj.foros en gmail.com> escribió:
>>>>>
>>>>> Otra cosa, el print puedes dejarlo sin los paréntesis, no va a
>>>>>> cambiar el funcionamiento
>>>>>> solo que es mas acostumbrado sin ellos.
>>>>>>
>>>>>>
>>>>> Si usas python 3 no es cuestión de costumbre, es obligatorio usarlos
>>>>> ;)
>>>>>
>>>>> _______________________________________________
>>>>> Python-es mailing list
>>>>> Python-es en python.org
>>>>> http://mail.python.org/mailman/listinfo/python-es
>>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Python-es mailing list
>>>> Python-es en python.org
>>>> http://mail.python.org/mailman/listinfo/python-es
>>>> FAQ: http://python-es-faq.wikidot.com/
>>>>
>>>>
>>>
>>>
>>> --
>>> talueee.com
>>>
>>> Linux User #236965 (linuxcounter.net)
>>> key: http://talueee.com/gpg/jhonny5.asc
>>> fingerprint = 9ACC 8E56 F40B 27A5 977C 49E6 F896 511E 657A E933
>>> Po fueno, po fale, po malegro.
>>>
>>>
>>> _______________________________________________
>>> Python-es mailing list
>>> Python-es en python.org
>>> http://mail.python.org/mailman/listinfo/python-es
>>> FAQ: http://python-es-faq.wikidot.com/
>>>
>>>
>>
>>
>> _______________________________________________
>> Python-es mailing listPython-es en python.orghttp://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20120225/26b12830/attachment.html>
Más información sobre la lista de distribución Python-es