【问题标题】:How to convert Celsius to Fahrenheit and vice-versa in python如何在python中将摄氏度转换为华氏度,反之亦然
【发布时间】:2021-12-06 00:26:43
【问题描述】:

我正在尝试创建一个程序,将摄氏度转换为华氏度,反之亦然。

程序要做的第一件事是询问用户用户想要转换摄氏温度还是华氏温度。如果输入无效,打印无效并要求重试。

然后会要求用户输入由星号分隔的开始、结束和间隔。例如 0102。这意味着转换的开始将是从 0 到 10,间隔为 2,因此要转换的值将是 0, 3, 6, 9

如果start

或者

如果start>end,则interval应该为0>interval,否则你的程序会显示错误并要求重试。

如果用户输入只有一个值,比如 10。这意味着 start 等于 1,这将是 start 的默认值,最大为 10,间隔是 2,这将是默认值开始时的间隔

如果用户输入有两个值,比如 10*2,这意味着 start 等于 10 到 2。间隔设置为默认值,从 start>end 开始等于 -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

输出: !

然后程序会要求用户再试一次。如果是,程序将从一开始就运行。 如果没有,它会打印“Thank you”以及整个程序中无效输入的次数以及用户成功转换温度的次数。

【问题讨论】:

  • 你打算添加一些真实的代码而不是pass吗?
  • 是的。我想使用 for 循环将开始到结束从摄氏转换为华氏,反之亦然。
  • 那么请继续更新您的代码!在 Stack Overflow 上,您应该尽最大努力自己解决问题。

标签: python for-loop if-statement while-loop converters


【解决方案1】:

这是我对您的问题的解决方案(可能效率低,我也是初学者)。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-04
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 2019-02-24
    相关资源
    最近更新 更多