2015-12-07 3 views
0

Напишите функцию для преобразования температуры с именем 'convert_temp'.Напишите функцию в python для преобразования температуры с именем 'convert_temp'

  • Он должен иметь возможность обрабатывать конверсии по Фаренгейту и Цельсию, а также конверсии по Цельсию в Фаренгейт.
  • Он должен принимать и читать два аргумента, которые ему передаются: во-первых, следует использовать температурный шкалу исходной температуры (только «F» или «C»), а во-вторых, количество градусов исходной температуры ,
  • Затем он должен преобразовать исходную температуру от Фаренгейта до Цельсия или от Цельсия до Фаренгейта, если это необходимо.
  • И, наконец, эта функция должна распечатать исходную температуру и масштаб, а также преобразованные температуры и масштаба.

Функция подписи должна быть:

def convert_temp(scale=None, source_temp=None): 

Затем написать короткую программу, чтобы использовать функцию, которую написал (как функция и программа должна быть частью одного и того же файла). Ваша программа должна предложить пользователю ввести температурную шкалу (предположим, что пользователь выберет тип «F» или «C»), а затем предложит пользователю ввести несколько градусов. Используя значения, предоставленные пользователем, программа должна затем вызвать «convert_temp» функцию и передать в двух аргументов, вдоль этих линий:

convert_temp(scale=F, source_temp=98.6) 

и подпрограмма должна производить линию продукции, которая выглядит следующим образом (для Фаренгейта в Цельсия):

98.6 degrees F is 37.0 degrees C 

или, для преобразования Цельсия в Фаренгейта:

100.0 degrees C is 212.0 degrees F 

первой температуры и которые вы должны сообщить, - это те, которые введен пользователь, за которыми следуют преобразованная температура и другая шкала.

У меня есть следующий код до сих пор:

#!/usr/bin/env python3 
def convert_temp(scale=None, source_temp=None): 
if scale == "F": 
return(source_temp - 32.0) * (5.0/9.0) 
elif scale == "C": 
return(source_temp * (9.0/5.0)) + 32.0 
else: 
print("Needs to be (F) or (C)!") 
scale = input("Select (F) or (C): ") 
source_temp = int(input("What is the temperature: ")) 
m = convert_temp(scale, source_temp) 
print(source_temp, "degrees", scale, "is", m, "degrees", scale) 

Что нужно помочь, чтобы добавить преобразованный шкалу (F или C) на мой вывод на печать.

+0

Привет и добро пожаловать. Похоже, вы достигли прогресса. Не совсем ясно, к чему конкретно привязаны? – wwkudu

ответ

0

Вы должны отступа после : ...

#!/usr/bin/env python3 
def convert_temp(scale=None, source_temp=None): 
    if scale == "F": 
     return(source_temp - 32.0) * (5.0/9.0) 
    elif scale == "C": 
     return(source_temp * (9.0/5.0)) + 32.0 
    else: 
     print("Needs to be (F) or (C)!") 
     return 

scale = input("Select (F) or (C): ") 
source_temp = int(input("What is the temperature: ")) 
m = convert_temp(scale, source_temp) 
print(source_temp, "degrees", scale, "is", m, "degrees", scale) 
+0

Да, отступы ошибочны, но я понимаю, что проблема при отображении результатов показывает масштаб назначения. Как вы можете видеть, теперь результаты показывают одинаковый масштаб – Pynchia

0

Самый простой, что вы можете сделать, это есть функция возвращает масштаб преобразованной температуры, так как он уже основывает свое поведение на данной шкале ,

Он может просто вернуть кортеж, со шкалой назначения в качестве кулачного элемента

#!/usr/bin/env python3 
def convert_temp(scale=None, source_temp=None): 
    if scale == "F": 
     return 'C', (source_temp - 32.0) * (5.0/9.0) 
    elif scale == "C": 
     return 'F', (source_temp * (9.0/5.0)) + 32.0 
    else: 
     print("Needs to be (F) or (C)!") 

scale = input("Select (F) or (C): ") 
source_temp = int(input("What is the temperature: ")) 
s, m = convert_temp(scale, source_temp) 
print(source_temp, "degrees", scale, "is", m, "degrees", s) 

так что теперь выходные показывает как в оригинальном масштабе и преобразованного одно:

Select (F) or (C): F 
What is the temperature: 92 
92 degrees F is 33.333333333333336 degrees C 

Select (F) or (C): C 
What is the temperature: 33 
33 degrees C is 91.4 degrees F 

Примечание: функция выводит сообщение об ошибке, если заданная шкала не поддерживается. Это должно быть raise и исключение.

Note2: почему бы не преобразовать введенные числа в поплавок?