Преобразование температуры без вызова методов - PullRequest
0 голосов
/ 28 февраля 2020

Я ищу решение для распечатки t1, преобразованного в Кельвины, без вызова любого из методов ниже. См. В нижней части, как создается t1 и каким должно быть решение для распечатки. Я надеюсь услышать некоторые отзывы в ближайшее время!

class Temperature:
    # --- YOUR CODE STARTS HERE
    val = 0


    def __init__(self,val, unit):
        self.val = val
        self.unit = unit

    def celcius(self):
        if self.unit == "F":
            new_temp = (self.val - 32)*(5/9)
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        elif self.unit == "K":
            new_temp = self.val - 273.15
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        else:
            return round(self.val,2), self.unit


    def fahrenheit(self):
        if self.unit == "C":
            new_temp = (self.val * (9/5)) + 32
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        elif self.unit == "K":
            new_temp = (val - 273.15) * (9/5) + 32
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        else:
            return round(self.val,2), self.unit

    def kelvin(self):
        if self.unit == "F":
            new_temp = (self.val - 32)*(5/9) + 273.15
            self.unit = "K"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        elif self.unit == "C":
            new_temp = self.val + 273.15
            self.unit = "K"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        else:
            return round(self.val,2), self.unit

    def __str__(self):





t1 = Temperature(31, "F")

print(t1)

Проблема заключается в печати t1 для получения результата 272,59 K

Ответы [ 2 ]

0 голосов
/ 28 февраля 2020

Вам просто нужно реализовать метод __str__. Это как Java toString ()

Это поможет:

def __str__(self):
    return "%f %s"%(self.val,self.unit)
0 голосов
/ 28 февраля 2020

Вот что я могу сделать, чтобы удовлетворить ваши требования:

class Temperature:
    # --- YOUR CODE STARTS HERE
    val = 0


    def __init__(self,val, unit):
        self.val = val
        self.unit = unit

    def celcius(self):
        if self.unit == "F":
            new_temp = (self.val - 32)*(5/9)
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        elif self.unit == "K":
            new_temp = self.val - 273.15
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        else:
            return round(self.val,2), self.unit


    def fahrenheit(self):
        if self.unit == "C":
            new_temp = (self.val * (9/5)) + 32
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        elif self.unit == "K":
            new_temp = (val - 273.15) * (9/5) + 32
            self.unit = "F"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        else:
            return round(self.val,2), self.unit

    def kelvin(self):
        if self.unit == "F":
            new_temp = (self.val - 32)*(5/9) + 273.15
            self.unit = "K"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        elif self.unit == "C":
            new_temp = self.val + 273.15
            self.unit = "K"
            new_unit = self.unit
            return round(new_temp,2), new_unit
        else:
            return round(self.val,2), self.unit

    def __str__(self):
        self.val,self.unit = self.kelvin()
        return str(self.val) + ' ' + str(self.unit)


t1 = Temperature(31, "F")

print(t1)

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...