1.가위 바위 보 게임
깜짝 퀴즈!
enum을 활용하여 사용자가 가위바위보 중 두개를 입력하여 누가 이겼는 지 판별하는 게임
# 가위,바위,보 게임
import enum
class RockScissorPaper(enum.Enum):
ROCK = '바위'
SCISSIOR = '가위'
PAPER = '보'
# todo: enum 다시 해보기
def rock_scissor_paper(data):
rock = RockScissorPaper.ROCK.value
scissor = RockScissorPaper.SCISSIOR.value
paper = RockScissorPaper.PAPER.value
# data ex) '가위,바위'
if (rock not in data) and (scissor not in data) and (paper not in data):
return '잘못된 입력입니다.'
data = data.split(',')
u1 = data[0]
u2 = data[1]
if u1 == u2:
return '비겼습니다.'
if (u1 == rock and u2 == scissor) or (u1 == scissor and u2 == paper) or (u1 == paper and u2 == rock):
return 'user1이 이겼습니다.'
else:
return 'user2가 이겼습니다.'
data=input('입력해주세요 (ex: 가위,바위):')
rock_scissor_paper(data)
안다는 것은 바로 적용할 수 있는 것이다!
2. while, for
# 1번 코드와 2번 코드가 동일
# (1번)
for i in range(10,60,10):
print(i)
# (2번)
lst = [i for i in range(10,60,10)]
# lst = [10,20,30,40,50]
i = 0
while i < len(lst):
# while bool : bool 값이 True일 때까지 반복
print(lst[i])
i+=1 # <==
lst = [i for i in range(10,60,10)]
# lst = [10,20,30,40,50]
i = 0
while i < len(lst):
# while bool : bool 값이 True일 때까지 반복
i+=1 # <==
print(lst[i])
- 위 코드와 아래 코드의 차이를 논리적으로 생각해보아라.
- 미리 결과를 예상해볼 수 있어야 한다!
- 아래 코드는 index out of range 에러가 남
lst = [i for i in range(10,60,10)]
# lst = [10,20,30,40,50]
i = 0
while i < len(lst):
# while bool : bool 값이 True일 때까지 반복
i+=1
# 스파게티 코드를 줄일 수 있는 팁!
# 거짓일 때 아예 멈추게 하는 것이 더 깔끔하다.
if i >= len(lst): # <==
break
print(lst[i])
2-1.Hello 찍기
- 설계하는 연습!
2-2. 짝수 존재 여부 판별
'''
원본 데이터: 정수로 이루어진 리스트(ex> [1,2,3,4,5])
[프린트]
만약 짝수가 있으면, 짝수있어요!
만약 짝수가 없으면, 짝수없어요!
'''
data = [1,2,3,4,5]
for i in data:
if i % 2 == 0:
print('짝수있어요!')
break
else:
# for문이 다 돌고 아래 실행
print('짝수없어요!')
# 1번보단 2번 쓰는 것이 무한 depth (if else, if else )를 줄일 수가 있다.
# 1번
while True:
if True:
pass
else:
pass
# 2번
while True:
if True:
continue
pass
3. Exception
- 오류 종류를 알아야 제대로 디버깅할 수 있다.
- 비즈니스 오류를 줄이기를 위해서는 따로 Exception 을 회사 정책에 맞게 만들어야 한다.
3-1. ValueError
- 부적절한 값(value)을 가진 인자(input)를 받았을 때 발생하는 에러
- 비즈니스 오류를 줄일 때 필요. (ex. 은행에서 대출받을 사람 이름이 틀리면 안됨.)
3-2. IndexError (index out of range)
3-3. SyntaxError (문법오류)
3-4. NameError
- 변수 이름을 찾을 수 없는 경우
- 변수 선언을 하지 않았을 때
3-5.ZeroDivisionError
- 0으로 나누려고 할 때
3-6. TypeError
3-7. AttributeError
- 속성 참조 또는 대입이 실패한 경우 발생
- 올바른 함수를 쓰지 않을 때
3-8. KeyError
- dict에서 접근하려는 키 값이 없을 때 발생
'개발공부 > SK Networks Family AI bootcamp 강의노트' 카테고리의 다른 글
4일차 [ 파이썬 기초/ try except] (0) | 2025.01.10 |
---|---|
첫 주차 회고 (1/10) (0) | 2025.01.10 |
3일차 [ 파이썬 기초(조건문,반복문) ] (0) | 2025.01.09 |
3일차 [파이썬 기초(자료구조-사칙연산, escaping, 형변환,문자열)] (0) | 2025.01.09 |
2일차 [파이썬 기초 (가상환경,자료구조(변수,상수,비교연산자,슬라이싱))] (0) | 2025.01.08 |