如何在 python 中将摄氏度转换为华氏度,反之亦然
How to convert Celsius to Fahrenheit and vice-versa in python
我正在尝试创建一个程序,将摄氏温度转换为华氏温度,反之亦然。
程序要做的第一件事是询问用户用户想要转换摄氏度还是华氏度。如果输入无效,则打印invalid,要求重试。
然后会要求用户输入以星号分隔的开始、结束和间隔。例如 0102。这意味着转换的开始将从 0 到 10,间隔为 2,因此要转换的值将为 0, 3, 6, 9
如果开始<结束,那么间隔应该是0<间隔,否则,你的程序会报错并要求重试
或
如果start>end,那么interval应该是0>interval,否则你的程序会报错,要求重试。
如果用户输入只有一个值,比如10。这意味着开始等于1,这将是开始的默认值,最多10,间隔是2,这将是默认值如果 start
如果用户输入有两个值,如 10*2,这意味着开始等于 10 到 2。间隔设置为默认值,因为开始 > 结束所以等于 -2。
这是我的代码,它不起作用,我被卡住了。
我要如何在这里使用 for 循环?
while True:
pick = input("Enter your input either in Celsius or Fahrenheit: ")
if pick == "Celsius":
pass
elif pick == "Fahrenheit":
pass
else:
print("Invalid input. Try again.")
continue
while True:
sei = input("Enter the start, range, and interval separated by an asterisk(*): ").split("*")
if len(sei) == 3:
if int(sei[0].isdigit()) < int(sei[1].isdigit()) and 0 < int(sei[2].isdigit()):
pass
elif int(sei[0].isdigit()) > int(sei[1].isdigit()) and 0 > int(sei[2].isdigit()):
pass
else:
print("Error. Try again.")
continue
else:
print("Error. Try again")
输入:0 * 100 * 3
输出:
!
然后程序会要求用户重试。如果是,程序将从一开始就 运行。
如果没有,它会打印“谢谢”和整个程序中无效输入的次数以及用户成功转换温度的次数。
这是我针对你的问题的解决方案(可能效率低下,我也是初学者)。
temperatureValues = []
while True:
pick = input("Enter your input either in Celsius or Fahrenheit: ")
if pick == "Celsius":
pass
elif pick == "Fahrenheit":
pass
else:
print("Invalid input. Try again.")
continue
while True:
sei = input("Enter the start, range, and interval separated by an asterisk(*): ").split("*")
if len(sei) == 3:
if int(sei[0]) < int(sei[1]) and 0 < int(sei[2]): # normal case
for i in range(int(sei[0]), int(sei[1]), int(sei[2])):
temperatureValues.append(i)
break
elif int(sei[0]) > int(sei[1]) and 0 > int(sei[2]): # reverse case
for i in range(int(sei[1]), int(sei[0]), int(sei[2])):
temperatureValues.append(i)
break
else:
print("Error. Try again.")
continue
elif len(sei) == 2:
for i in range(int(sei[0]), int(sei[1]), 2):
temperatureValues.append(i)
break
elif len(sei) == 1:
for i in range(1, int(sei[0]), 2):
temperatureValues.append(i)
break
else:
print("Error. Try Again.")
continue
print(temperatureValues)
# Implement your conversion here, by performing the conversion operation on each value of the temperatureValues list.
我还建议您通过先写入变量来进行值比较。像 int(sei[0]) > 0,而不是反过来写。使代码更具可读性。
祝你好运!
我正在尝试创建一个程序,将摄氏温度转换为华氏温度,反之亦然。
程序要做的第一件事是询问用户用户想要转换摄氏度还是华氏度。如果输入无效,则打印invalid,要求重试。
然后会要求用户输入以星号分隔的开始、结束和间隔。例如 0102。这意味着转换的开始将从 0 到 10,间隔为 2,因此要转换的值将为 0, 3, 6, 9
如果开始<结束,那么间隔应该是0<间隔,否则,你的程序会报错并要求重试
或
如果start>end,那么interval应该是0>interval,否则你的程序会报错,要求重试。
如果用户输入只有一个值,比如10。这意味着开始等于1,这将是开始的默认值,最多10,间隔是2,这将是默认值如果 start 如果用户输入有两个值,如 10*2,这意味着开始等于 10 到 2。间隔设置为默认值,因为开始 > 结束所以等于 -2。 这是我的代码,它不起作用,我被卡住了。
我要如何在这里使用 for 循环? 输入:0 * 100 * 3 输出:
! 然后程序会要求用户重试。如果是,程序将从一开始就 运行。
如果没有,它会打印“谢谢”和整个程序中无效输入的次数以及用户成功转换温度的次数。while True:
pick = input("Enter your input either in Celsius or Fahrenheit: ")
if pick == "Celsius":
pass
elif pick == "Fahrenheit":
pass
else:
print("Invalid input. Try again.")
continue
while True:
sei = input("Enter the start, range, and interval separated by an asterisk(*): ").split("*")
if len(sei) == 3:
if int(sei[0].isdigit()) < int(sei[1].isdigit()) and 0 < int(sei[2].isdigit()):
pass
elif int(sei[0].isdigit()) > int(sei[1].isdigit()) and 0 > int(sei[2].isdigit()):
pass
else:
print("Error. Try again.")
continue
else:
print("Error. Try again")
这是我针对你的问题的解决方案(可能效率低下,我也是初学者)。
temperatureValues = []
while True:
pick = input("Enter your input either in Celsius or Fahrenheit: ")
if pick == "Celsius":
pass
elif pick == "Fahrenheit":
pass
else:
print("Invalid input. Try again.")
continue
while True:
sei = input("Enter the start, range, and interval separated by an asterisk(*): ").split("*")
if len(sei) == 3:
if int(sei[0]) < int(sei[1]) and 0 < int(sei[2]): # normal case
for i in range(int(sei[0]), int(sei[1]), int(sei[2])):
temperatureValues.append(i)
break
elif int(sei[0]) > int(sei[1]) and 0 > int(sei[2]): # reverse case
for i in range(int(sei[1]), int(sei[0]), int(sei[2])):
temperatureValues.append(i)
break
else:
print("Error. Try again.")
continue
elif len(sei) == 2:
for i in range(int(sei[0]), int(sei[1]), 2):
temperatureValues.append(i)
break
elif len(sei) == 1:
for i in range(1, int(sei[0]), 2):
temperatureValues.append(i)
break
else:
print("Error. Try Again.")
continue
print(temperatureValues)
# Implement your conversion here, by performing the conversion operation on each value of the temperatureValues list.
我还建议您通过先写入变量来进行值比较。像 int(sei[0]) > 0,而不是反过来写。使代码更具可读性。 祝你好运!