elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Duda de if sobre if [Python]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda de if sobre if [Python]  (Leído 5,588 veces)
CaronteGold


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Duda de if sobre if [Python]
« en: 28 Diciembre 2009, 03:29 am »



     Buenas,



  Estoy haciendo una aplicación en Python y me surgió un problema, el caso es que tengo una situación así:

Código
  1. a = int(input("Primer numero: "))
  2. incoga = raw_input("Incognita (si no hay, poner "no": ")
  3. b = int(raw_input("Segundo numero:  "))
  4. incogb = raw_input("Incognita (si no hay, poner "no"): ")
  5. pot = int(raw_input("Potencia: "))
  6.  
  7.  

  Y después tengo :

 if incoga == "no" and incogb == "no":    

    if pot == "4":
         print ....................
    if pot == "5":
         print .........


   El caso es que tengo un if dentro de otro if, pues el if de dentro --->  if pot == "4"  , no se ejecuta. Pero la variable está bien comprobada arriba, ya que si en lo de -- > if incoga.....,  debajo pongo un else, al ser incoga == no y incogb == no, no se ejecuta, pero el problema es que no reconoce el sub if.

   No sé si me he explicado bien, la  cosa es que este punto :  if incoga == "no" and incogb == "no": , se ejecuta, pero cuando llega justo debajo, pasa de largo, no da error ni nada, en la salida del programa sale como en blanco.

  Lo que no se ejecuta es esto:

 if pot == "4":
         print ....................
    if pot == "5":
         print .........




  Puedo pensar que esos sub "if" los tengo que agrupar o no sé... si alguien sabe como lo puedo arreglar lo agradecería.

   Saludos.
 


« Última modificación: 28 Diciembre 2009, 04:16 am por Leo Gutierrez. » En línea

08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #1 en: 28 Diciembre 2009, 03:38 am »

Citar
pot = int(raw_input("Potencia: "))
la variable pot contiene un entero...

y vos la estas comparando con una cadena .... sacale las comillas ...
Código:
if pot == 4:


En línea

CaronteGold


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #2 en: 28 Diciembre 2009, 03:39 am »


    Muchas gracias, pues estuve ahí bastante tiempo y no dí con la solución, muchas gracias    ;D ;D

   EDITO:  Una cosa, si son letras también quito las comillas ¿? , como en el caso de " no ".
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


Swif EME


Ver Perfil WWW
Re: Duda de if sobre if [Python]
« Respuesta #3 en: 28 Diciembre 2009, 04:06 am »


    Muchas gracias, pues estuve ahí bastante tiempo y no dí con la solución, muchas gracias    ;D ;D

   EDITO:  Una cosa, si son letras también quito las comillas ¿? , como en el caso de " no ".

Nones! Como todo lenguaje de programacion, cuando se compara un INT no se pone las comillas, pero cuando comparamos un String si hay que ponersela.

Ademas de que como no estas ingresando un Tipo de Datos Entero, le cambias el
Código:
a = int(input("Primer numero: "))
Por:
Código:
a = raw_input("Ingrese Su Nombre")

Por Ejemplo:
Código:
# Coder Shell Root

a = raw_input("Ingrese Su Nombre")

if a == "Shell Root":
    print "Hola Eres Shell Root"
else:
    print "Eres un Desconocido"

Saludos!
« Última modificación: 28 Diciembre 2009, 04:07 am por alex19910218 » En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
CaronteGold


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #4 en: 28 Diciembre 2009, 04:32 am »


    Muchas gracias, pues estuve ahí bastante tiempo y no dí con la solución, muchas gracias    ;D ;D

   EDITO:  Una cosa, si son letras también quito las comillas ¿? , como en el caso de " no ".

Nones! Como todo lenguaje de programacion, cuando se compara un INT no se pone las comillas, pero cuando comparamos un String si hay que ponersela.

Ademas de que como no estas ingresando un Tipo de Datos Entero, le cambias el
Código:
a = int(input("Primer numero: "))
Por:
Código:
a = raw_input("Ingrese Su Nombre")

Por Ejemplo:
Código:
# Coder Shell Root

a = raw_input("Ingrese Su Nombre")

if a == "Shell Root":
    print "Hola Eres Shell Root"
else:
    print "Eres un Desconocido"

Saludos!


   En el caso de "a" "b" y "pot", si lo pido, por eso pongo el int, pero luego en la variable, como son letras no lo pongo.

    Saludos.
   
En línea

08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #5 en: 28 Diciembre 2009, 15:12 pm »

EDITO:  Una cosa, si son letras también quito las comillas ¿? , como en el caso de " no ".
pues no ... por que la variable inconga y incongb son cadenas por lo tanto debes comparlos con cadenas ... las comillas encerrado cualquier caracter significa que se trata de una cadena por lo tanto -> "no" es una cadena lodejas asi como esta....

por cierto una pequeña observacion...
Citar
a = int(input("Primer numero: "))
no hace falta hacer int(input()), ya que de porsi input() retorna un numero entero no hace falta convertirlo con int()
por eso cuando pidas que el usuario introduzca un numero entero usa input("introduce el numero....") y cuando quieras que introduzca una cadena usa raw_input() y te ahorras de hacer las conversiones ...
En línea

CaronteGold


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #6 en: 28 Diciembre 2009, 15:51 pm »



   Pues creo que eso lo había cambiado porque no me funcionaba así, no estoy muy seguro, o igual tenía raw_input , no sé. De todas formas muchas gracias, y tengo una duda que no sé si podrás resolverme :  la cosa es que quiero mostrar dos variables unidas, una será un número y otra será la incógnita ( letra ), de manera que pueda quedar así:  350x,  o 350z, según la letra que ponga el usuario.

    Saludos.
En línea

08l00D

Desconectado Desconectado

Mensajes: 168


Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #7 en: 28 Diciembre 2009, 16:24 pm »

ahi si tenes que usar la funcion str() para convertir el entero en cadena para poder concatenarla (unirla) con la otra cadena ... aca te pongo un ejemplo:
Código
  1. a = int("Ingrese el numero: ")
  2. incognita = raw_input('Incognita (si no hay, poner "no": ')
  3.  
  4. print str(a) + incognita
  5.  
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #8 en: 28 Diciembre 2009, 17:07 pm »

Solo un pequeño matiz a esto ...


Citar
a = int(input("Primer numero: "))
no hace falta hacer int(input()), ya que de porsi input() retorna un numero entero no hace falta convertirlo con int()
por eso cuando pidas que el usuario introduzca un numero entero usa input("introduce el numero....") y cuando quieras que introduzca una cadena usa raw_input() y te ahorras de hacer las conversiones ...

Si mal no recuerdo CaronteGold esta con Python 2.6, y en ese caso esta bien la apreciación, pero si paso a la versión 3.x eso ya no es así, raw_input dejo de existir y paso a ser solamente input, y este devuelve un string, así que en ese caso estaría bien la conversión.

:http://docs.python.org/3.1/whatsnew/3.0.html (PEP3111)
:http://docs.python.org/3.1/library/functions.html#input

Saludos

En línea

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
CaronteGold


Desconectado Desconectado

Mensajes: 339



Ver Perfil
Re: Duda de if sobre if [Python]
« Respuesta #9 en: 28 Diciembre 2009, 17:17 pm »

Solo un pequeño matiz a esto ...


Citar
a = int(input("Primer numero: "))
no hace falta hacer int(input()), ya que de porsi input() retorna un numero entero no hace falta convertirlo con int()
por eso cuando pidas que el usuario introduzca un numero entero usa input("introduce el numero....") y cuando quieras que introduzca una cadena usa raw_input() y te ahorras de hacer las conversiones ...

Si mal no recuerdo CaronteGold esta con Python 2.6, y en ese caso esta bien la apreciación, pero si paso a la versión 3.x eso ya no es así, raw_input dejo de existir y paso a ser solamente input, y este devuelve un string, así que en ese caso estaría bien la conversión.

:http://docs.python.org/3.1/whatsnew/3.0.html (PEP3111)
:http://docs.python.org/3.1/library/functions.html#input

Saludos





      Sigo con la 2.6  ;D .


   He puesto en una int(input... , y en la otra he puesto, int(raw_input.. , entonces en la primera sería innecesario el int, pero en la 2da es necesario, cierto que al poner int, con input sería alargar más el code.

  Lo he dejado así:

  a = input("Primer numero: ")
incoga = raw_input("Incognita (si no hay, poner guión -): ")
b = input("Segundo numero:  ")
incogb = raw_input("Incognita (si no hay, poner guión -): ")
pot = input("Potencia: ")
« Última modificación: 28 Diciembre 2009, 17:19 pm por CaronteGold » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda sobre Python Keylogger « 1 2 »
Scripting
mastertux 15 7,808 Último mensaje 3 Abril 2011, 18:38 pm
por 08l00D
(Python)duda sobre color de texto y captura de teclas.
Scripting
S3kh 0 4,201 Último mensaje 2 Septiembre 2011, 00:42 am
por S3kh
duda sobre python y perl
Programación General
Drewermerc 2 1,035 Último mensaje 26 Junio 2014, 01:51 am
por Drewermerc
Duda sobre SharpDevelop y Python (asuntos legales :3)
Programación General
Noxware 3 2,136 Último mensaje 6 Noviembre 2014, 07:08 am
por El Benjo
Duda sobre programación (C, C++, Python, etc...)
Programación C/C++
shaddy4ever 1 1,037 Último mensaje 5 Agosto 2016, 13:47 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines