Python:无法让元组使用 if 语句比较字典中的元素

Python: Can't get Tuples to compare elements in it in a dictionary using if statement

项目分解

  1. 要求用户输入一个数字和第二个数字。
  2. 通过将两个数字相加创建一个名为 results 的变量 在一起。
  3. 我们在字典中搜索第一个 if 语句中的结果 名为 ans(answers 的缩写)。
  4. 这部分功能正常。它比返回那些结果 通过显示原始数值方程式给用户。还有一个 使用字母的等式版本(如果您需要,请参阅下面的完整代码 很困惑)。

但是,如果结果与第一个 if 语句不匹配,它将移至下一个。在整个 if 语句之前,一个名为 search 的变量由以下人员创建:

search = tuple(str(results))

我现在需要获取结果并搜索每个单独的字符,看看这些字符是否也出现在字典 (ans) 中。但是,它不是在字典中搜索元组字符串。

完整代码

translate_results = {
    1: "A", 2: "B", 3: "C", 4: "D", 5: "E", 6: "F", 7: "G", 8: "H",
    9: "I", 10: "J", 20: "T", 0: 0, "1": "A", "2": "B", "3": "C", "4": "D",
    "5": "E", "6": "F", "7": "G", "8": "H", "9": "I", "0": "0",
}

ans = translate_results

user = input('Enter a number: ')
user2 = input('Enter another number: ')
results = int(user) + int(user2)
search = tuple(str(results))

if results in ans:
    print(f"{user} + {user2} = {results}")
    print(f"{ans[user]} + {ans[user2]} = {ans[results]}")
elif search in ans:
    print(f"{user} + {user2} = {results}")
    print(f"{ans[user]} + {ans[user2]} = {ans[search]}")
    print(search)
else:
    print(f" Answer is {results}")
    print(f"However, elif statment failed. Tuple list created: {search}")

示例一

因此,如果用户输入 1(用户)和 3(用户 2),输出为

1 + 2 = 3
A + B = C

基于第一个 if 语句。

第 2 部分 If 语句

当它从字典 (ans) 中的搜索(变量)中找到单个字符串字符时,它应该被激活。比假设在字典中匹配这些字符并显示字典值。

示例二(如果有效)

因此用户输入 1(用户)和 29(用户 2),输出将是在将变量搜索与 ans 匹配之后:

1 + 29 = 30
A + BI = C0

是这样的吗?

translate_results = {
    1: "A", 2: "B", 3: "C", 4: "D", 5: "E", 6: "F", 7: "G", 8: "H",
    9: "I", 10: "J", 20: "T", 0: 0, "1": "A", "2": "B", "3": "C", "4": "D",
    "5": "E", "6": "F", "7": "G", "8": "H", "9": "I", "0": "0",
}

ans = translate_results

user = input('Enter a number: ')
user2 = input('Enter another number: ')
results = int(user) + int(user2)
search = tuple(str(results))
if results in ans:
    print(f"{user} + {user2} = {results}")
    print(f"{ans[user]} + {ans[user2]} = {ans[results]}")
elif set(search).issubset(set(ans.keys())):
    txt1= ''       #for each create a string where the program appends the translated values
    for i in user:
        txt1+=str(ans[i])
    txt2= ''
    for i in user2:
        txt2+=str(ans[i])
    txtres= ''
    for i in search:
        txtres+=str(ans[i])
    print(f"{user} + {user2} = {results}")
    print(f"{txt1} + {txt2} = {txtres}")
    print(search)
else:
    print(f" Answer is {results}")
    print(f"However, elif statment failed. Tuple list created: {search}")

输入:

10, 15

输出:

10 + 15 = 25
A0 + AE = BE
('2', '5')

同时检查 translate() 函数,如果有帮助的话。