проверить, если число и конвертировать Фаренгейт - PullRequest
1 голос
/ 18 марта 2019

Может кто-нибудь сказать мне, что является основным правилом для соединения двух функций вместе?У меня есть две функции: одна проверяет, является ли ввод числом, а другая преобразует градусы Цельсия в градусы Фаренгейта.Как мне их объединить?Я нахожусь на том уровне, на котором сейчас хотел бы просто понять, как их объединить, но любой совет о том, как сделать его более питоническим, также ценится.Спасибо за советы!

Первый:

def is_number():
    user_input = input ('>>> Please enter a temperature in Celsius: ')
    if (user_input.isdigit()):
        return user_input
    else:
        print ('It is not a number!')
        return is_number()
is_number()

и второй:

t = input('>>> Please enter a temperature in Celsius: ')
def Celsius_to_Fahrenheit(t):
    fahrenheit = (t * 1.8) + 32
    print('>>> ' + str(t) + 'C' + ' converted to Fahrenheit is: ' +     str(fahrenheit) + 'F')
Celsius_to_Fahrenheit(float(t))

(возможный дубликат не является дубликатом, так как даже вопрос там не очень понятен)и это не отвечает на мой вопрос)

Ответы [ 3 ]

0 голосов
/ 18 марта 2019

Вы можете вызывать одну функцию из другой:

def convert_celsius_to_fahrenheit(celsius_temperature):
    if celsius_temperature.isdigit():
        fahrenheit_temperature = celsius_to_fahrenheit(celsius_temperature)
        return fahrenheit_temperature

def celsius_to_fahrenheit(celsius_temperature):
    fahrenheit_temperature = (t * 1.8) + 32
    return fahrenheit_temperature 
0 голосов
/ 18 марта 2019

Другим возможным способом было бы вызвать is_number() из Celsius_to_Fahrenheit():

def Celsius_to_Fahrenheit():
  t = float(is_number())
  fahrenheit = (t * 1.8) + 32
  print('>>> ' + str(t) + 'C' + ' converted to Fahrenheit is: ' + str(fahrenheit) + 'F')

Celsius_to_Fahrenheit()

Функция is_number() может оставаться как есть.Теперь нет необходимости вызывать эту функцию отдельно.

0 голосов
/ 18 марта 2019

Обе функции могут работать независимо друг от друга, поэтому проще всего было бы просто объединить код в одну функцию:

def Celsius_to_Fahrenheit(t):
    while not t.isdigit():
        print ('It is not a number!')
        t = input ('>>> Please enter a temperature in Celsius: ')
    t = float(t)
    fahrenheit = (t * 1.8) + 32
    print('>>> ' + str(t) + 'C' + ' converted to Fahrenheit is: ' + str(fahrenheit) + 'F')    

t = input ('>>> Please enter a temperature in Celsius: ')
Celsius_to_Fahrenheit(t)
...