Python:无法让元组使用 if 语句比较字典中的元素
Python: Can't get Tuples to compare elements in it in a dictionary using if statement
项目分解
- 要求用户输入一个数字和第二个数字。
- 通过将两个数字相加创建一个名为 results 的变量
在一起。
- 我们在字典中搜索第一个 if 语句中的结果
名为 ans(answers 的缩写)。
- 这部分功能正常。它比返回那些结果
通过显示原始数值方程式给用户。还有一个
使用字母的等式版本(如果您需要,请参阅下面的完整代码
很困惑)。
但是,如果结果与第一个 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() 函数,如果有帮助的话。
项目分解
- 要求用户输入一个数字和第二个数字。
- 通过将两个数字相加创建一个名为 results 的变量 在一起。
- 我们在字典中搜索第一个 if 语句中的结果 名为 ans(answers 的缩写)。
- 这部分功能正常。它比返回那些结果 通过显示原始数值方程式给用户。还有一个 使用字母的等式版本(如果您需要,请参阅下面的完整代码 很困惑)。
但是,如果结果与第一个 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() 函数,如果有帮助的话。