elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 05:14  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting (Moderadores: Novlucker, Leo Gutiérrez., EleKtro H@cker)
| | |-+  [Python] ¿Por qué esto no funciona?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python] ¿Por qué esto no funciona?  (Leído 1,847 veces)
p1ch1''

Desconectado Desconectado

Mensajes: 26



Ver Perfil WWW
[Python] ¿Por qué esto no funciona?
« en: 2 Mayo 2011, 15:05 »

Hola a todos

Estoy iniciándome en Python y estoy creando un código que redirige a pdfs online de las soluciones de mi libro de texto del instituto, según los datos del tema, apartado etc (xD), pero bueno, eso es lo de menos.

El caso es que, los temas se dividen en bloques. Esto es relevante porque forma parte del enlace que redirige a los pdfs.

Para que no fuera tan tedioso tener que buscar el bloque, intenté hacer que se definiera el bloque según el tema, echadle un vistazo al trozo de código que he puesto aquí.

Código
#uni => Unidad, tema
#blo => Bloque
uni = raw_input("Numero de la unidad: ")#unidad
print uni
#-----------------------------------
# Asignacion de bloque (segun tema)
#-----------------------------------
   if uni == "1" or "2" or "3":
    blo == "1"
   if uni == "4" or "5" or "6" or "7":
    blo = "2"
   if uni == "8" or "9" or "10":
    blo = "3"
   if uni == "11" or "12" or "13":
    blo = "4"
   if uni == "14" or "15" or "16":
    blo = "5"
   print "El bloque es: " + blo

Le des el valor que le des a la variable uni en el raw_input el bloque siempre queda igual a "5", en vez de cambiar en función de la unidad.
No sé por qué no funciona esta parte, si alguien me pudiera ayudar se lo agradecería.

Saludos!

PD: Por ciertas razones, para definir a uni tiene que ser un raw_input, no puede ser un input.


En línea

Se abre el telón y aparece la SGAE. Se cierra el telón. Se cierra el teatro
lnvisible


Desconectado Desconectado

Mensajes: 456



Ver Perfil
Re: [Python] ¿Por qué esto no funciona?
« Respuesta #1 en: 2 Mayo 2011, 19:53 »

Mira lo que has escrito.

Código
#uni => Unidad, tema
#blo => Bloque
uni = raw_input("Numero de la unidad: ")#unidad
print uni
#-----------------------------------
# Asignacion de bloque (segun tema)
#-----------------------------------
   if uni == ("1" or "2" or "3"):
    blo == "1"
   if uni == ("4" or "5" or "6" or "7"):
    blo = "2"
   if uni == ("8" or "9" or "10"):
    blo = "3"
   if uni == ("11" or "12" or "13"):
    blo = "4"
   if uni == ("14" or "15" or "16"):
    blo = "5"
   print "El bloque es: " + blo


En línea

p1ch1''

Desconectado Desconectado

Mensajes: 26



Ver Perfil WWW
Re: [Python] ¿Por qué esto no funciona?
« Respuesta #2 en: 2 Mayo 2011, 20:14 »

Muchas gracias, vaya error más tonto :xD
Como dije me estoy iniciando en python.

Saludos
« Última modificación: 8 Mayo 2011, 13:59 por !#p1ch1_ '' » En línea

Se abre el telón y aparece la SGAE. Se cierra el telón. Se cierra el teatro
Kase


Desconectado Desconectado

Mensajes: 1.171


programa bonito ¬¬


Ver Perfil WWW
Re: [Python] ¿Por qué esto no funciona?
« Respuesta #3 en: 3 Mayo 2011, 02:50 »

que curioso...

esta evaluacion da true
'a' == ('a' or 'b')

y lo obio seria pensar que

1==(1 or 2)

sin embargo esta segunda no funciona o___0
En línea

p1ch1''

Desconectado Desconectado

Mensajes: 26



Ver Perfil WWW
Re: [Python] ¿Por qué esto no funciona?
« Respuesta #4 en: 8 Mayo 2011, 13:58 »

Una pregunta...

Código
'a' == ('a' or 'b'):
True

Pero...

Código
'a' == ('b' or 'a'):
False

¿Esto por qué es así?
Saludos
En línea

Se abre el telón y aparece la SGAE. Se cierra el telón. Se cierra el teatro
Tzhed\ Kyperf/
Wiki

Desconectado Desconectado

Mensajes: 802


Tzhed > /dev/sda


Ver Perfil WWW
Re: [Python] ¿Por qué esto no funciona?
« Respuesta #5 en: 8 Mayo 2011, 22:13 »

Una pregunta...

Código
'a' == ('a' or 'b'):
True

Pero...

Código
'a' == ('b' or 'a'):
False

¿Esto por qué es así?
Saludos

Seguramente será una burrada...xD ¿pero tendrá algo que ver con que se comparen de izquierda a derecha como en C?
En línea
xassiz~


Desconectado Desconectado

Mensajes: 428



Ver Perfil WWW
Re: [Python] ¿Por qué esto no funciona?
« Respuesta #6 en: 8 Mayo 2011, 23:01 »

Citar
x or y  -   if x is false, then y, else x

He ahí la explicación ;D

Más info
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buscas manuales de python?? Exhale un vistazo a esto!
Scripting
T1g3r 0 519 Último mensaje 4 Septiembre 2006, 19:10
por T1g3r
RFI ¿esto significa q funciona?
Hacking Avanzado
EvilGoblin 1 2,096 Último mensaje 2 Enero 2007, 19:39
por codebreak
[Python] PYthong en winXP no me funciona
Scripting
dec0 1 1,313 Último mensaje 3 Enero 2011, 18:23
por Yeison.Eng
¿Como hacer esto en python?
Scripting
N4C 3 1,274 Último mensaje 29 Marzo 2011, 23:13
por Novlucker
No me funciona este programa de python
Scripting
VanX 4 999 Último mensaje 9 Agosto 2011, 13:37
por VanX
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines