TIL (today I learned)
2019-03-10 TIL
grin-quokka
2019. 3. 11. 08:39
-
코드잇 ) 프로그래밍 기초 :
-
고급단어장 피드백 수정 후 제출
- 123456789101112131415161718192021from random import randintvoca = open('voca.txt', 'r')dic = {}for content in voca:temp = content.strip().split(':')dic[temp[0]] = temp[1]eng = list(dic.keys())while True:random = randint(0, len(eng) - 1)answer = input(eng[random] + ': ')if answer == 'q':breakelif answer != dic[eng[random]]:print("아쉽습니다. 정답은 %s입니다." % (dic[eng[random]]))else:print('맞았습니다!')voca.close()
cs -
중간점검(로또) 제출
- 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748from random import randint# 무작위,1 - 45 사이의 서로 다른숫자 여섯개 뽑기, 오름차순 리스트 리턴def generate_numbers():list = []i = 0while i < 6:random = randint(1, 45)if random not in list:list.append(random)i += 1return sorted(list)# 보너스까지 포함해 7개 숫자 뽑기# 정렬된 6개의 당첨 번호와 1개의 보너스 번호 리스트를 리턴# 예: [1, 7, 13, 23, 31, 41, 15]def draw_winning_numbers():list = generate_numbers()while True:bonus = randint(1, 45)if bonus not in list:list.append(bonus)return list# 두 리스트에서 중복되는 숫자가 몇개인지 리턴def count_matching_numbers(list1, list2):count = 0for num in list1:if num in list2:count += 1return count# 로또 등수 확인해서 당첨금 리턴def check(numbers, winning_numbers):match = count_matching_numbers(numbers, winning_numbers[:-1])if match == 6:return 1000000000elif match == 5 and winning_numbers[-1] in numbers:return 50000000elif match == 5:return 1000000elif match == 4:return 50000elif match == 3:return 5000else:return 0
cs -
객체 지향 프로그래밍
- 1234567891011121314151617181920212223# sns의 유저class User:# 초기값 설정def __init__(self, name, email, password):self.name = nameself.email = emailself.password = password# 자기 소개 (이름, 이메일)def introduce(self):print(("My name is %s") % (self.name))print(("My email address is %s") % (self.email))# 자기 소개 두번def introduce_twice(self):self.introduce()self.introduce()# 테스트user1 = User("Young", "young@codeit.kr", "123456")user1.introduce()user1.introduce_twice()
cs -
재귀 함수
- 123456789# 1부터 n까지의 합을 리턴def triangle_number(n):if n == 1:return 1return triangle_number(n-1) + n# 테스트: triangle_number(1)부터 triangle_number(10)까지 출력for i in range(1, 11):print(triangle_number(i))
cs - 12345678910# n번째 피보나치 수를 리턴def fib(n):if n == 1 or n == 2:return 1return fib(n - 2) + fib(n - 1)# 테스트: fib(1)부터 fib(10)까지 출력# 1, 1, 2, 3, 5, 8, 13, 21, 34, 55for i in range(1, 11):print(fib(i))
cs - 12345678910111213# n의 각 자릿수의 합을 리턴def sum_digits(n):if n < 10:return nstring = str(n)return sum_digits(int(string[:-1])) + int(string[-1])# 테스트print(sum_digits(22541))print(sum_digits(92130))print(sum_digits(12634))print(sum_digits(704))print(sum_digits(3755))
cs -
정렬
-
선택정렬
- 123456789101112131415161718# 선택 정렬def selection_sort(my_list):for i in range(len(my_list)):min_index = ifor j in range(i + 1, len(my_list)):value = my_list[j]if value < my_list[min_index]:min_index = j# 자리 바꾸기temp = my_list[i]my_list[i] = my_list[min_index]my_list[min_index] = tempreturn my_list# 테스트some_list = [11, 3, 6, 4, 12, 1, 2]selection_sort(some_list)print(some_list)
cs
-