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