Python - Ayuda mi primer programa :(

 
Vista:

Ayuda mi primer programa :(

Publicado por Sile (1 intervención) el 22/03/2008 03:34:42
#! /usr/bin/env python

bienvenida = (raw_input("Hola este es mi primer programa.... preciona ENTER"))

print bienvenida

while 1:
opcion = (raw_input("Escoja una Opcion... [1] para ver las tablas de multiplicar del 1 al 12.. [2] Para pasar un texto de mayusculas o minusculas o viceversa.. [3] Si quieres ver el valor numerico de una letra Escojo la opcion|---->"))

if opcion == "1":
multiplicador = input("Cual tabla desea conocer, dijite un numero del [1] al [12] ")

print "Esta es la tabla del ",multiplicador

for j in range(1,13):

print "%d * %d = %d" % (multiplicador,j,multiplicador*j)

elif opcion == "2":
opcio_n = (raw_input("Precione [A] Si quiere pasar un texto de minusculas a mayusculas. [B] Si quiere pasar un texto de mayusculas a minusculas. Escojo la Opcion |-------> "))

if opcio_n == "A" or "a":
text_o=(raw_input("Copie el texto que desea pasar a MAYUSCULAS" ))
print "Aqui esta el texto en mayusculas", texto.upper()

elif opcio_n == "B" or "b":
text_o=(raw_input("Copie el texto que desea pasar a MINUSCULAS" ))
print "Aqui esta el texto en mayusculas", text_o.lower()

mi duda que falla :(como hago para que funcione cuando escojo la opcion 1 y la dos pude hacer funcionar la opcion 1 pero fallaba en la dos y si hago funcionar la opcion 2 falla la uno... :(

a las opciones me refiero cuando pregunta que que kieres hacer...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda mi primer programa :(

Publicado por hadrien (10 intervenciones) el 23/03/2008 13:17:48
Hola,
no sé muy bien cual es tu duda pero yo lo que te sugeriría es que inicialices la variable 'opcion' fuera del rango de valores que esperas y luego ejecutes el bucle while mientras se den valores fuera de ese rango (así controlas las opciones de forma clara, no por tipo):

opcion=0
while( opcion<1 or opcion>3 ):
opcion = ( input(...) )

Ídem para las opciones A y B del punto 2. Por otro lado, controla que el tipo del parámetro que recibes concuerde con lo que comparas, es decir, str o int.

Para poder volver a elegir, haz un bucle general, por ejemplo, hasta que se de la condición "n" (no seguir).
Fíjate también en la variable text_o de la opción 2.a, que luego usa como texto.upper()

Tu programa quedaría (cuidado con la identaciones):

bienvenida = (raw_input("Hola este es mi primer programa.... preciona ENTER"))
print bienvenida
again="y"
while (again!="n" and again!="N"):
opcion=0
while (opcion<1 or opcion>3):
opcion = (input("Escoja una Opcion... [1] para ver las tablas de multiplicar del 1 al 12.. [2] Para pasar un texto de mayusculas o minusculas o viceversa.. [3] Si quieres ver el valor numerico de una letra Escojo la opcion|---->"))

if opcion == 1:
multiplicador = input("Cual tabla desea conocer, dijite un numero del [1] al [12] ")
print "Esta es la tabla del ",multiplicador
for j in range(1,13):
print "%d * %d = %d" % (multiplicador,j,multiplicador*j)
elif opcion == 2:
opcio_n=""
texto=""
opcio_n = (raw_input("Precione [A] Si quiere pasar un texto de minusculas a mayusculas. [B] Si quiere pasar un texto de mayusculas a minusculas. Escojo la Opcion |-------> "))

if opcio_n == "A" or opcio_n=="a":
texto=(raw_input("Copie el texto que desea pasar a MAYUSCULAS" ))
print "Aqui esta el texto en mayusculas", texto.upper()
elif opcio_n == "B" or opcio_n=="b":
texto=(raw_input("Copie el texto que desea pasar a MINUSCULAS" ))
print "Aqui esta el texto en minusculas", texto.lower()
again = (raw_input("Desea continuar? (s/n)"))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar