我正在编写一个编程问题,用户输入可以定义变量,如下所示:
length = 1
当用户执行此操作时,我将该对存储在字典中:
{'length': '1'}
问题是,当我后来尝试检查词典中是否存在某个键时,我总是得到False,即使它肯定在那里。这是我的代码:
import math
def main():
curr_formula = input()
substitutions = dict()
while(curr_formula != "0"):
if("=" in curr_formula):
split_formula = curr_formula.split("=")
substitutions[split_formula[0]] = split_formula[1]
curr_split = curr_formula.split(" ")
for i in range(len(curr_split)):
# this if statement never runs for some reason
if(curr_split[i] in substitutions):
curr_split[i] = substitutions[curr_split[i]]
print(''.join(curr_split))
curr_formula = input()
main()
输入“length = 1”然后“length + 2”应打印“1 + 2”,但不能检测到密钥已存在。对此问题的任何见解将不胜感激!
答案 0 :(得分:2)
当您在'='
上拆分时,在第一个词之后和第二个词之前有一个空格。
>>> 'length = 1'.split('=')
['length ', ' 1']
当你在' '
上拆分时,它已被移除。
>>> 'length = 1'.split(' ')
['length', '=', '1']
因此,你的词典中的键可能不同。