将摄氏度转换为华氏度的程序

2024-04-26 04:53:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个程序,它调用一个函数将摄氏度转换成华氏度。我已经成功地让程序工作,因为它应该是我正在尝试做一些其他的改进,并停留在如何我可以使它,所以如果用户在'20.5'输入,它将显示在控制台中成功的答案没有错误。你知道吗

但是,我只尝试包含一个特定的范围,例如从20到30。这包括20.5,21,21,5,22,22.5等等

我一直在网上寻找解决方法,但似乎找不到任何东西。任何帮助或提示将不胜感激!你知道吗

以下是我当前的代码: (忽略Docstring)

Tc = int(input("Enter a Temperature in Celsius: "))
Tf = ((9 * Tc)/5) + 32
def convert(Tc, Tf):
    """'convert' function takes 2 parameters, 'Tc' & 'Tf' and 
        completes the operation for the two variables"""
    print(Tc, "in degrees Celsius is", Tf, "in degrees Fahrenheit")
    return Tf
convert(Tc, Tf)

Tags: the方法函数答案代码用户in程序
3条回答

使用float而不是int

而不是

Tc = int(input("Enter a Temperature in Celsius: "))

使用

Tc = float(input("Enter a Temperature in Celsius: "))

原因:

如果将用户输入数据转换为int,则会出现以下错误:

ValueError: invalid literal for int() with base 10: '20.5'

另一方面,如果您将它转换为float,那么它对于intfloat值都可以正常工作。你知道吗

此外,计算/转换应该在函数内部进行,而不是在函数外部。你知道吗

OP我只想包括一个特定的范围,例如20-30

您可以在函数内部使用如下检查:if Tc <= 20 or Tc >= 30:,但它失败了,exit()。你知道吗

因此:

Tc = float(input("Enter a Temperature in Celsius: "))

def convert(Tc):
    """'convert' function takes 2 parameters, 'Tc' & 'Tf' and
        completes the operation for the two variables"""
    if Tc <= 20 or Tc >= 30:
        Tf = ((9 * Tc) / 5) + 32
        print(Tc, "in degrees Celsius is", Tf, "in degrees Fahrenheit")
    else:
        print("Invalid Temperature")
        exit()
    return Tf

convert(Tc)

输出

Enter a Temperature in Celsius: 20.5
20.5 in degrees Celsius is 68.9 in degrees Fahrenheit

范围检查

Enter a Temperature in Celsius: 31
Invalid Temperature

函数名为“convert”,但它实际上只打印一行。你知道吗

你只需要

Tc = float(input("Enter a Temperature in Celsius: "))
Tf = ((9 * Tc)/5) + 32
print(Tc, "in degrees Celsius is", Tf, "in degrees Fahrenheit")

你得到一个错误的原因,是因为你输入了20.5,然后强迫它是一个int。只要把int改成float,问题就解决了。你知道吗

读取并转换为float,就像使用float(input())

Tc = float(input("Enter a Temperature in Celsius: "))
Tf = ((9 * Tc)/5) + 32
def convert(Tc, Tf):
    """'convert' function takes 1 parameter, 'Tc' - temperature in celcius
        and converts it to faranheit"""
    print(Tc, "in degrees Celsius is", Tf, "in degrees Fahrenheit")
    return Tf
convert(Tc, Tf)

# Output

Enter a Temperature in Celsius: 26.35
26.35 in degrees Celsius is 79.43 in degrees Fahrenheit

除此之外,我还注意到在代码中,您在函数ieTf = ((9 * Tc)/5) + 32之外计算结果

可以在函数中包含该行并显示结果。这是使用函数的理想方法。你知道吗

你可以这样做

def convert(Tc):
    """'convert' function takes 2 parameters, 'Tc' & 'Tf' and 
        completes the operation for the two variables"""

    Tf = ((9 * Tc)/5) + 32


    print(Tc, "in degrees Celsius is", Tf, "in degrees Fahrenheit")
    return Tf

Tc = float(input("Enter a Temperature in Celsius: "))

convert(Tc)

在这里,您读取输入,然后将其传递给函数,函数在其中计算结果并返回结果。这是在代码中使用函数的理想方法。你知道吗

在你提到的问题中

However, I'm only trying to only include a certain range for example from 20 - 30. So this would include 20.5, 21, 21,5, 22, 22.5 etc.

所以你只需要在这个范围内进行转换,否则只需要显示其他消息。您可以使用一个简单的if在函数中执行简单的检查。你知道吗

此外,如果您可以将计算和显示分为两个不同的函数,那么这段代码可以变得更好、更高效。哪种做法最好

def display_temp(Tc, Tf):

    '''
        function to display temperature in farenheit

    '''

    print(Tc, "in degrees Celsius is", Tf, "in degrees Fahrenheit")



def convert(Tc):

    """ convert function takes 1 parameter, 'Tc' - Temperature in celcius and 
        converts it to farenheit if Tc falls in range 20 - 30"""


    if Tc <= 20 or Tc >= 30:
        print('Invalid Temperature   Out of range [20, 30]')
        return -1

    Tf = ((9 * Tc)/5) + 32

    display_temp(Tc, Tf)

    return Tf

Tc = float(input("Enter a Temperature in Celsius: "))

convert(Tc)

现在函数显示一条错误消息,当温度不在范围内时返回-1。你知道吗

相关问题 更多 >