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

 

 


Tema destacado: Curso de javascript por TickTack


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

Desconectado Desconectado

Mensajes: 51


Somos ignorantes, pero no todos ignoramos lo mismo


Ver Perfil
Duda sobre and en script Python
« en: 13 Agosto 2018, 19:10 pm »

Hola, tengo un script el cual es este:

Código:
contador=0
Email=input("Introduce tu email: ")

for a in Email:

if(a=="@" or a=="."):
contador=contador+1

if contador==2:
print("Email correcto")
else:
print("Email incorrecto")

El caso es que en el if del bucle for puse un "and" y cuando introducía el valor de Email, añadía un gmail con @ y el punto: hola@gmail.com

Me tendría que decir el programa que el gmail estaba bien con el "and", pero no fue así. Cambié el "and" por un "or" y al final me dijo que estaba bien.

Se supone que con el "and" me tendría que decir que el email estaba bien, ya que con "and" declaro que si "a" tiene "@" y "." se suma 1 al contador; y con "or" declaro que si "a" tiene "@" o "." sume 1. Yo quiero que el email tenga "@" y "." Y no quiero que email tenga "@" o "."

Lo raro es que en el if el "or" hace la función del "and", porque si introduzco un email con "@" y no con "." el IF con "or" me dice que el email es incorrecto cuando tendría que decirque que está bien porque el "or" significa que debe de tener un @ o un punto   :rolleyes:


« Última modificación: 13 Agosto 2018, 19:12 pm por Sergiolocuelo » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.351


Ver Perfil
Re: Duda sobre and en script Python
« Respuesta #1 en: 13 Agosto 2018, 19:41 pm »

Entiendes la lógica buleana, pero fallas en lo elemental...

'a' solo puede ser a la vez (esto es en un ciclo del bucle) una única cosa "@" por ejemplo, ó "p", ó "x", ó "."
Con 'and', exiges que sea: "@" y al mismo tiempo ".", pero eso no puede ser... 'a' solo contiene un carácter... no puede ser los dos a la vez. ...luego falla tu lógica.

...por si te quedan dudas... pongamos que tengo una sola moneda en la mano, será de valor 1 ó 2 ó 5... pero no de 1 y 2, o de 1 y 5 o de 2 y 5... guardo la moneda barajo y saco otra... ahora podrá ser otra (o la misma de antes), pero al ser una sola moneda, no podrás ser dos distintas al mismo tiempo.

Si necesitas verificar que se den ambos, debe ser en diferente ciclo, en tal caso debes marcar la presencia de cada uno de forma independiente...

Código:
bucle ...
    Si 'a' = "@"
        prueba = prueba or 1
    sino
        si 'a' = "."
            prueba = prueba or 2
        sino
            ....
        fin si
    fin si
fin bucle

Tras el bucle podrás sabes si aparece '@', '.' o ambos...


« Última modificación: 13 Agosto 2018, 19:43 pm por NEBIRE » En línea

Sergiolocuelo

Desconectado Desconectado

Mensajes: 51


Somos ignorantes, pero no todos ignoramos lo mismo


Ver Perfil
Re: Duda sobre and en script Python
« Respuesta #2 en: 13 Agosto 2018, 20:01 pm »

Muchisimas gracias, lo e comprendido  :)
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Duda sobre and en script Python
« Respuesta #3 en: 13 Agosto 2018, 20:06 pm »

1) Debería estar en scripting
2) con el for recorres caracter a caracter por lo tanto no puede tener dos valores: A = A y no puede A = B
3)¿para qué el for?¿y lo de contador?
4)algo más simple y que use and:
Código
  1. Email=input("Introduce tu email: ")
  2.  
  3. if "@" and "." in Email: #si ambos caracteres están en la cadena(completa)
  4.    print("Email correcto")
  5. else:
  6.    print("Email incorrecto")
  7.  
En línea

Sergiolocuelo

Desconectado Desconectado

Mensajes: 51


Somos ignorantes, pero no todos ignoramos lo mismo


Ver Perfil
Re: Duda sobre and en script Python
« Respuesta #4 en: 13 Agosto 2018, 20:26 pm »

Soy novato en Python y estoy aprendiendo con un curso de Python en Youtube y el "Profesor" estaba dando el tema de bucles, solo eso  ;)

También me gustaría mejorar el script, ya que en un correo se pueden añadir más de un punto y no se pueden añadir otros caracteres, ¿Como podría hacer para que por ejemplo negase caractéres que no se pueden añadir y para que no de error al poner más de un punto?
« Última modificación: 13 Agosto 2018, 20:31 pm por Sergiolocuelo » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Duda sobre and en script Python
« Respuesta #5 en: 13 Agosto 2018, 22:12 pm »

bueno, como has entendido que hace el for y el while crea ciclos para comprobar que valores no quieres que se ingresen comparandolos con tu grupo que no quieres incluir y de igual forma ahora creas un contador y si tiene más de 2 es que hay algo mal. Una vez que entiendes que se consigue con cada sentencia o funciones o declaraciones o lo que sea, solo es cuestión de lógica, que ahí ya es personal, cada cual aplica la propia y no por ser distintas indica que alguna este mal.
Hay muchos que saben mucho en este foro y te ayudarán con gusto, pero no esperes que desarrollen todo tu código. Consejo: has scripts (aunque no funcionen) y prengunta en base a ellos y obtendrás más de una respuesta y tu conocimiento aumentará exponencialmente.
Saludos.
En línea

Sergiolocuelo

Desconectado Desconectado

Mensajes: 51


Somos ignorantes, pero no todos ignoramos lo mismo


Ver Perfil
Re: Duda sobre and en script Python
« Respuesta #6 en: 14 Agosto 2018, 17:12 pm »

Muchas gracias por vuestros comentarios, me habéis ayudado mucho  :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
una duda sobre este script
Dudas Generales
andres199 0 3,367 Último mensaje 4 Mayo 2011, 04:48 am
por andres199
Script en Python [Duda]
Scripting
michelmarques 2 2,204 Último mensaje 14 Julio 2012, 22:39 pm
por michelmarques
[Duda]Es posible pasar argumentos a un Script Python de esta manera
Scripting
PabloPbl 2 2,212 Último mensaje 22 Noviembre 2015, 04:40 am
por PabloPbl
Script python ayuda, duda...
Scripting
nonxz 1 1,673 Último mensaje 25 Marzo 2016, 05:36 am
por tincopasan
MOVIDO: Duda sobre and en script Python
Programación General
Eleкtro 0 1,888 Último mensaje 14 Agosto 2018, 01:40 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines