Python - Duda de bucles en python nivel noob

   
Vista:

Duda de bucles en python nivel noob

Publicado por Josué hernandez (5 intervenciones) el 28/09/2015 17:46:28
Hola que tal, es la primera vez que posteo, soy un noob nivel noob en python, el problema es que mañana martes tengo que presentar un examen de python y por más que vi tutoriales no logro sacar adelante el problema que me dejaron de tarea dese hace una semana.
El problema pide que cuando el usaurio ingrese una letra le diga si esta en la prmier mitad del alfabeto o no, pero si este ingresa algo que no sea una letra minúscula, le mande un mensaje hasta que este escriba una letra minúscula.
Ya logré todo, pero lo que no puedo entender es como hacer para que el programa regrese al inicio y pida una letra minúscula.
Ya lo intenté con el for y con el while, pero nomás no me queda.
Les agradecería bastante si alguien me dijera como queda para este caso, pregunté a mi profesora pero la verdad no le vi muchas ganas de explicarme pues se dio cuenta que mi nivel no es muy avanzado y se desesperó.
Este es mi código:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*-
 
N='abcdefghijklmn'
l=raw_input("Dame una letra!,Una letra minúscula ")
 
 
if l.islower() and (len(l)==1) and (l in N):
        print"Tu letra esta en la primer mitad del abecedario"
elif l.islower() and (len(l)==1) and (l not in N):
        print"Tu letra no esta en la primera mitad"
 
else:
        print"recuerda que debe ser una letra minuscula!"
 
 
 
raw_input()

En serio agradecería mucho si alguien me dijera donde debo meter el bucle y como pues, como dije, ya vi tutoriales y debido a mi poca experiencia no logro aterrizar las intrucciones a mi caso en particular.

Gracias.
Y si alguien sabe de un libro o tutoriales buenos que me puedan ayudar con python, pues este problema es sencillo y por más que me esfuerzo no logro sacarlo adelante :(
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
Imágen de perfil de xve

Duda de bucles en python nivel noob

Publicado por xve (1229 intervenciones) el 28/09/2015 20:21:05
Hola Josue, haber si te sirve de esta manera:
1
2
3
4
5
6
7
8
9
10
11
12
13
# -*- coding: utf-8 -*-
 
N='abcdefghijklmn'
while True:
	l=raw_input("Dame una letra!,Una letra minúscula ")
	if l.islower() and (len(l)==1) and (l in N):
		print"Tu letra esta en la primer mitad del abecedario"
		break
	elif l.islower() and (len(l)==1) and (l not in N):
		print"Tu letra no esta en la primera mitad"
		break
	else:
		print"recuerda que debe ser una letra minuscula!"

Coméntanos, ok?
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

Duda de bucles en python nivel noob

Publicado por Josué hernandez (5 intervenciones) el 29/09/2015 15:18:59
hola, que tal. Muchisimas gracias, el problema fue resuelto
Una duda:
Que pasa cuando quiero llevar estos conocimientos a problemas con operaciones con numeros?
Me di cuenta que las operaciones de multiplicacion las pone solo repitiendo los numeros.
Además ¿que debe suceder para que python considere los numeros decimales? Pues cuando intento la opcion O me tilda un mensaje respecto a numeros de punto flotante.
El problema es algo así:
Pedir al usuario que de un valor valido para el radio y si no, mostrarle un mensaje, así como pedirle un valor valido del menú de opciones que uno le da, y si no, mostrarle un mensaje. Luego de esto mostrar el resultado.
Así es como queda mi codigo, solo en la opcion P me da un resultado, pero como dije, solo repite los numeros que yo ingrese.
El codigo:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# -*- coding: utf-8 -*-
 
from math import pi
 
O='p'
P='d'
N='a'
 
print"Programa para calcular areas, perimetros o diametros de cualquier circulo, dado su radio"
print"Dime que vamos a calcular y dame el radio! :D"
while True:
    r=raw_input("Dame el radio en metros")
    if r.isdigit() :
       break
 
    else:
         print"te dije que pusieras digitos!!"
         print"Otra vez"
 
while True:
    c=raw_input("Elige una opcion: d para diametro, a para area y p para perimetro")
    if c.islower() and (len(c)==1) and (c in N):
        area=pi * (r**2)
 
        print"el area es de:",area,"metros cuadrados."
        break
    elif c.islower() and (len(c)==1) and (c  in O):
        peri= pi* (2*r)
 
        print"El perimetro es de:",peri,"metros."
        break
    elif c.islower() and (len(c)==1) and (c  in P):
        diam=  2*r
 
        print "el diametro es de:" ,diam,"metros."
        break
    else:
        print"adios"
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
Imágen de perfil de JanNicZK

Duda de bucles en python nivel noob

Publicado por JanNicZK (3 intervenciones) el 02/10/2015 06:56:45
dice
else: print(adios)
cuando deve de decir
else: print (no te agas wey y elige una de las 3 opciones)
ya encerio...
deja lo ejecuto.
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
Imágen de perfil de JanNicZK

Duda de bucles en python nivel noob

Publicado por JanNicZK (3 intervenciones) el 02/10/2015 07:31:15
ok ya te tengo tu programa, tube que modificar unas cosas porque mi vercion de python no es la misma que tu usas pero funciona solo cambia "input" por "raw_input" de ser nesesario.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from math import pi
 
O='p'
P='d'
N='a'
 
print("Programa para calcular areas, perimetros o diametros de cualquier circulo, dado su radio")
print("Dime que vamos a calcular y dame el radio! :D")
while True:
    r=input("Dame el radio en metros\n")
    try:
        r=float(r)
        break
 
    except:
         print("te dije que pusieras digitos!!")
         print("Otra vez bruto\n")
tolerancia=0
while True:
    c=input("Elige una opcion: d para diametro, a para area y p para perimetro\n")
    if c.islower() and (len(c)==1) and (c in N):
        area=pi * (r**2)
 
        print("el area es de:",area,"metros cuadrados.")
        break
    elif c.islower() and (len(c)==1) and (c  in O):
        peri=pi* (2*r)
 
        print("El perimetro es de:",peri,"metros.")
        break
    elif c.islower() and (len(c)==1) and (c  in P):
        diam=(2*r)
 
        print ("el diametro es de:" ,diam,"metros.")
        break
    else:
        if tolerancia<3:
            print("elige una opcion!")
            tolerancia+=1
 
        elif tolerancia==3:
            print("ya me estas artando! \nelige una opcion es la ultima oportunidad que te doy")
            tolerancia+=1
        else:
            print("te lo adverti!! ADIOS!!!")
            break
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