질문파이썬으로 처음 코딩 공부를 시작하는데 어렵네요..
이번에 파이썬을 시작으로 처음 코딩을 배우고 있습니다. 로또를 활용하여 리스트에서 모든 경우의 수를 뽑아내고 그 중 제가 원하는 범위만 추출하는 방식으로 프로그램을 만들고 있습니다. 그런데 이렇게 계속 if문을 반복해서 쓰는건 아닌 것 같아서 조언을 듣고 싶습니다. 보다 좋은 코드를 알려주시면 감사하겠습니다. nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 21,22,23,24,25,26,27,28,29,30, 31,32,33,34,35,36,37,38,39,40, 41,42,43,44,45 ] answer = [] def nCr(n, ans, r): if n == len(nums): if len(ans) == r: temp = [i for i in ans] answer.append(temp) return ans.append(nums[n]) nCr(n + 1, ans, r) ans.pop() nCr(n + 1, ans, r) nCr(0, [], 6) for row in answer: if 21<sum(row)<37 : if 14<row[0]+row[1]+row[2]<91 : if 59<row[3]+row[4]+row[5]<131 : if 29< max(row)+min(row) <66 : if 16< max(row)-min(row) <44 : print(len(row)) print(row[0], row[1], row[2],row[3], row[4],row[5]) ''' - 모든 경우의 수 // - 총합 90~200 // - 가장 높은 수와 낮은 수의 합(30~65) // - 가장 높은 수와 낮은 수의 차(17~43) // - 1, 2, 3 자리 수 합 15~90 // - 4,5,6 자리 수 합 60~130 // - 첫수합(십의 자리 수 더한 총 합 3~19) - 끝수합(일의 자리 수 더한 총 합 11~38) - 일의 자리가 3개 이상 같은 경우 제거 - 3의 배수 (6개 중 1개~4개 포함) - 5의 배수 (6개 중 0개~3개 포함) - 25 이상만 제거 - 25 이하만 제거 - 홀수만 제거 %2 = 1 - 짝수만 제거 %2 = 0 - 연속수 (4자리 이상 연속/ 1234,891011…) - 같은 자릿수 4개 이상 제외 ''' #print(answer) #경우의 수 리스트 print(len(answer)) #총 경우의 갯수 from pprint import pprint pprint(answer, indent=1, width=30)