Witam.
W ramach ćwiczeń zrobiłem prosty przelicznik temperatur. Sprawdzałem i działa. Nie powinien wywalac błędu w przypadku wprowadzenia złych danych. Mam nadzieję. Moje pytanie:
czy można to jakoś uprościć? hmm może nie chodzi mi o konkretny kod ale powiedzmy "naprowadzenie na droge"
#!/usr/bin/env python
import subprocess
def przeliczanieTemperatur():
podanowK = pobierz_temperature
podanowC = pobierz_temperature
podanowF = pobierz_temperature
podanowK = float(podanowK)
tempC = podanowK - 273.15
tempF = 32+((tempC*9)/5)
podanowC = float(podanowC)
tempK = podanowC + 273.15
tempFC = 32+((podanowC*9)/5)
podanowF = float(podanowF)
tempCF = ((podanowF - 32)*5) / 9
tempKF = tempCF + 273.15
printa = "Dla %.2f Kelvinow --> %.2f st. Celsiusza --> %.2f st. Fahrenheita" %(podanowK, tempC, tempF)
printb = "Dla %.2f Celsiusza --> %.2f Kelvinow --> %.2f st. Fahrenheita" %(podanowC, tempK, tempFC)
printc = "Dla %.2f Fahrenheita --> %.2f st. Celsiusza --> %.2f Kelviow" %(podanowF, tempCF, tempKF)
subprocess.call("clear")
print " "
print printa.center(20,' ')
print printb.center(20,' ')
print printc.center(20,' ')
print " "
pobierz_temperature = raw_input("Podaj temperature (niewazne w jakiej skali!)")
i = pobierz_temperature.find('.')
if pobierz_temperature.isdigit() == True:
przeliczanieTemperatur()
elif pobierz_temperature.count('.') == 1:
#i = pobierz_temperature.find('.')
if pobierz_temperature[:i].isdigit() == True and pobierz_temperature[i+1:].isdigit() == True:
przeliczanieTemperatur()
elif pobierz_temperature.count('-') == 1 and pobierz_temperature.find('-') == 0 and pobierz_temperature[1:i].isdigit() == True and pobierz_temperature[i+1:].isdigit() == True:
przeliczanieTemperatur()
else:
print "Blad! Sprawdz poprawnosc zapisu. Dopuszczalne formaty (np. -1, 1.1, -1.2, 3)"
elif pobierz_temperature.count('-') == 1 and pobierz_temperature.find('-') == 0 and pobierz_temperature[1:].isdigit() == True:
przeliczanieTemperatur()
else:
print "Blad! Sprawdz poprawnosc zapisu. Dopuszczalne formaty (np. -1, 1.1, -1.2, 3)"