我如何关联成对的值并在给定第一个值的情况下查找第二个值?

How can I associate pairs of values and look up the second given the first?

我刚开始 python 编码,我想从真正简单的事情开始。只是一个计算器,可以根据输入计算半径为圆的面积。我也想把单位也包括进来,问题来了。

正如您在第 4 行中看到的,我的代码询问用户想要使用的单位。如果用户想选择厘米,他会写 1(我也想让用户从列出的单位中选择)但最后结果在数字后面加上 1,因为他只写了 1(不是厘米)。

import math

r = float(input("What is the radius of your circle?"))
unit = str(input("Choose the unit of measurement" '\n' "1) centimeters" '\n' "2) meters" '\n' "3) inches"))
result = (math.pi * r ** 2)


print("The area of your circle with radius of " + str(r) + " is:" '\n' + str(result) + " " + unit)

如何让代码用单位的缩写形式写入结果 - cm、m、in? 我想创建这样的东西:

if unit == "1"
    unit == "cm"

但这太冗长了。

您可以像下面这样创建 dictionary

dct_unit = {'1':'cm', '2':'m'}

完整代码:

import math

r = float(input("What is the radius of your circle?"))
unit = str(input("Choose the unit of measurement" '\n' "1) centimeters" '\n' "2) meters" '\n' "3) inches"))
result = (math.pi * r ** 2)

dct_unit = {'1':'cm', '2':'m'}

print("The area of your circle with radius of " + str(r) + " is:" '\n' + str(result) + " " + dct_unit[unit])

我能想到的获得所需输出的最简单方法是创建字典并使用正确的单位映射数字。

import math

r = float(input("What is the radius of your circle?"))
unit = int(input("Choose the unit of measurement" '\n' "1) centimeters" '\n' "2) meters" '\n' "3) inches"))
result = (math.pi * r ** 2)

UNIT_OPTION_TO_TEXT_MAP = {
1:'centimeters squared',
2:'meters squared',
3:'inches squared',
}

print("The area of your circle with radius of " + str(r) + " is:" '\n' + str(result) + " " + UNIT_OPTION_TO_TEXT_MAP.get(unit,'centimeters squared'))