用python编写一个名为“convert_temp”的温度转换函数

2024-09-30 13:18:48 发布

您现在位置: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)添加到打印输出中。


Tags: 函数用户程序nonesourceconvert参数is
2条回答

你能做的最简单的事情就是让函数返回转换温度的刻度,因为它已经基于给定的刻度。

它可以简单地返回一个元组,以目标标度作为第一个元素

#!/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而不是异常。

注2:为什么不把输入的数字转换成浮点数呢?

您需要在:之后缩进。。。

#!/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)

相关问题 更多 >

    热门问题