###前提・実現したいこと
多重ループの抜け方がわからないです
###発生している問題・エラーメッセージ
多重ループを抜ける際breakなのかsys.exitなのかその他諸々なのかどれを選択すればいいのかわかりません。
###該当のソースコード
python3
1import xlrd 2import os.path 3import numpy as np 4import itertools 5import sys 6import openpyxl 7import collections 8 9xlfile = "結果.xlsx" 10if os.path.exists(xlfile): 11 xls = xlrd.open_workbook(xlfile) 12 sheet1 = xls.sheet_by_index(0) 13 nrows = sheet1.nrows 14 ncols = sheet1.ncols 15 data = np.zeros(ncols*nrows).reshape((nrows, ncols)) 16 surablist = [] 17 atusalist = [] 18 seibunlist = [] 19 taisekilist = [] 20 kekkalist = [] 21 kekkalist4 = [] 22 kekka = [] 23 24 for r in range(0, nrows): 25 for c in range(0, ncols): 26 data[r,c] = sheet1.cell(r,c).value 27 28 for r in range(0, nrows): 29 surablist.append(data[r,0]) 30 atusalist.append(data[r,2]) 31 seibunlist.append(data[r,3]) 32 taisekilist.append(data[r,5]) 33 34 for i, _ in enumerate(surablist, 4): 35 if i == 5: 36 break 37 for j in itertools.combinations(surablist, r=i): 38 if i == 4: 39 g = int(j[0]-1) 40 u = int(j[1]-1) 41 z = int(j[2]-1) 42 a = int(j[3]-1) 43 if data[g,3] == data[u,3] and data[g,3] == data[a,3] and data[g,3] == data[z,3] and data[u,3] == data[z,3] and data[a,3] == data[u,3] and data[z,3] == data[a,3] and data[g,2] + data[u,2] + data[z,2] + data[a,2] <= 2.0 and data[g,5] + data[u,5] + data[z,5] + data[a,5] <= 2.56: 44 kekkalist4.append(j) 45 46 47 48z = 0 49a = 0 50 51z = len(kekkalist4) 52set(map(tuple, kekkalist4)) 53for bb in range(0,z-1): 54 for bc in range(bb+1,z): 55 for bd in range(bc+1,z): 56 for be in range(bd+1,z): 57 for bf in range(be+1,z): 58 for bg in range(bf+1,z): 59 for bh in range(bg+1,z): 60 for bi in range(bh+1,z): 61 for bj in range(bi+1,z): 62 set1 = set(kekkalist4[bb]) 63 set2 = set(kekkalist4[bc]) 64 set3 = set(kekkalist4[bd]) 65 set4 = set(kekkalist4[be]) 66 set5 = set(kekkalist4[bf]) 67 set6 = set(kekkalist4[bg]) 68 set7 = set(kekkalist4[bh]) 69 set8 = set(kekkalist4[bi]) 70 set9 = set(kekkalist4[bj]) 71 a += 1 72 print(a) 73 if bool (set1&set2) == True: 74 np.delete(kekkalist4,bc) 75 sys.exit 76 elif bool (set1&set3) == True: 77 np.delete(kekkalist4,bd) 78 sys.exit 79 elif bool (set1&set4) == True: 80 np.delete(kekkalist4,be) 81 sys.exit 82 elif bool (set1&set5) == True: 83 np.delete(kekkalist4,bf) 84 sys.exit 85 elif bool (set1&set6) == True: 86 np.delete(kekkalist4,bg) 87 sys.exit 88 elif bool (set1&set7) == True: 89 np.delete(kekkalist4,bh) 90 sys.exit 91 elif bool (set1&set8) == True: 92 np.delete(kekkalist4,bi) 93 sys.exit 94 elif bool (set1&set9) == True: 95 np.delete(kekkalist4,bj) 96 sys.exit 97 elif bool (set2&set3) == True: 98 np.delete(kekkalist4,bd) 99 sys.exit 100 elif bool (set2&set4) == True: 101 np.delete(kekkalist4,be) 102 sys.exit 103 elif bool (set2&set5) == True: 104 np.delete(kekkalist4,bf) 105 sys.exit 106 elif bool (set2&set6) == True: 107 np.delete(kekkalist4,bg) 108 sys.exit 109 elif bool (set2&set7) == True: 110 np.delete(kekkalist4,bh) 111 sys.exit 112 elif bool (set2&set8) == True: 113 np.delete(kekkalist4,bi) 114 sys.exit 115 elif bool (set2&set9) == True: 116 np.delete(kekkalist4,bj) 117 sys.exit 118 elif bool (set3&set4) == True: 119 np.delete(kekkalist4,be) 120 sys.exit 121 elif bool (set3&set5) == True: 122 np.delete(kekkalist4,bf) 123 sys.exit 124 elif bool (set3&set6) == True: 125 np.delete(kekkalist4,bg) 126 sys.exit 127 elif bool (set3&set7) == True: 128 np.delete(kekkalist4,bh) 129 sys.exit 130 elif bool (set3&set8) == True: 131 np.delete(kekkalist4,bi) 132 sys.exit 133 elif bool (set3&set9) == True: 134 np.delete(kekkalist4,bj) 135 sys.exit 136 elif bool (set4&set5) == True: 137 np.delete(kekkalist4,bf) 138 sys.exit 139 elif bool (set4&set6) == True: 140 np.delete(kekkalist4,bg) 141 sys.exit 142 elif bool (set4&set7) == True: 143 np.delete(kekkalist4,bh) 144 sys.exit 145 elif bool (set4&set8) == True: 146 np.delete(kekkalist4,bi) 147 sys.exit 148 elif bool (set4&set9) == True: 149 np.delete(kekkalist4,bj) 150 sys.exit 151 elif bool (set5&set6) == True: 152 np.delete(kekkalist4,bg) 153 sys.exit 154 elif bool (set5&set7) == True: 155 np.delete(kekkalist4,bh) 156 sys.exit 157 elif bool (set5&set8) == True: 158 np.delete(kekkalist4,bi) 159 sys.exit 160 elif bool (set5&set9) == True: 161 np.delete(kekkalist4,bj) 162 sys.exit 163 elif bool (set6&set7) == True: 164 np.delete(kekkalist4,bh) 165 sys.exit 166 elif bool (set7&set8) == True: 167 np.delete(kekkalist4,bi) 168 sys.exit 169 elif bool (set7&set9) == True: 170 np.delete(kekkalist4,bj) 171 sys.exit 172 elif bool (set8&set9) == True: 173 np.delete(kekkalist4,bj) 174 sys.exit 175 else: 176 print (set1,set2,set3,set4,set5,set6,set7,set8,set9)
sys.exitの部分で一番はじめのループに戻りたいです。この記述で戻れているでしょうか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/08 15:49
2017/12/08 16:38
2017/12/08 16:58
2017/12/08 17:28
2017/12/08 17:44