Python:变量名称中的变量

时间:2018-04-09 13:35:57

标签: python variables

我对python和编程很新。我目前正在建立鸡尾酒调音台,并从头开始编码! 我的程序幸运的是,因为我只是在另一个之后添加简单的命令...但这限制了我在扩展我的项目时的极度! 所以这是我的问题:

我开始用两种鸡尾酒来测试我的电子产品。 所以在我的程序中的各种函数中,我有类似的东西(例子)

def Cocktail1():
    Pump1Amount (< this is a variable) = 100 * Cocktail1Ingredient1 (<this is a variable too)
    Pump2Amount = 100 * Cocktail1Ingredient2
    Pump3Amount = 100 * Cocktail1Ingredient3

def Cocktail2():
    Pump1Amount (< this is a variable) = 100 * Cocktail2Ingredient1 (<this is a variable too)
    Pump2Amount = 100 * Cocktail2Ingredient2
    Pump3Amount = 100 * Cocktail2Ingredient3

and so on...

现在我想添加更多鸡尾酒和更多泵!但是为了用我之前的代码实现这一点,我需要做很多重复并在所有函数中更改数百个单位...我想要12个鸡尾酒,12个泵,所以这已经等于144个不同的代码段。 ..然后像我所展示的情况在我的节目中存在了几次!

所以我的想法是这样的:

def CocktailX():
    ChosenCocktail = X (<this is a variable that is set with pressing a button)
    Pump1Amount = 100 * CocktailXIngredient1
    Pump2Amount = 100 * CocktailXIngredient2

你看到我在说什么?我想通过在变量名中使用常规变量来引用变量!

正如我所说,我真的很新,所以不知道所有重要的术语和一切!所以请向你解释一下你对我的回答,就像你会给四年级学生做的那样:D非常感谢你提前!!!!

1 个答案:

答案 0 :(得分:0)

虽然可以在许多语言(包括Python)中计算变量名称,但是通过数字标签( index )区分的许多类似变量的常见情况)由数组(在Python中称为list)处理。你可以写PumpAmounts[0]CocktailIngredients[3][5] - 后者在概念上是一个带有两个索引的变量,实际上是list list个。{/ p>

重要的一点是索引是表达式 - 可以是文字a[1]),变量(a[x]) ,或(更复杂的)计算(a[b[2*getHalfIndex(foo)]])。这些选择还允许您在更改索引的循环中处理列表中的所有元素,尽管在Python中简单访问每个元素的常规方法不使用索引:

for elem in array:
  foo(elem, ...)

PS-I当我开始编程时遇到了同样的问题:我的第一个参考(对于不同的语言)覆盖的函数远不止语法,所以我不知道数组是否存在。