在python中编写一个名为'convert_temp'

时间:2015-12-07 16:28:15

标签: python temperature

编写一个名为'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

或者,对于Celsius到Fahrenheit的转换:

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)添加到我的打印输出中。

3 个答案:

答案 0 :(得分:0)

您需要在: ...

之后缩进
#!/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)

答案 1 :(得分:0)

您可以做的最简单的事情是让函数返回转换温度的比例,因为它已经将其行为基于给定的比例。

它可以简单地返回一个元组,目标比例为其第一个元素

#!/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:为什么不将输入数字转换为浮动?

答案 2 :(得分:0)

仅解决上面的答案,我就对一个懒惰的用户进行了调整-可能不会在输入部分使用大写的F或C,而是将“ f”或“ c”放在下面案件... 此答案可以解决此问题,并返回在打印语句中以标题大小写正确设置的比例尺。

<accessibility-service xmlns:android="http://schemas.android.com/apk/res/android"
    android:accessibilityFlags="flagDefault|flagIncludeNotImportantViews|flagRequestTouchExplorationMode|flagRequestEnhancedWebAccessibility|flagReportViewIds|flagRetrieveInteractiveWindows"
    android:accessibilityEventTypes="typeViewClicked|typeViewFocused"
    android:accessibilityFeedbackType="feedbackGeneric"
    android:notificationTimeout="0"
    android:canRetrieveWindowContent="true"
    android:description="@string/access" />