본문 바로가기

코딩 연습/코딩배우기164

[python] 피보나치(Fibonacci) # 피보나치 수열 # 1 1 2 3 5 8 13 21 34 55 # a b a+b # a b a+b # a b a+b # a b a+b ################# # a = b, b = a+b ################# def fibonacci_1(n): lst = [] for i in range(n): if i = 2일때 앞 2개 더해서 추가 print(lst) fibonacci_1(10) # 다른 방법으로 ========================= def fibonacci_2(n): a = 1 b = 1 for i in range(n): print.. 2020. 8. 25.
[python] 주어진 6개의 숫자 맞추기(로또번호 맞추기) ■ 숫자 1 ~ 45 사이의 6개의 번호가 랜덤하게 추출되어 있는 상태에서 숫자(로또번호)를 1개씩 입력하면 맞춘 번호를 알려준다. 총 6번의 입력 기회가 주어지며, 맞춘 번호는 제외하고 남은 번호로 계속 게임을 진행한다. import random def number_serach(): seq_num = random.sample(range(1, 46), 6) lotto_num = list(seq_num) right_num = [] cnt = 0 while True: if cnt == 6: break if len(right_num) > 0 : print(f'\n맞춘 번호 : {right_num}') search = input(f'\n{cnt+1}번째 숫자(로또 번호 1개)를 입력하세요> ') if searc.. 2020. 8. 24.
[python] 입력받은 숫자 리스트에서 최대값과 그 위치(index) 찾기 ■ 숫자를 연속적으로 입력받고, 입력받은 숫자들 중에서 최대값을 찾고, 그 최대값의 위치와 최대값이 몇 번 더 있는지 알려주기 import copy def main(): num_list = [] while True: num = input("숫자를 입력하세요.(입력을 끝내려면 'q' 누름)>> ") try: if num == 'q': break else: num_list.append(int(num)) except Exception as err: print(err, '\n--> 숫자를 입력해주세요!!') continue if len(num_list) != 0: max, index, equi_cnt = max_judge(num_list) print('\n입력한 숫자 리스트는 {}이고,'.format(num_l.. 2020. 8. 24.
[python] 주사위 게임 ■ 주사위 게임 : 주사위 2개를 던져 나오는 합이 많으면 이기는 게임 import random import time game = True while game: print('\n\n############ 주사위 게임 ############\n') while True: time.sleep(0.5) answer = input("You,던질래요? ('y' or 'n') > ") if answer == 'n': break elif answer == 'y': for i in range(3, 0, -1): print(f'{i}') time.sleep(0.5) you1 = random.randint(1, 6) you2 = random.randint(1, 6) print(f'You 주사위 결과 : {you1}, {yo.. 2020. 8. 23.
[python] 패킹(packing), 언패킹(unpacking) 그리고 가변인자 ■ 패킹은 하나 이상의 값들을 묶는 행위이고, 언패킹은 묶여 있는 값들을 풀어내는 행위임 tpl = (1, 3, 4, 6) # 패킹 lst = [10, 20, 30, 40] # 패킹 a, b, c, d = tpl # 언패킹 print(a, b, c, d) # 1 3 4 6 x, y, *z = tpl # 언패킹 print(x, y, *z) # 1 3 4 6 print(x, y, z) # 1 3 [4, 6] - z는 리스트로 묶임 n, m, *others = lst # 언패킹 print(n, m, *others) # 10 20 30 40 print(n, m, others) # 10 20 [30, 40] def nums(): return 1, 2, 3, 4, 5 # 파이썬은 여러 개의 리턴 값 가능(튜플 패킹.. 2020. 8. 23.
[python] 제너레이터(Generators) 함수 & 표현식 ■ 파이썬의 제너레이터(generator)로 생성된 객체는 iterator 객체이며, next() 함수를 호출하여 값을 하나씩 추출한다. 'yield'가 하나라도 있으면 제너레이터가 되고, yield는 return 역할을 한다. 제너레이터 사용 시 장점은 메모리 공간의 효율성에 있다. 즉, 제너레이터 객체는 반환값을 미리 만들어서 저장해 두지 않는다. def gen_num(): # 제너레이터 함수 정의 print('first number') yield 1 print('second number') yield 2 print('third number') yield 3 g = gen_num() # 제너레이터 객체 생성, 한 문장도 실행 안됨 print(type(g)) # # next() 호출 시 yield 부분.. 2020. 8. 21.
[python] 소수(素數, prime number) 구하기 ■ 소수(素數, prime number) : 소수는 자기 자신과 1을 제외하고는 인수가 없는(어떤 수로도 나눠지지 않는) 정수 # 2에서부터 주어진 수(number)까지의 소수(素數, prime number) 구하기 # number의 숫자를 바꾸면 그 숫자까지의 소수를 구할 수 있다. def prime_number(): number = 100 prime_num = [] for n in range(2, number + 1): flag= 0 if n 2020. 8. 21.
[python] 리스트 컴프리헨션(List Comprehension) & 이터러블(iterable) 객체 ■ 리스트 컴프리헨션(List Comprehension) - 리스트 내에 계산식, for 문, if 문 등을 삽입하여 리스트를 생성하는 것 - 이 표현식은 list, set, dict과 같은 자료형, 그리고 소괄호를 이용한 generator 객체 생성에도 이용 가능함 # 짝수 구하기 even_num = [n for n in range(1, 11) if not n % 2] print(even_num) # [2, 4, 6, 8, 10] # 3의 배수 구하기 three_multi = [n for n in range(1, 11) if not n % 3] print(three_multi) # [3, 6, 9] # 이중 for문 (주사위 2개로 나올 수 있는 경우의 수) dice = [str(i) + ':' + s.. 2020. 8. 21.
[python] n부터 시작하여 m까지 연속하는 숫자의 합은? ■ 입력한 2개의 숫자 사이의 정수들을 모두 합산한 값을 보여주는 간단한 함수 def sum_nm(arg1, arg2): sum = 0 for number in range(arg1, arg2+1): sum = sum + number print('\n{}(으)로 시작하고, {}(으)로 끝나는 정수의 합은 {} 이다.\n'.format(\ arg1, arg2, sum)) return sum def main(): first_num1 = int(input('시작 숫자(정수)는? ')) first_num2 = int(input('끝 숫자(정수)는? ')) sum_nm(first_num1,first_num2) main() [실행 결과] 시작 숫자(정수)는? 2 끝 숫자(정수)는? 11 2(으)로 시작하고, 11(으.. 2020. 8. 20.
[python] 클래스(class)와 객체(object) 이해하기 파이썬 클래스(class)와 객체(object) 이해하기 ■ 함수로 아빠 나이를 관리하는 간단한 프로그램을 작성하면, # Father Age 관리 프로그램 fa_age = 39 # 전역변수 def up_fa_age(): global fa_age # 전역변수 사용 선언 fa_age += 1 def get_fa_age(): return fa_age def main(): print('2020년 아빠 나이는 {}세 이고,'.format(get_fa_age())) up_fa_age() print('내년에는 {}세 되네!'.format(get_fa_age())) main() # =========================== [실행 결과] 2020년 아빠 나이는 39세 이고, 내년에는 40세 되네! 상기 함수 프.. 2020. 8. 19.