Nowe posty

xx zapis klatki filmu mp4 w postaci obrazu jpg (2)
2019-09-16, 22:33:32
xx Dystrybucja do szkolnej pracowni. (6)
2019-09-16, 18:39:04
xx Jaką dystrybucje polecacie pod mój sprzęt? (1)
2019-09-16, 14:53:22
xx Thunderbird - jedna poczta na dwóch dystrybucjach (3)
2019-09-16, 12:34:56
xx Nowe forum linuxowskie (5)
2019-09-16, 11:55:40
xx zrobmikompa.pl - co myślicie o tej stronce (8)
2019-09-16, 11:44:47
xx Jaka dystrybucja pod mon sprzęt? (1)
2019-09-16, 10:52:58
xx BIOS nie widzi dysku z Linuxem (2)
2019-09-14, 10:41:31
xx Problem z antiX wersja live (0)
2019-09-12, 20:56:49
xx Serwer do Nauki (5)
2019-09-05, 07:35:50

Autor Wątek: [Python] Sposób na uproszczenie kodu....  (Przeczytany 3046 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 6
    • Zobacz profil
[Python] Sposób na uproszczenie kodu....
« dnia: 2013-11-28, 17:20:49 »
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)"

Offline Kamil Leduchowski

  • Users
  • Stały bywalec
  • ***
  • Wiadomości: 152
    • Zobacz profil
[Python] Sposób na uproszczenie kodu....
« Odpowiedź #1 dnia: 2013-11-29, 15:46:39 »
Kod: python [Zaznacz]

pobierz_temperature = raw_input("Podaj temperature (niewazne w jakiej skali!)")
try:
    temperatura_float = float(pobierz_temperature)
except ValueError:
    print "Blad! Sprawdz poprawnosc zapisu. Dopuszczalne formaty (np. -1, 1.1, -1.2, 3)"

To tak na początek może, zamiast sprawdzać samemu czy to poprawna liczba czy też nie...