python - 如何在不使用过多 if/elif 语句的情况下相互匹配项目?
问题描述
if/elif
当满足以下条件时,我正在寻找一种不使用过多语句来搜索项目的方法。否则,更有效的方式。
import tkinter as tk
from tkinter import messagebox
import json
from form import Character_Assessment
class Dominant:
def __init__(self):
self.character1=[a,b,c]
self.character2=[a,b,c]
self.character3=[a,b,c]
self.character4=[a,b,c]
self.character5=[a,b,c]
self.character6=[a,b,c]
def find_match(self):
self.y_1 = 0
self.x_1 = 0
for f in self.extrovert:
q3 = tk.simpledialog.askstring(title="Please type 'y','dmt','ext'", prompt=f)
if q3 == "y":
self.x_1 += 1
elif q3 == "dmt":
self.x_1 += 1.5
elif q3 == "ext":
self.x_1 += 2
if 0 <=self.x_1 <= 16 and 2.25<=self.y_1<3:
with open("Draft.txt", mode="a") as dr:
dr.write(f"Specific:\n {self.character3[5]}")
elif 0 <=self.x_1 <= 16 and 1.5<=self.y_1<2.25:
with open("Draft.txt", mode="a") as dr:
dr.write(f"Specific:\n {self.character3[6]}")
elif 0 <=self.x_1 <= 16 and 0<=self.y_1<1.5:
with open("Draft.txt", mode="a") as dr:
dr.write(f"Specific:\n {self.character3[7]}")
.
.(20 more conditions)
.
我的目的是不写这么长的行,匹配元素。
解决方案
推荐阅读
- c# - 如何使用融合图绘制多线图?
- c# - WPF MVVM LiveCharts如何显示X轴标签?
- python - 计算与另一列匹配的字符串的出现次数
- spring-boot - 测试 Camel 路由时使用模拟的 dataSource bean
- javascript - 在 React Native 中按下按钮添加 DOM 元素
- python - 如何在python中编写while循环
- node.js - 在多个测试用例 mocha node-js 中使用 JWT 令牌
- reactjs - 尝试导入 rootreducer Redux 时无法解析“./features/reducers”
- c# - 尝试使用 wkhtmltopdf 将 HTML 转换为 PDF 时由于网络错误而退出代码 1
- python - 简单的神经网络调试