如何在 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,而不是反过来写。使代码更具可读性。 祝你好运!