如何在Python中更有效地构造变量?

时间:2018-06-05 01:17:27

标签: python arrays dictionary variables if-statement

很抱歉,标题不是那么具体。我希望在程序中重构变量和if语句,以使代码更有效。目前的代码相当大,我相信它可以缩短至少70%。

我刚开始学习Python两周前,我可能会错过很明显的基本功能。

以下是代码:

def function():

    variable = int(input('Input: ')

    if variable == 10:
        variable = 1
    elif variable == 9:
        variable = 0.9

如果我想用不同的值和变量重复这个,它会变得很长,这就是我想要解决的问题。

一位朋友告诉我使用字典来存储值,但我不确定如何将if语句与字典值一起使用。

我应该如何构建代码以缩短代码?

4 个答案:

答案 0 :(得分:-1)

字典就像映射。因此:

def f(x):
    d = {
        10: 1,
        9: 0.9
    }

    return d[x]

这会缩短吗?并不是的。但在某些情况下,它可能比使用if语句链更清晰。

  • 如果陈述是非常通用的结构。
  • 字典在应用程序中受到更多限制。

有时,更具体(而不是使用一般结构)更清楚。

答案 1 :(得分:-1)

至少对于10和9,你将变量除以10.因此,最好以这种方式编写它而不是明确地写它。此外,如果是这种情况,您可以将两种情况合二为一。

这会稍微缩短代码。

def function():
    variable = int(input('Input: '))
    if variable == 10 || variable == 9:
        variable /= 10

答案 2 :(得分:-2)

如果要清楚地实现查找逻辑,请使用 dict 结构来保存键/值对。

键通常是一个字符串,值可以是任何其他类型,如字符串,整数等。

在您的情况下,您可以设置lookup_table = {" 10":1," 9":0.9}, 并通过键获取值,例如,variable = lookup_table [str(10)]

lookup_table={"variable":"value1","variable2":2}
variable = lookup_table[variable]

答案 3 :(得分:-2)

谢谢大家的回答,解决方案比我想象的要容易,现在我因为不知道而感到愚蠢。

def probeNew():
    variable = int(input('Input: '))
    output = variable/6.666667
    print(output)

probeNew()

我没有为每个输入写出所有固定值,而只是为输入中想要的结果制作公式。 (我知道,非常明显和容易)