首页 > 解决方案 > 如何在不使用过多 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)
                          .

我的目的是不写这么长的行,匹配元素。

标签: python

解决方案


推荐阅读