ABC 부트캠프 데이터 탐험가 4기
[6일차] ABC 부트캠프 : Jupyter Notebook 활용 및 Python 기초 (4)
marriina
2024. 7. 12. 00:39
1. Python 표준 라이브러리: Python 에 포함된 라이브러리로 유용한 기능
- datetime - 날짜와 관련된 기능, 연, 월, 일로 날짜를 표현할 때 사용하는 함수
import datetime
day1 = datetime.date(2021, 12, 14)
day2 = datetime.date(2023, 4, 5)
diff = day2 - day1
print("datetime: ",diff.days)
결과: 477
- math - 수학연산 관련 기능
- math.gcd: 최대 공약수(gcd, greatest common divisor)를 쉽게 구할 수 있음
- math.lcm: 최소공배수( lcm, Lowest Common Multiple)를 쉽게 구할 수 있음
import math
print("mat_gcd: ",math.gcd(60, 100, 80))
mat_gcd: 20
print("math.lcm: ",math.lcm(15, 25))
math.lcm: 75
- random - 난수생성
import random
random.random()
print("random: ",random.randint(1, 10))
random: 1
- glob: 디렉토리 파일 리스트 조회
import glob
print("glob: ",glob.glob("./*.ipynb"))
glob: ['.\\01_Python_기초_1-1 (3일차).ipynb', '.\\02_Python_기초_2(4 일차).ipynb', '.\\03_Python_기초_3(5일차).ipynb', '.\\03_Python_기초_3(풀이포함).ipynb', '.\\Answer_sheet_1 (1).ipynb', '.\\Ch02.ipynb', '.\\hrkwp (1).ipynb', '.\\hrkwp.ipynb', '.\\machine_Learning(1~4).ipynb', '.\\Untitled12.ipynb']
2. 파이썬 베이스볼 게임 만들기
import random
is_done = False # 게임 종료 여부를 나타내는 플래그
while not is_done:
numbers = [str(x) for x in range(0, 10)] # 0부터 9까지의 숫자를 문자열로 변환하여 리스트에 저장
# 숫자 리스트를 100번 섞어준다.
for _ in range(100):
idx = random.randint(0, 8)
temp_num = numbers[idx]
numbers[idx] = numbers[0]
numbers[0] = temp_num
# 섞인 리스트에서 앞의 3개 숫자를 정답으로 사용한다.
answer = numbers[0:3]
print(answer) # 정답을 출력 (실제 게임에서는 숨기는 것이 좋습니다)
is_incorrect = True
while is_incorrect:
s_cnt = 0 # 스트라이크 개수
b_cnt = 0 # 볼 개수
input_nums = input('숫자를 공백단위로 입력해주세요').split()
input_idx = 0
while input_idx < len(input_nums):
input_num = input_nums[input_idx]
if input_num in answer:
answer_idx = answer.index(input_num)
if input_idx == answer_idx:
s_cnt += 1 # 숫자와 위치가 모두 일치하면 스트라이크 증가
else:
b_cnt += 1 # 숫자만 일치하면 볼 증가
input_idx += 1
is_incorrect = s_cnt != 3 # 스트라이크가 3개가 아니면 계속 입력 받음
if is_incorrect:
print(f"{s_cnt}스트라이크, {b_cnt}볼") # 스트라이크와 볼 개수 출력
is_done = input('3 스트라이크! 정답입니다! 게임을 다시 시작하시겠습니까? (Y/N)').upper() != 'Y'
# 게임을 다시 시작할지 여부를 묻고, 'Y'가 아닌 경우 게임 종료
['8', '3', '4']
숫자를 공백단위로 입력해주세요 8
1스트라이크, 0볼
숫자를 공백단위로 입력해주세요 8 3 4
3 스트라이크! 정답입니다! 게임을 다시 시작하시겠습니까? (Y/N) y
['4', '7', '6']
숫자를 공백단위로 입력해주세요 4 7 6
3 스트라이크! 정답입니다! 게임을 다시 시작하시겠습니까? (Y/N) n