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



项目分解

  1. 要求用户输入一个号码和第二个号码。
  2. 通过将两个数字相加来创建一个名为results的变量在一起。
  3. 我们在字典中的第一个if语句中搜索结果命名ans(答案的缩写)。
  4. 这部分功能正常。然后再返回这些结果向用户显示原始的数值方程。和一个版本的方程式使用字母(见完整的代码下面,如果你感到困惑)。

但是,如果结果与第一个if语句不匹配,则移动到下一个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 (user)和3 (user2),输出是:
1 + 2 = 3
A + B = C

基于第一个if语句。

第二部分If语句

当它在字典(ans)中从search (variable)中找到单个字符串字符时,应该激活它。那么应该将这些字符在字典中匹配并显示字典值。

示例二(如果有效)

所以用户输入1 (user)和29 (user2)输出将在匹配变量搜索到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()函数,如果有帮助的话。

相关内容

  • 没有找到相关文章

最新更新