检查数字并转换华氏度

时间:2019-03-18 18:48:22

标签: python-3.x validation converters

有人可以告诉我将两个功能连接在一起的主要规则是什么?我有两个功能:一个检查输入是否为数字,另一个将摄氏温度转换为华氏温度。如何合并它们?目前,我只是想了解如何将它们组合在一起,但是也欢迎任何有关如何使其更pythonic的建议。 谢谢您的建议!

第一:

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 :(得分:0)

这两个函数可以彼此独立运行,因此最简单的方法是将代码简单地组合成一个函数:

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)

答案 1 :(得分:0)

您可以从另一个函数中调用一个函数:

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 

答案 2 :(得分:0)

另一种可能的方法是从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()函数可以保持原样。现在无需分别调用此函数。