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

Python 将摄氏度转换为华氏度的程序,python,Python,我正在开发一个程序,它调用一个函数将摄氏度转换为华氏度。我已经成功地让程序按照它应该是什么样子工作了。我正在尝试做一些其他的改进,我一直在思考如何才能做到这一点。因此,如果用户在“20.5”中输入,它将在控制台中成功地显示答案,而不会出现错误 然而,我只是尝试只包括一个特定的范围,例如从20到30。这包括20.5,21,21,5,22,22.5等等 我一直在网上寻找解决方法,但似乎什么都找不到。任何帮助或提示都将不胜感激 以下是我当前的代码工作: (忽略文档字符串) 使用float代替int:

我正在开发一个程序,它调用一个函数将摄氏度转换为华氏度。我已经成功地让程序按照它应该是什么样子工作了。我正在尝试做一些其他的改进,我一直在思考如何才能做到这一点。因此,如果用户在“20.5”中输入,它将在控制台中成功地显示答案,而不会出现错误

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

我一直在网上寻找解决方法,但似乎什么都找不到。任何帮助或提示都将不胜感激

以下是我当前的代码工作: (忽略文档字符串)


使用
float
代替
int

而不是

Tc = int(input("Enter a Temperature in Celsius: "))
Tc = float(input("Enter a Temperature in Celsius: "))
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
使用

Tc = int(input("Enter a Temperature in Celsius: "))
Tc = float(input("Enter a Temperature in Celsius: "))
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
为什么

Tc = int(input("Enter a Temperature in Celsius: "))
Tc = float(input("Enter a Temperature in Celsius: "))
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
如果将用户输入数据转换为
int
,则会出现以下错误:

ValueError:基数为10的int()的文本无效:“20.5”

另一方面,如果将其转换为
float
,则对
int
float
值都适用

此外,计算/转换应在函数内部进行,而不是在函数外部

OP:我只是尝试只包括一个特定范围,例如从20到30

您可以在函数内部使用如下检查:
如果Tc=30:
失败,
exit()

因此

Tc = int(input("Enter a Temperature in Celsius: "))
Tc = float(input("Enter a Temperature in Celsius: "))
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
范围检查

Tc = int(input("Enter a Temperature in Celsius: "))
Tc = float(input("Enter a Temperature in Celsius: "))
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

使用
float(input())

除此之外,我还注意到在代码中,您在函数之外计算结果,即
Tf=((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)
在这里,您读取输入,然后将其传递给函数,函数在其中计算结果并返回结果。这是在代码中使用函数的理想方法

在你提到的问题中

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

因此,您只想在这个范围内进行转换,否则只需显示一些其他消息。您可以使用简单的
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)
def显示温度(Tc,Tf):
'''
以法伦海特为单位显示温度的功能
'''
打印(Tc,“以摄氏度为单位”,Tf,“以华氏度为单位”)
def转换(Tc):
“”“convert函数接受1个参数,'Tc'-以celcius和
如果Tc在20-30英寸范围内,则将其转换为farenheit
如果Tc=30:
打印('无效温度--超出范围[20,30]')
返回-1
Tf=((9*Tc)/5)+32
显示温度(Tc、Tf)
返回Tf
Tc=浮动(输入(“以摄氏度为单位输入温度:”)
转换(Tc)

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

您的函数称为“转换”,但它实际上只打印一行

你所需要的只是

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”,问题就解决了。

从第一行删除该int。欢迎使用Python。我认为您需要备份并学习更多关于编程的知识。
convert
功能的用途是什么?现在,所有实际进行转换的逻辑都在函数之外的
Tf=((9*Tc)/5)+32行中!另一方面,
print
语句与转换无关,因此可能属于其他地方!实际上,您的
convert()
只是打印输出。你不应该切换到函数中的实际转换吗?使用这些答案,然后在Tc<30和Tc>20:@N00b时,它实际上应该是这样的:
如果Tc=30
,更好的建议是将转换和打印分开。