def search(searched_word, searched_def, searched_type): global last_page global words_per_page stat = 'false' result_indexes = [] if searched_word != '' and searched_def == '' and searched_type == '': for j in range(0, len(df)): if (searched_word.lower()) in (df['word'][j].lower()): result_indexes.append(j) else: pass elif searched_def != '' and searched_word == '' and searched_type == '': for j in range(0, len(df)): if (searched_def.lower()) in (df['definition'][j].lower()): result_indexes.append(j) else: pass elif searched_type != '' and searched_word == '' and searched_def == '': for j in range(0, len(df)): if searched_type == df['type'][j]: result_indexes.append(j) else: pass elif searched_word != '' and searched_def != '' and searched_type == '': for j in range(0, len(df)): if (searched_word.lower()) in (df['word'][j].lower()) and (searched_def.lower()) in (df['definition'][j].lower()): result_indexes.append(j) else: pass elif searched_def != '' and searched_type != '' and searched_word == '': for j in range(0,len(df)): if searched_type == df['type'][j] and (searched_def.lower()) in (df['definition'][j].lower()): result_indexes.append(j) else: pass elif searched_type != '' and searched_word != '' and searched_type == '': for j in range(0,len(df)): if searched_type == df['type'][j] and (searched_word.lower()) in (df['word'][j].lower()): result_indexes.append(j) else: pass elif searched_word != '' and searched_def != '' and searched_type != '': for j in range(0,len(df)): if searched_type == df['type'][j] and (searched_word.lower()) in (df['word'][j].lower()) and (searched_def.lower()) in (df['definition'][j].lower()): result_indexes.append(j) else: pass elif searched_word == '' and searched_def == '' and searched_type == '': messagebox.showwarning('Incomplete Input','Atleast One Input Field Required') if len(result_indexes) == 0: messagebox.showwarning('No Output', 'No Matching Word Found') else: stat = 'true' if stat == 'true': last_page = len(result_indexes) // words_per_page if (len(result_indexes)/ words_per_page) > last_page or (len(result_indexes)/words_per_page) < last_page : last_page += 1 else: pass results(result_indexes, 1) else: pass