python-3.x - Python:无法使用 if 语句让元组在字典中比较其中的元素
问题描述
项目分解
- 要求用户输入一个数字和第二个数字。
- 通过将两个数字相加来创建一个名为 results 的变量。
- 我们在名为 ans(答案的缩写)的字典中搜索第一个 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(用户)和 3(用户 2),则输出为:
1 + 2 = 3
A + B = C
基于第一个 if 语句。
第 2 部分 If 语句
假设当它从字典(ans)中的搜索(变量)中找到单个字符串字符时激活。比假设让这些字符在字典中匹配它们并改为显示字典值。
示例二(如果有效)
所以用户输入 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() 函数,如果有帮助的话。
推荐阅读
- multi-tenant - 调用一些 @Transactional 方法后 C3P0 耗尽
- android - 用于 Android Q 上的辅助存储的媒体扫描仪
- python - How do I split a string with multiple word delimiters in Python?
- r - 使用 read.csv2 - 如何缩短 Windows 目录/文件的路径?
- java - FragmentManager 尝试查找项目的旧包名并给出“No view found for fragment”
- javascript - Angular 7+:资产文件夹中的图像不出现
- javascript - 在属性中显示反应组件名称
- sql-server - 为每个用户插入月份
- python - __init__() 为关键字参数 'bar' 获得了多个值
- java - 使用带有 JAVA 和 Selenium 的 REST ASSURED 计算数组的数量并访问 JSON 响应中的特定数组