Blair  - Soul Eater 3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_05

• 패스트캠퍼스 데이터분석 부트캠프 12기

3. 데이터 분석을 위한 핵심 Tool Python(김상모 강사님)_05

oujin 2024. 1. 9. 00:13
728x90

▶ 딕셔너리 사용시 'key' 가 없는 경우에 대한 처리

lux = {'health' : 490, 'mana' : 334, 'melee' : 550, 'armor' : 18.72}

print("키 유무 여부를 확인 :")
if 'health' in lux:
    print(lux['health'])    # 키의 값이 없으면 에러 발생

if lux.get('health') != None:    # 키의 값이 없을 경우 = None
    print(lux['health'])

# print("key를 사용하여 value에 접근하는 경우:")
# print(lux['health1'])    # 키의 값이 없으면 에러 발생

print("get 메소드를 사용하는 경우:")
print(lux.get('health1'))    # 키의 값이 없을 경우 : None


조건문

 

▶ if 조건문 : 조건식을 지정하고   :  을  붙이고 들여쓰기(Tap)를 한 후 실행 할 코드가 온다.

pass : 아무일도 하지 않고 그냥 넘어간다는 뜻, pass만 넣고 나중에 할 일은 주석으로 남겨놓는 방식임.

num = int(input(''))
if num ==7:
    print('행운')
num = int(input('값 입력 :'))
if num ==10:
    print(f'{num}은 10과 같습니다.')
if num >10:
    print(f'{num}은 10보다 큽니다.')
if num <10:
    print(f'{num}은 10보다 작습니다.')

 

 

▶ 중첩 if 문 : if문 안에 if문 사용

x = int(input(''))
if x >= 10:
    print('10이상입니다.')
    if x==15:
        print('15입니다.')
    if x==20:
        print('20입니다.')

 

값 비교시 !=
객체 비교시 is , is not

 

 

▶ else를 사용하여 두 방향으로 분기하기

조건식이 만족할때와 만족하지 않을때를 각각 적을 수 있다.

num = int(input('값 입력 :'))
if num ==10:
    print('10입니다')
else:
    print('10이 아닙니다')

 

 

  None = Null => False

if True:
    print('참입니다.')
else:
    print('거짓이니다')
if None:
    print('참')
else:
    print('거짓')

 

 

2진수, 10진수, 16진수, 실수와 관계없이 0이면 거짓, 0이 아닌 수는 모두 참임

if 0:
    print('참',0)
else:
    print('거짓',0)
if 1:
    print('참',1)
else:
    print('거짓',1)
if 0x1f:
    print('참',0x1f)
else:
    print('거짓',0x1f)
if 0b1000:
    print('참',0b1000)
else:
    print('거짓',0b1000)
if 13.5:
    print('참',13.5)
else:
    print('거짓',13.5)

 

 

문자열은 참, 빈문자열은 거짓

if 'Hello':
    print('참')
else:
    print('거짓')
if '':
    print('참')
else:
    print('거짓')

 

 

조건식 여러개 지정하기

written_test = 75
coding_test = True
if written_test >=80 & coding_test==True:
    print('합격')
else:
    print('불합격')

 

 

코드 작성 5단계

1. 문제이해

2. 변수

3. 구조

4. 작성

5. 검증

 

 

연습문제

각 과목의 점수가 0~100사이가 아니라면 '잘못된 점수' 출력, 아니라면 평균을 구하고 평균이 80점 이상이면 '합격', 아니면 '불합격' 출력

방법 1

kor, eng, mat, sci = map(int, input("국어, 영어, 수학, 과학 점수를 띄어쓰기로 입력하세요 : ").split())
avg = (kor + eng + mat + sci) / 4
if 0<=kor<=100 and 0<=eng<=100 and 0<=mat<=100 and 0<=sci<=100:
    if avg >=80:
        print('합격')
    else:a
        print('불합격')
else:
    print('잘못된 점수')

방법 2 

scoreList = list(map(int,input().split()))
sum = 0
for i in range(len(scoreList)):
    if (0 > scoreList[i]) | (100 < scoreList[i]):
        print('잘못된 점수')
        break
    else :
        sum += scoreList[i]
avg = sum / (len(scoreList))
if avg >= 80:
    print('합격')
else :
    print('불합격')

 

 

if elif else 를 사용하여 여러 조건 사용하기

참, 거짓으로만 프로그램을 작성하기 어려울 때 사용

if-else 의 else에 다시 if-else 를 사용하는 것과 동일하다

if-elif-else 구문은 if-elif- elif- elif- elif- ...-else 로 사용한다.

if-elif-else 구문은 예외상황 처리가 가능하다.

x = int(input())
if 11 <= x <= 20:
    print("11~20")
elif 21 <= x <=30:
    print("21~30")
else:
    print("아무것도 해당되지 않음")

 

 

- 음료수 자판기 만들기 1 -

방법 1

sel = int(input("1,2,3 버튼을 누르세요 : "))

if sel == 1:
    print("콜라")
elif sel == 2:
    print("사이다")
elif sel == 3:
    print("환타")
else:
    print("제공하지 않는 메뉴")

방법 2

menu = {1:"콜라", 2:"사이다", 3:'환타'}
sel = int(input("1,2,3 버튼을 누르세요 : "))

if sel == 1:
    print(menu[sel])
elif sel == 2:
    print(menu[sel])
elif sel == 3:
    print(menu[sel])
else:
    print("제공하지 않는 메뉴")

 

 

- 음료수 자판기 만들기 2-

money = int(input("800원 이상 입력하세요 : "))

menu = {1:"콜라", 2:"사이다", 3:'환타'}
price = {"콜라":600, "사이다":700, '환타':800}
sel = int(input("1,2,3 버튼을 누르세요 : "))

if sel == 1:
    print(money - price[menu[sel]])
elif sel == 2:
    print(money - price[menu[sel]])
elif sel == 3:
    print(money - price[menu[sel]])
else:
    print("제공하지 않는 메뉴")

else는 예외처리 할 대 사용하는 것이 좋음

 

 

사분면 좌표 판단

xy = list(map(int, input("x,y의 형태로 좌표를 입력 하세요.").split(',')))
if 0<xy[0] and 0<xy[1]:
    print("1사분면")
elif 0<xy[0] and 0<xy[1]:
    print("2사분면")
elif 0<xy[0] and 0<xy[1]:
    print("3사분면")
elif 0<xy[0] and 0<xy[1]:
    print("4사분면")
else:
    print("사분면에 존재하지 않는 값입니다.")

 

 

사각형 안의 한 점 판단

xy = list(map(int, input("x,y의 형태로 좌표를 입력 하세요.").split(',')))

if 50<=xy[0]<=100 and 40<=xy[1]<=80:
    print("사각형 안에 있습니다")
else:
    print("사각형 안에 없습니다.")

 

 

범위에 해당하는 값 출력

userInput = int(input("입력값: "))
ans = userInput-20
output = 0
if ans < 0:
    output = 0
elif ans >255:
    output = 255
else:
    output = ans
print(output)

 

 

▶ 정각인지 아닌지 판별

userInput = list(input("시간을 입력하시오 ").split(":"))
print("현재시간:",userInput[0],":",userInput[1])
if  userInput[1]=='00':
    print('정각입니다.')
else:
    print('정각이 아닙니다.')
data = input()
if data[3:] =='00':
    print("정각")
else:
    print("정각 아님")

 

 

▶주민번호 뒷자리 성별 구분

jumin = input("주민번호 뒷자리: ")

if len(jumin) ==7:
    if jumin[0]=="1" or jumin[0]=="3":
        sex = "남자"
        print(sex)
    elif jumin[0]=="2" or jumin[0]=="4":
        sex = "여자"
        print(sex)
    else:
        print("잘못된 입력입니다.")
else:
    print("자리수가 틀립니다.")

 

 

▶음료수 자판기 코드 

money = int(input("금액을 입력하세요: "))
menu = {1:"사이다", 2:"콜라", 3:"오렌지쥬스"}
price = {"사이다":700, "콜라":600, "오렌지쥬스":800}
sel = int(input("음료를 선택하세요: "))

if 10000>=money >= price[menu[sel]]:
    balance = money - price[menu[sel]]
    print("잔액은",balance,"입니다.")
elif money < price[menu[sel]]:
    print("금액이 부족합니다")
else:
    print("금액 초과, 최대금액 1만원.")


반복문

 

▶ for, range

for i in range(7):
    print("hello, world!",i+5)
    
for i in range(5,12):
    print("hello, world!",i+5)

 

 

▶ revrsed(range())

num = int(input())
for i in reversed(range(num)):
    print("Hello World!",i)

 

 

▶ 숫자를 입려받아 반복문

snum = int(input("시작 숫자"))
enum = int(input("끝 숫자"))
jump= int(input("간격"))
for i in range(snum,enum+1,jump):
    print(i)

 

 

for +range도 가능하고

▶ for +시퀀스 객체도 가능하다

# 리스트
a = [10,20,30,40,50]
for i in a:
    print(i)
    
# 튜플
fruits = ("apple","orange", 'grape')
for i in fruits:
    print(i)
    
# 문자열
for letter in 'python':
    print(letter)

 

 

▶ 매번 값을 입력받아 평균 구하기

sum=0.

for i in range(10):
    print(f"{i+1}번째의 돌")
    weight = float(input("    무게(g):"))
    sum+=weight
          
avg = sum/10
print("평균 :", avg,"g")

 

 

▶ 한번에 여러개의 값을 입력받아 평균 구하기

sum=0
weight = list(map(float,input("무게(g):").split()))

for i in range(10):
    print(f"{i+1}번째의 돌", end="\n")
    print("무게(g):",weight[i])
    sum+=weight[i]
          
avg = sum/len(weight)
print("평균 :", avg,"g")
sum=0
st = int(input("학생의 수 : "))

for i in range(st):
    print(f"{i+1}번 학생의 점수 : ")
    score = int(input())
    sum+=score
          
avg = sum/st
print("평균 : ", avg,"점")
728x90