Foros del Web » Programando para Internet » Python »

¿Como se hace testeo?

Estas en el tema de ¿Como se hace testeo? en el foro de Python en Foros del Web. Quetal estimados amigos es un gusto. Necesito ayuda, tengo que hacer un ejercicio que es el siguiente: sea la variable a='56743' y b='67893' Crear un ...
  #1 (permalink)  
Antiguo 28/09/2010, 22:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
¿Como se hace testeo?

Quetal estimados amigos es un gusto.

Necesito ayuda, tengo que hacer un ejercicio que es el siguiente:

sea la variable a='56743' y b='67893'

Crear un script que testee si el primer caracter es un 5 y si es asi
imprima CORRECTO si no es cinco imprima INCORRECTO.

probar el script con a y b, y debe decir CORRECTO e INCORRECTO cuando
corresponda.

ya lo intente con if pero solo esto logro. según entiendo aqui debería mostrarme Correcto e Incorrecto, pero solo imprime la primera (correcto) o al menos que este usando una función equivocada.

a='56743'

b='67893'

if'5'in a:
print 'correcto'

if '8'in a:
print 'incorrecto'

De ante mano agradezco por su ayuda que me puedan dar.
  #2 (permalink)  
Antiguo 28/09/2010, 22:36
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

Te dare algunos casos de prueba:
Que pasa si a = '123589' no termina en 5 pero imprimirá correcto.

Todo depende de lo que estas manejando. Si estas manejando strings entonces usa el método
endswith. Si lo estas haciendo con valores numéricos usa el operador modulo para sacar el ultimo dígito.

Solo piensa un poco:
Si es mi cadena termina con 5 entonces imprime es correcto de cualquier otra forma imprime incorrecto.

Cuando lo que haces es:
Si a contiene 5 entonces imprime correcto
Si b contiene 8 imprime incorrecto

Lo que hace la palabra reservada in es buscar si '8' se encuentra en tu cadena. No que empiece o termine con ella.

Edito: Acabo de darme cuenta que quieres que tu cadena empiece con 5, en ese caso usa el método startswith en vez de endswith.

Última edición por razpeitia; 28/09/2010 a las 22:44
  #3 (permalink)  
Antiguo 29/09/2010, 08:22
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por razpeitia Ver Mensaje
Te dare algunos casos de prueba:
Que pasa si a = '123589' no termina en 5 pero imprimirá correcto.

Todo depende de lo que estas manejando. Si estas manejando strings entonces usa el método
endswith. Si lo estas haciendo con valores numéricos usa el operador modulo para sacar el ultimo dígito.

Solo piensa un poco:
Si es mi cadena termina con 5 entonces imprime es correcto de cualquier otra forma imprime incorrecto.

Cuando lo que haces es:
Si a contiene 5 entonces imprime correcto
Si b contiene 8 imprime incorrecto

Lo que hace la palabra reservada in es buscar si '8' se encuentra en tu cadena. No que empiece o termine con ella.

Edito: Acabo de darme cuenta que quieres que tu cadena empiece con 5, en ese caso usa el método startswith en vez de endswith.
Quetal estimado razpeitia Gracias por tu respuesta o sea que ¿if no permite imprimir dos cosas a la vez? y testear realmente que sea correcto o incorrecto?, lo digo porque en el primer caso dará correcto porque allí esta el 5 pero si cambio el print por incorreto me mostrará incorrecto aunque este allí el número 5.
Disculpa serias tan amable de darme un ejemplo con starswit en este caso especifico porque lo que hace starswit es mostrar verdadero y falso, pero a mi me están pidiendo correcto e incorrecto.

Bueno de ante mano muchas gracias si puedes y si no también gracias por tu tiempo.
Feliz día.
  #4 (permalink)  
Antiguo 29/09/2010, 09:07
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

La sentencia if puede ejecutar varias cosas una vez que entra. Solo que al parecer no te enseñado la sentencia else. Ejemplo de startswith con cadenas.

Código Python:
Ver original
  1. a = "esto es una cadena"
  2. b = "no empiezo con e"
  3. if a.startswith("e"):
  4.     print a, "Empieza con e"
  5. else:
  6.     print a, "No empieza con ve"
  7.  
  8. if b.startswith("e"):
  9.     print b, "Empieza con e"
  10. else:
  11.     print b, "No empieza con e"
  #5 (permalink)  
Antiguo 30/09/2010, 07:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por razpeitia Ver Mensaje
La sentencia if puede ejecutar varias cosas una vez que entra. Solo que al parecer no te enseñado la sentencia else. Ejemplo de startswith con cadenas.

Código Python:
Ver original
  1. a = "esto es una cadena"
  2. b = "no empiezo con e"
  3. if a.startswith("e"):
  4.     print a, "Empieza con e"
  5. else:
  6.     print a, "No empieza con ve"
  7.  
  8. if b.startswith("e"):
  9.     print b, "Empieza con e"
  10. else:
  11.     print b, "No empieza con e"
razpeitia

Quetal Estimado razpeitia agradezco tu respuesta y tu fineza.
Es que no nos dieron opción para usar esas funciones.
Esto es lo que tuve que hacer.

a='56743'
if '5' in a:
print 'Correcto'
else:
print'InCorrecto'

Alli esta por ejemplo si cambio el el 5 por 8 que no esta en la variable me mostrara incorrecto.

Gracias por tu ayuda razpeitia, me alumbro el COCO.

Feliz día.
  #6 (permalink)  
Antiguo 30/09/2010, 10:14
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por kingxtan
Crear un script que testee si el primer caracter es un 5 y si es asi
imprima CORRECTO si no es cinco imprima INCORRECTO.
El operador "in", por ejemplo '5' in '54312' es buscar si 5 se encuentra dentro de la cadena. Si cambio la cadena a '45312' esta no empieza con 5 pero aun así me mostrara correcto.
  #7 (permalink)  
Antiguo 30/09/2010, 13:36
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Como se hace testeo?

"12345"[0]? (más simple que startswith() )
  #8 (permalink)  
Antiguo 30/09/2010, 21:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por AlvaroG Ver Mensaje
"12345"[0]? (más simple que startswith() )
Quetal estimados amigos, tienes razón amigo razpeitia entonces el tema no va bien gracias por hacerme ver las cosas pero no daba como lograrlo, pero según AlvaroG me acaba de dar otra idea la cual quedo perfecto.
o sea usando indices.
A como estaba anteriormente imprimia correcto no importando donde estaba el 5 pero colocándole un indice ahora si importa donde esta ja miren ahora.

a='156743'
if '5' in a[0]:
print 'Correcto'
else:
print'InCorrecto'


a='556743'
if '5' in a[0]:
print 'Correcto'
else:
print'InCorrecto'

allí esta. Gracias Estimado amigos por su fineza, que la pasen bien.
  #9 (permalink)  
Antiguo 30/09/2010, 21:48
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

Yep a[0] funciona muy bien pero que pasa si a = ''
Aja! tienes que validar algo mas, ademas te recomiendo que uses el operador == en lugar de in para hacer comparaciones.

Ejemplo:
Código Python:
Ver original
  1. a = '542321'
  2. if a[0] == '5':
  3.     print "Correcto"
  4. else:
  5.     print "Incorrecto"

Ahora supón lo siguiente:
Código Python:
Ver original
  1. a = ''
  2. if a[0] == '5':
  3.     print "Correcto"
  4. else:
  5.     print "Incorrecto"
Puedes corregir el código validando si la cadena esta vacía.

Ahora como validas una cadena vacía? Es muy simple, si una cadena esta vacía entonces es falso de lo contrario es verdadero. Ejemplo:
Código Python:
Ver original
  1. a = '' #Prueba cambiando los valores de a
  2. if a:
  3.     print "Cadena NO vacia"
  4. else:
  5.     print "Cadena vacia"
Ahora lo único que tienes que hacer es juntar que la cadena no este vacía Y que el primer carácter sea 5.
  #10 (permalink)  
Antiguo 01/10/2010, 23:26
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por razpeitia Ver Mensaje
Yep a[0] funciona muy bien pero que pasa si a = ''
Aja! tienes que validar algo mas, ademas te recomiendo que uses el operador == en lugar de in para hacer comparaciones.

Ejemplo:
Código Python:
Ver original
  1. a = '542321'
  2. if a[0] == '5':
  3.     print "Correcto"
  4. else:
  5.     print "Incorrecto"

Ahora supón lo siguiente:
Código Python:
Ver original
  1. a = ''
  2. if a[0] == '5':
  3.     print "Correcto"
  4. else:
  5.     print "Incorrecto"
Puedes corregir el código validando si la cadena esta vacía.

Ahora como validas una cadena vacía? Es muy simple, si una cadena esta vacía entonces es falso de lo contrario es verdadero. Ejemplo:
Código Python:
Ver original
  1. a = '' #Prueba cambiando los valores de a
  2. if a:
  3.     print "Cadena NO vacia"
  4. else:
  5.     print "Cadena vacia"
Ahora lo único que tienes que hacer es juntar que la cadena no este vacía Y que el primer carácter sea 5.
Quetal de nuevo amigo, razpeitia es un gusto saludarte nuevamente.
Muy interesante tu exposición, no manejaba el comando ==ni la comprobación vacía, ahora estuve haciendo unos intentos con esto que no entiendo muy bien la idea.
Ahora lo único que tienes que hacer es juntar que la cadena no este vacía Y que el primer carácter sea 5.

¿se tiene que ejecutar las dos opciones a la misma vez? 1. que no este vacia y 2. que empiece con5.
si fueras tan amable de darme un ejemplito.
Muy agradecido por tu fineza.
Que la pases bien.
  #11 (permalink)  
Antiguo 02/10/2010, 00:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

Lo puse en negritas como una pista, tienes que hacer que las 2 condiciones se cumplan.
Código Python:
Ver original
  1. if condicion1 and condicion2:
  2.     print "Correcto"
  3. else:
  4.     print "Incorrecto"

Ahora si mas directo no se puede.
  #12 (permalink)  
Antiguo 02/10/2010, 18:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por razpeitia Ver Mensaje
Lo puse en negritas como una pista, tienes que hacer que las 2 condiciones se cumplan.
Código Python:
Ver original
  1. if condicion1 and condicion2:
  2.     print "Correcto"
  3. else:
  4.     print "Incorrecto"

Ahora si mas directo no se puede.
Quetal razpeitia, es un gusto.

Gracias por tu ayuda, mira estuve haciendo una pruebas y solo esto logro con el código que tan amablemente me has pasado.

Este imprime correcto y el de mas abajo también
o sea que solo importa el de en medio porque si cambio el de en medio incorrecto

if '3'and '9'=='9':
print "Correcto"
else:
print "Incorrecto"

if '9'and '9'=='9':
print "Correcto"
else:
print "Incorrecto"

Este obvio imprime incorrecto

if '9'and '9'=='4':
print "Correcto"
else:
print "Incorrecto"

La verdad es que no entiendo como se debe usa, y perdona mi ignorancia pero serias tan fino de darme un ejemplo de como funciona.
De ante mano muchas gracias.
Feliz día.
  #13 (permalink)  
Antiguo 02/10/2010, 21:14
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

Ok no va a servir de nada que te pase el código.

Por que no estarías desarrollando tu lógica, no estarías aprendiendo solo copiando código, ademas de que estaría dando la respuesta.(Creo que ya te di la respuesta si juntas mis 2 últimos post.)

Mejor lee un poquito 'Python para todos' para que familiarices con la sintaxis y ademas aprendas los conceptos básicos.
  #14 (permalink)  
Antiguo 04/10/2010, 19:34
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Quetal razpeitia, Gracias por tus consejos, a leer.
Feliz día.
  #15 (permalink)  
Antiguo 06/12/2010, 21:38
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por kingxtan Ver Mensaje
Quetal razpeitia, Gracias por tus consejos, a leer.
Feliz día.
Quetal Estimados amigos un gusto saludarlos.

Bueno he vuelto ja. Para terminar el con post anterior.

Amigo razpeitia, he comprendido las funciones que me hacías mención anteriormente he aquí te dejo unos ejemplos.

starswith:
verifica si esta al inicio(star)

a="aprendiendo python"

if a.startswith("a") or ('A'): # Ya sea a ó A
print "Empieza con A"
else:
print "No empieza con A"

endswith

Verifica si esta al final (end)

if a.endtswith("n") or ('N'): # Ya sea n ó N
print "termina con n"
else:
print "No termina con n"

comando: (==)

frase=(raw_input('Escribe mama '))
if frase=='mama'or frase=='Mama'or frase=='MAMA':
print "son iguales"
else:
print "No son iguales"


AND

a='a,b'
b=' '

if 'a'in a and 'b' in a and ' 'in b:
print'La cadena NO esta vacia'
else:
print'La cadena esta vacia'

a=2<3
b=3<4
c=3>5
a and b true
a and c false

input()

Dame tu opinión por favor y tus consejos porque quiero aprender a programar, por lo visto eres un maestro estas por todos lados.
Feliz día.
  #16 (permalink)  
Antiguo 06/12/2010, 23:56
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: ¿Como se hace testeo?

Código Python:
Ver original
  1. a = "aprendiendo python"
  2.  
  3. #Tu manera esta bien, excepto que si pones ('A') nada mas entonces siempre entrara al cliclo
  4. if a.startswith("a") or a.startswith('A'): # Ya sea a ó A
  5.     print "Empieza con A"
  6. else:
  7.     print "No empieza con A"
  8.    
  9. #Mi manera de lidiar con mayusculas y minusculas
  10. a = "ApReNdIeNdO PyThoN"
  11. if a.lower().startswith("a"):
  12.     print "Empieza con A"
  13. else:
  14.     print "NO Empieza con A"
  15.  
  16.  
  17. #endswith
  18. #Verifica si esta al final (end)
  19. if a.endswith("n") or a.endswith('N'): # Ya sea n ó N, mismo problema que tuviste con startswith, ademas escribiste mal endswith
  20.     print "termina con n"
  21. else:
  22.     print "No termina con n"
  23. #Misma recomendacion para lidiar con mayusculas y minusculas
  24.  
  25.  
  26. #comando: (==)
  27. frase = raw_input('Escribe mama ')
  28. if frase == 'mama' or frase == 'Mama' or frase == 'MAMA':
  29.     print "son iguales"
  30. else:
  31.     print "No son iguales"
  32. #Misma recomendacion de mayus y mins
  33.  
  34. #AND
  35.  
  36. a = 'a,b'
  37. b = ' '
  38.  
  39. if 'a' in a and 'b' in a and ' ' in b:
  40.     print'La cadena NO esta vacia'
  41. else:
  42.     print'La cadena esta vacia'
  43.  
  44. #Mi metodo para saber si una cadena esta vacia
  45. if a.strip():
  46.     print "cadena NO vacia"
  47. else:
  48.     print "cadena vacia"
  49.  
  50. if b.strip():
  51.     print "cadena NO vacia"
  52. else:
  53.     print "cadena vacia"
  54.  
  55. a = 2 < 3
  56. b = 3 < 4
  57. c = 3 > 5
  58. a and b #True
  59. a and c #False
  60.  
  61. input()
  #17 (permalink)  
Antiguo 07/12/2010, 14:52
 
Fecha de Ingreso: noviembre-2009
Mensajes: 34
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: ¿Como se hace testeo?

Cita:
Iniciado por razpeitia Ver Mensaje
Código Python:
Ver original
  1. a = "aprendiendo python"
  2.  
  3. #Tu manera esta bien, excepto que si pones ('A') nada mas entonces siempre entrara al cliclo
  4. if a.startswith("a") or a.startswith('A'): # Ya sea a ó A
  5.     print "Empieza con A"
  6. else:
  7.     print "No empieza con A"
  8.    
  9. #Mi manera de lidiar con mayusculas y minusculas
  10. a = "ApReNdIeNdO PyThoN"
  11. if a.lower().startswith("a"):
  12.     print "Empieza con A"
  13. else:
  14.     print "NO Empieza con A"
  15.  
  16.  
  17. #endswith
  18. #Verifica si esta al final (end)
  19. if a.endswith("n") or a.endswith('N'): # Ya sea n ó N, mismo problema que tuviste con startswith, ademas escribiste mal endswith
  20.     print "termina con n"
  21. else:
  22.     print "No termina con n"
  23. #Misma recomendacion para lidiar con mayusculas y minusculas
  24.  
  25.  
  26. #comando: (==)
  27. frase = raw_input('Escribe mama ')
  28. if frase == 'mama' or frase == 'Mama' or frase == 'MAMA':
  29.     print "son iguales"
  30. else:
  31.     print "No son iguales"
  32. #Misma recomendacion de mayus y mins
  33.  
  34. #AND
  35.  
  36. a = 'a,b'
  37. b = ' '
  38.  
  39. if 'a' in a and 'b' in a and ' ' in b:
  40.     print'La cadena NO esta vacia'
  41. else:
  42.     print'La cadena esta vacia'
  43.  
  44. #Mi metodo para saber si una cadena esta vacia
  45. if a.strip():
  46.     print "cadena NO vacia"
  47. else:
  48.     print "cadena vacia"
  49.  
  50. if b.strip():
  51.     print "cadena NO vacia"
  52. else:
  53.     print "cadena vacia"
  54.  
  55. a = 2 < 3
  56. b = 3 < 4
  57. c = 3 > 5
  58. a and b #True
  59. a and c #False
  60.  
  61. input()
Quetal estimado, razpeitia

Muy interesante las funciones que usas, yo había entendido que lower devuelve una copia de la string convertida en minusculas. Pero es interesante su uso asi dejamos de editar mucho código.
Y respecto a strip lo mismo es otro concepto el tengo.
Gracias Feliz día.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:12.