很抱歉,标题不是那么具体。我希望在程序中重构变量和if语句,以使代码更有效。目前的代码相当大,我相信它可以缩短至少70%。
我刚开始学习Python两周前,我可能会错过很明显的基本功能。
以下是代码:
def function():
variable = int(input('Input: ')
if variable == 10:
variable = 1
elif variable == 9:
variable = 0.9
如果我想用不同的值和变量重复这个,它会变得很长,这就是我想要解决的问题。
一位朋友告诉我使用字典来存储值,但我不确定如何将if语句与字典值一起使用。
我应该如何构建代码以缩短代码?
答案 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()
我没有为每个输入写出所有固定值,而只是为输入中想要的结果制作公式。 (我知道,非常明显和容易)