Python - Duda necesito correguir mi programa.

   
Vista:

Duda necesito correguir mi programa.

Publicado por BC (5 intervenciones) el 10/06/2013 20:44:30
Buenas tardes.

Quiero crear un programa para convertir temperaturas. De tal forma que si el usuario ingresa a, b,c o d. el programa le pide ingresar temperatura.
En otras palabras si el usuario selecciona A o a, se transforma a F,K y R.

En otro archivo intente con if: y más abajo con Else, pero no me resulta para nada...
Desde ya muchas gracias por su tiempo.




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
print "¨Qu‚ desea calcular?"
print
print "A) Celsius a Fahrenheit, Kelvin y Rankine."
print "B) Fahrenheit a Celsius, Kelvin y Rankine."
print "C) Kelvin a Fahrenheit, Celsius y Rankine."
print "D) Rankine a Kelvin, Fahrenheit y Celsius."
print
opcion=raw_input("Ingrese opcion A, B, C, D:")#Error si tildo las 3 palabras: opcion. (El programa no se ejecutar )
C=float(raw_input("Ingrese temperatura en grados Celsius:"))
if opcion=="A" or "a":
    F=(1.8*C)+32
    K=C+273.15
    R=(C+273.15)*1.8
    print "La temperatura en grados Fahrenheit es:",F,""
    print "La temperatura en grados Kelvin es:",K,""
    print "La temperatura en grados Rankine es:",R,""
 
F=float(raw_input("Ingrese temperatura en grados Fahrenheit:"))
if opcion=="B" or "b":
    C=(F-32)/1.8
    K=(F+459.67)/1.8
    R=F+459.67
    print "La temperatura en grados Celsius es:",C,""
    print "La temperatura en grados Kelvin es:",K,""
    print "La temperatura en grados Rankine es:",R,""
 
K=float(raw_input("Ingrese temperatura en grados Kelvin:"))
if opcion=="C" or "c":
    F=1.8*(K-273.15)+32
    C=K-273.15
    R=1.8*K
    print "La temperatura en grados Fahrenheit es:",F,""
    print "La temperatura en grados Celsius es:",C,""
    print "La temperatura en grados Rankine es:",R,""
 
R=float(raw_input("Ingrese temperatura en grados Rankine:"))
if opcion=="D" or "d":
    K=(5.0/9.0)*R
    F=R-459.67
    C=(5.0/9.0)*(R-491.67)
    print "La temperatura en grados Kelvin es:",K,""
    print "La temperatura en grados Fahrenheit:",F,""
    print "La temperatura en grados Celsius es:",C,""
 
from time import sleep
sleep(120)
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 necesito correguir mi programa.

Publicado por xve (1232 intervenciones) el 10/06/2013 23:07:10
Hola BC, creo que tenias algunos errores, en las comparaciones, y en la posición de las preguntas... también te he puesto por si no introduce un valor numérico que no pete el programa.

coméntanos que te parece, ok?
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
print "¨Qu‚ desea calcular?"
print
print "A) Celsius a Fahrenheit, Kelvin y Rankine."
print "B) Fahrenheit a Celsius, Kelvin y Rankine."
print "C) Kelvin a Fahrenheit, Celsius y Rankine."
print "D) Rankine a Kelvin, Fahrenheit y Celsius."
print
opcion=raw_input("Ingrese opcion A, B, C, D:")#Error si tildo las 3 palabras: opcion. (El programa no se ejecutar )
 
if opcion=="A" or opcion=="a":
    try:
        C=float(raw_input("Ingrese temperatura en grados Celsius:"))
    except:
        C=0
    F=(1.8*C)+32
    K=C+273.15
    R=(C+273.15)*1.8
    print "La temperatura en grados Fahrenheit es:",F,""
    print "La temperatura en grados Kelvin es:",K,""
    print "La temperatura en grados Rankine es:",R,""
 
if opcion=="B" or opcion=="b":
    try:
        F=float(raw_input("Ingrese temperatura en grados Fahrenheit:"))
    except:
        F=0
    C=(F-32)/1.8
    K=(F+459.67)/1.8
    R=F+459.67
    print "La temperatura en grados Celsius es:",C,""
    print "La temperatura en grados Kelvin es:",K,""
    print "La temperatura en grados Rankine es:",R,""
 
if opcion=="C" or opcion=="c":
    try:
        K=float(raw_input("Ingrese temperatura en grados Kelvin:"))
    except:
        K=0
    F=1.8*(K-273.15)+32
    C=K-273.15
    R=1.8*K
    print "La temperatura en grados Fahrenheit es:",F,""
    print "La temperatura en grados Celsius es:",C,""
    print "La temperatura en grados Rankine es:",R,""
 
if opcion=="D" or opcion=="d":
    try:
        R=float(raw_input("Ingrese temperatura en grados Rankine:"))
    except:
        R=0
    K=(5.0/9.0)*R
    F=R-459.67
    C=(5.0/9.0)*(R-491.67)
    print "La temperatura en grados Kelvin es:",K,""
    print "La temperatura en grados Fahrenheit:",F,""
    print "La temperatura en grados Celsius es:",C,""
 
from time import sleep
sleep(120)
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 necesito correguir mi programa.

Publicado por BC (5 intervenciones) el 11/06/2013 19:46:40
Funciona excelente. Gracias.
Tengo una duda. Después de mostrar los resultados, me gustaría agregarle una opción, de tal manera que pueda ir a lo anterior, es decir, volver a ingresar una opcion y así sucesivamente.
¿Qué me recomiendas?
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 xve

Duda necesito correguir mi programa.

Publicado por xve (1232 intervenciones) el 12/06/2013 07:38:14
Una solución simple, seria ponerlo dentro de un while True: y poner una opción en tu menú para salir de la aplicación... algo así:

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
47
48
49
50
while True:
 
    print "¨Qu‚ desea calcular?"
    print
    print "A) Celsius a Fahrenheit, Kelvin y Rankine."
    print "B) Fahrenheit a Celsius, Kelvin y Rankine."
    print "C) Kelvin a Fahrenheit, Celsius y Rankine."
    print "D) Rankine a Kelvin, Fahrenheit y Celsius."
    print
    print "9) salir"
    print
    opcion=raw_input("Ingrese opcion A, B, C, D:")#Error si tildo las 3 palabras: opcion. (El programa no se ejecutar )
    if opcion=="A" or opcion=="a":
        C=float(raw_input("Ingrese temperatura en grados Celsius:"))
        F=(1.8*C)+32
        K=C+273.15
        R=(C+273.15)*1.8
        print "La temperatura en grados Fahrenheit es:",F,""
        print "La temperatura en grados Kelvin es:",K,""
        print "La temperatura en grados Rankine es:",R,""
 
    if opcion=="B" or opcion=="b":
        F=float(raw_input("Ingrese temperatura en grados Fahrenheit:"))
        C=(F-32)/1.8
        K=(F+459.67)/1.8
        R=F+459.67
        print "La temperatura en grados Celsius es:",C,""
        print "La temperatura en grados Kelvin es:",K,""
        print "La temperatura en grados Rankine es:",R,""
 
    if opcion=="C" or opcion=="c":
        K=float(raw_input("Ingrese temperatura en grados Kelvin:"))
        F=1.8*(K-273.15)+32
        C=K-273.15
        R=1.8*K
        print "La temperatura en grados Fahrenheit es:",F,""
        print "La temperatura en grados Celsius es:",C,""
        print "La temperatura en grados Rankine es:",R,""
 
    if opcion=="D" or opcion=="d":
        R=float(raw_input("Ingrese temperatura en grados Rankine:"))
        K=(5.0/9.0)*R
        F=R-459.67
        C=(5.0/9.0)*(R-491.67)
        print "La temperatura en grados Kelvin es:",K,""
        print "La temperatura en grados Fahrenheit:",F,""
        print "La temperatura en grados Celsius es:",C,""
 
    if opcion=="9":
        break

Espero que te sirva
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