[python] Cadena de códigos

Iniciado por Meta, 4 Octubre 2010, 14:03 PM

0 Miembros y 4 Visitantes están viendo este tema.

Meta

Hola gente:

Quiero poner de una pasada en el compilador netbeans una fila muy larga de código.

if a == 125 or b != 45 or c <= 345 or c == 175 or d >= 4578 or e <= 35:

Para reducir e intentado ponerlo de esta manera.

if a == 125 or b != 45 or c <= 345 or
c == 175 or d >= 4578 or e <= 35:

No funciona.

if a == 125 or b != 45 or c <= 345 +
or c == 175 or d >= 4578 or e <= 35:

No funciona.

if a == 125 or b != 45 or c <= 345,
or c == 175 or d >= 4578 or e <= 35:

Tampoco funciona.

¿Existe algún método para que funcione?

Saludo.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

No que yo sepa, pero no por netbeans sino por el tema de la indentación.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Meta

Que raro que no se pueda, ya que otros lenguajes si se puede como C/C++/C#, etc...

Por ahora estaba hasta haciendo esto y tampoco es así.

Código (python) [Seleccionar]
# Introducir datos a la variable.
Le = str(raw_input('Introduce cualquier carácter: '))

#
if Le == 'A':
    if Le == 'B':
        if Le == 'C':
            if Le == 'D':
                if Le == 'E':
                    if Le == 'F':
                        if Le == 'G':
                            if Le == 'H':
                                if Le == 'I':
                                    if Le == 'J':
                                        if Le == 'K':
                                            if Le == 'L':
                                                if Le == 'M':
                                                    if Le == 'N':
                                                        if Le == 'Ñ':
                                                            if Le == 'O':
                                                                if Le == 'P':
                                                                    if Le == 'Q':
                                                                        if Le == 'R':
                                                                            if Le == 'S':
                                                                                if Le == 'T':
                                                                                    if Le == 'U':
                                                                                        if Le == 'V':
                                                                                            if Le == 'X':
                                                                                                if Le == 'Y':
                                                                                                    if Le == 'Z':
                                                                                                        print 'Es una MAYÚSCULA.'
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

#3
Es que en otros lenguajes no es obligatorio el indentar, sin embargo en python donde no lo hagas tienes warnings por todos lados :P

Sobre ese código, fijate que no va a funcionar nunca porque tienes los IF anidados, por lo cual en primera instancia se pregunta si es 'A', así que si no es 'A' entonces ya termina, pero si es 'A' luego preguntará si es 'B', y si es 'A' es imposible que también sea 'B', por lo que también termina.

No puedes hacer uso de otras funciones como ord por ejemplo? Sino a base de elif

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

d(-_-)b

yo de python no entiendo ni pollo, pero creo que se lo que intentas hacer.

te pongo un ejemplo  en Delphi es algo similar, se que este subforo es de scripting, pero talvez este pequeño ejemplo te sirva de ayuda.

Código (delphi) [Seleccionar]
program project;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
Word: Char;

begin
   Writeln('Inserte una leta');
   Readln(Word);

   if (Word = 'A') then
      Writeln('Inserto la letra en Mayusculas')

   else if (Word = 'a') then
   Writeln('Inserto la letra en Minusculas')

  else
   Writeln('Letra no valida...');
   Readln;
end.


saludos...
Max 400; caracteres restantes: 366

Meta

#5
Es así como dices en Pascal. Claro que son todo el abecesario a-Z y A-Z. ¿A que ya no es tan fácil?

Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

Yo más bien diría que fácil es, no es más que copiar el IF una vez por cada letra, el problema es que no es ni bonito ni cómodo :P

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Meta

Lo he intentado hacerlo así.

Código (python) [Seleccionar]

# Introducir datos a la variable.
Letra = str(raw_input('Introduce cualquier carácter: '))

#
if Letra <= 'Z':
    print 'Es una MAYÚSCULA.'
if Letra <= 'z':
    print 'Es una MINÚSCULA.'


Si pulso 'T', me suelta este resultado activándome los dos print.
Citar
Introduce cualquier carácter: T
Es una MAYÚSCULA.
Es una MINÚSCULA.


Si pulso 't' me funciona bien. ¿Qué es lo que pasa?
Citar
Introduce cualquier carácter: t
Es una MINÚSCULA.
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/

Novlucker

Pasa que tienes las comparaciones por separado.
El valor de 'T' es 84 y el de 't' es 116, por lo que cuando realizas la comparación con 'T', se cumple que es menor que 90 (Z) y 122 (z), por lo que imprime dos veces.
Mejor así ...
Código (python) [Seleccionar]
Letra = raw_input('Introduce cualquier caracter: ')
#el raw_input de por si devuelve una cadena

if Letra >= 'A' and Letra <= 'Z':
print 'Es una MAYUSCULA'

if Letra >= 'a' and Letra <= 'z':
print 'Es una MINUSCULA'


No había puesto eso antes porque no sabía si podías solucionar el problema de esa manera (por lo mismo pregunté por ord)

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

Meta

Gracias.

Ah, otra cosa, la cadena ya la averigüé. Es así:

Código (python) [Seleccionar]
if a == 125 or b != 45 or c <= 345\
or c == 175 or d >= 4578 or e <= 35:


Es bueno saber esto.



Pues tienes razón.

Lo de ord. ¿No será or? (sin la d al final.)
Tutoriales Electrónica y PIC: http://electronica-pic.blogspot.com/