-
[부스트코스] 모두를 위한 파이썬(PY4E) 2주차 조건부 실행, 함수PYTHON/부스트코스 PY4E 2022. 9. 13. 20:22728x90
2주차는 3. 조건부실행과 4. 함수에 대해 학습했다
03. <조건부 실행>
핵심 키워드 미리보기
들여쓰기(indentation)
if
else
elif
비교연산자
try/except
if문
출력값 위에 코드를 해석해보면
1. x에 5를 넣어라
2. 만약 x가 10보다 작다면 Smaller를 출력해라
그러므로 5는 10보다 작기 때문에 해당코드를 실행하면 Smaller이 출력된다
비교연산자
비교를 할 때 사용하는 비교 연산자는 파이썬에서 다음과 같이 사용된다
위에 크다 작다는 우리가 아는 그대로 사용하면 된다
크거나 같다와 같거나 크다는 부등호가 무조건 앞에 사용된다는 것만 기억하면 쉽다
같다는 ==을 사용하는데 그 이유는 우리가 지정한 변수에 특정한 값을 넣고 싶을 때 = 를 사용하기 때문이다
그래서 위에서 본 코드처럼 x = 5는 x와 5는 같다는 뜻이 아니라 x에 5를 넣어라라고 해석이 된다
다르다는 != 을 사용한다 느낌표는 경고 메시지를 떠올리면 쉽게 생각해낼 수 있다 값이 다르니까 !=
들여쓰기
코드에서 중요하게 여겨지는 것 중 하나가 들여쓰기이다
들여쓰기가 잘못된 경우 에러메시지가 뜨면서 코드가 실행되지 않기 때문이다
들여쓰기가 잘못된 경우 indentation error가 뜬다 들여쓰기 올바른 예시 올바르게 입력하자 값을 출력해냄 if문 아래에 쓰이는 조건식의 경우는 들여쓰기 후 쓰여진다
다른 언어에서 {}안에 내용을 쓰는것 같은 방식인데 파이썬은 {}대신 들여쓰기를 사용한다
들여쓰기를 하는 방법은 tab과 spacebar 4번 누르는 방식 두가지가 있다
컴퓨터가 tab은 못알아 들을 수 있어서 spacebar를 4번 누르는 것이 좋다고 한다
단일 if문, if else문
단일 if문( 조건이 참인 경우에만 미리 입력해놓은 실행코드를 실행)if else문 => if 조건이 거짓인경우 else 이하 실행코드가 실행
조건문 elif와 예외처리 try/except
multi way decisions
: 하나의 조건문 안에 여러조건을 추가가능
위의 코드를 해석해보면 만약 x가 2보다 작을때 smaller 를 출력하세요
elif(=else if) 니까 첫번째 조건식은 포함하지 않고 해당조건식을 만족해야한다
즉, 사잇값이다 그러므로 2<= x <10가 되니까 2이상이고 10미만인 수가 된다
마찬가지로 아래 조건식들도 살펴보면 10<= x <20 , 20<= x <40 , 40<= x <100 , 100<= x가 된다
그런데 우리는 맨 처음에 x에 21을 넣어주었다
그러므로 x는 4번째 조건인 20<= x <40 에 해당하기 때문에 출력값은 Large가 나오게 된다
try/except
try 와 except를 사용하면 error가 뜨는 것을 미리 대처 할 수 있다
try 아래에 실행할 코드
except 아래에 예외 발생시, 처리 할 코드
error 메시지 대신에 except 아래 코드가 시행되기 때문에 error가 나는 것을 막을 수 있다
astr에 문자열이지만 정수를 넣어서 int로 하면 숫자로 변환가능해서 값이 올바르게 출력되는 경우
try아래가 시행되어 원하는 값이 나온다
astr에 문자를 넣은 경우 int로 변환이 불가능 한 경우
에러메시지 대신에,
Hello만 출력 후 바로 아래로 내려가서 Integer로 변환할 수 없습니다 메시지가 나온다
04. <함수>
핵심 키워드 미리보기
함수
인자(argument)
매개변수(parameter)
내장함수
반환값
함수
우리가 원하는 함수를 직접 만들어서 지정해줄 수 있다
예를 들어 양치질을 시행하는 함수를 만든다고 가정해보자
def 양치질():
치약과 칫솔을 꺼낸다
치약을 칫솔에 1cm가량 바른다
물을 묻힌다
윗니를 닦는다
아랫니를 닦는다
물을 헹군다
def는 define의 약자로 함수를 정의한다는 뜻이다 그리고 함수명(parameter):를 쓰면 된다
그리고 아래에 들여쓰기 후 해당 함수 식을 정의해주면 된다
예시로 인사하는 함수를 하나 만들어서 코드로 구현해보았다
코드를 알아보기 전에 먼저 알아야 되는 개념이있다
인자와 매개변수이다
인자는 함수를 호출할때 전달하는 값을 말한다
print안에 넣어준 값도 인자다
매개변수는 함수가 정의된 곳에서 변수처럼 사용하는 하는 것이다
위의 코드를 예시로 살펴보면,
hello(name) name이 매개변수에 해당한다
코드를 보면 hello(name)을 입력하면 Hello, name을 출력하는 함수를 만들었다
특정횟수만큼 입력값을 받고 인사하는 코드를 만들었다
input은 값을 입력받는 함수이다
input 함수의 기본값은 문자열이라서 숫자로 받고 싶을 때는 int나 float을 앞에 붙여부면 된다
위에 코드처럼 정수로 받고 싶으면 앞에 int를 붙여주면 정수형으로 값을 받을 수 있다
반복문은 뒤에서 나오니까 나중에 자세히 다뤄보겠다
내장함수
내장함수는 이미 파이썬이 정의해놓은 함수이다
대표적으로 print()==출력하기, input()==값을 입력받기,float()==실수형, int()==정수형
반환값(return)
return 사용시 계산값을 반환해준다
중간에 빠져나올 수도 있다
def 함수이름(매개변수): return 반환값
코칭스터디는 매주 주어진 양의 강의를 듣고 미션을 주시면 수행해서 제출해야 한다
1주차는 간단한 자기소개정도여서 게시글에 내용을 올리지는 않았다
2주차부터는 본격적으로 미션이 주어져서 각 문항마다 코드를 기입해서 제출해야했다
2주차에 주어진 미션은 총 4가지 문제였다
다행히 2주차 문제까지는 많이 어렵지 않았다
문제 밑에 더보기를 보면 작성했던 코드를 볼 수 있어요
한 번 생각해보고 확인해보세요
답은 하나가 아니니까 고민해보세요
Q1. 컴퓨터와 함께하는 가위바위보 게임을 만들어봅시다!
더보기#random을 불러온다computer = random.choice(["가위","바위","보"])#컴퓨터는 랜덤으로 출력하기 때문에 가위, 바위, 보 리스트 중 랜덤으로 선택하게 한다you = input("가위, 바위, 보 중 하나를 내세요:")#사용자에게 가위 바위 보 중에 내도록 한다print("나:", you)#print 함수를 이용해서 사용자가 낸 값을 보여준다
'''만약 사용자가 가위를 낸 경우, 컴퓨터가 가위를 내면 "컴퓨터:가위" 출력 후 "비김" 출력컴퓨터가 바위를 내면 "컴퓨터:바위" 출력 후 "컴퓨터 승리" 출력컴퓨터가 보를 내면 "컴퓨터:보" 출력 후 "내가 승리" 출력'''if you == "가위":if computer == "가위":print("컴퓨터:",computer)print("비김!")elif computer == "바위":print("컴퓨터:",computer)print("컴퓨터 승리!")elif computer == "보":print("컴퓨터:",computer)print("내가 승리!")
'''if = else if 사용자가 바위를 낸 경우, 컴퓨터가 바위를 내면 "컴퓨터:바위" 출력 후 "비김" 출력컴퓨터가 보를 내면 "컴퓨터:보" 출력 후 "컴퓨터 승리" 출력컴퓨터가 가위를 내면 "컴퓨터:가위" 출력 후 "내가 승리" 출력'''elif you == "바위":if computer == "바위":print("컴퓨터:",computer)print("비김!")elif computer == "보":print("컴퓨터:",computer)print("컴퓨터 승리!")elif computer == "가위":print("컴퓨터:",computer)print("내가 승리!")
'''if = else if 사용자가 보를 낸 경우, 컴퓨터가 보를 내면 "컴퓨터:보" 출력 후 "비김" 출력컴퓨터가 가위를 내면 "컴퓨터:가위" 출력 후 "컴퓨터 승리" 출력컴퓨터가 바위를 내면 "컴퓨터:바위" 출력 후 "내가 승리" 출력'''elif you == "보":if computer == "보":print("컴퓨터:",computer)print("비김!")elif computer == "가위":print("컴퓨터:",computer)print("컴퓨터 승리!")elif computer == "바위":print("컴퓨터:",computer)print("내가 승리!")
#가위 바위 보 이외의 값을 사용자가 입력시 다시 입력하세요 출력else:print("값을 다시 입력하세요")Q2. 월급을 입력하면 연봉을 계산해주는 계산기를 만들어 봅시다. 세전 연봉과 세후 연봉을 함께 출력하도록 해봅니다.
더보기monthly_paymant = float(input("윌급(만원단위):"))#사용자에게 만원단위로 월급을 받는다(천원단위까지 계산할 수 있게 float함수 부여)yearly_payment =(monthly_paymant * 12)#월급을 연봉으로 바꿔준다'''연봉이 1200만원 이하 일 때, 세금은 6%이기 때문에 전체 값 곱하기 0.94(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''if yearly_payment <= 1200:tax_after = (monthly_paymant * 12) * 0.94print("세전연봉",yearly_payment)print("세후연봉",tax_after)'''elif = else if (1200만원이하가 아닌 값 중 만약에 4600만원이하라면이 되기 때문에 1200<= pay <=4600이 된다)연봉이 4600만원 이하 일 때, 세금은 15%이기 때문에 전체 값 곱하기 0.85(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''elif yearly_payment <= 4600:tax_after = (monthly_paymant * 12) * 0.85print("세전연봉",yearly_payment)print("세후연봉",tax_after)'''elif = else if연봉이 8800만원 이하 일 때, 세금은 24%이기 때문에 전체 값 곱하기 0.76(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''elif yearly_payment <= 8800:tax_after = (monthly_paymant * 12) * 0.76print("세전연봉",yearly_payment)print("세후연봉",tax_after)'''elif = else if연봉이 15000만원 이하 일 때, 세금은 35%이기 때문에 전체 값 곱하기 0.65(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''elif yearly_payment <= 15000:tax_after = (monthly_paymant * 12) * 0.65print("세전연봉",yearly_payment)print("세후연봉",tax_after)'''elif = else if연봉이 30000만원 이하 일 때, 세금은 38%이기 때문에 전체 값 곱하기 0.62(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''elif yearly_payment <= 30000:tax_after = (monthly_paymant * 12) * 0.62print("세전연봉",yearly_payment)print("세후연봉",tax_after)'''elif = else if연봉이 50000만원 이하 일 때, 세금은 40%이기 때문에 전체 값 곱하기 0.60(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''elif yearly_payment <= 50000:tax_after = (monthly_paymant * 12) * 0.60print("세전연봉",yearly_payment)print("세후연봉",tax_after)'''나머지는 다 5억 초과에 해당하기 때문에 else로 표현세금은 42%이기 때문에 전체 값 곱하기 0.58(은)는 세후 연봉세전연봉은 위에 yearly_payment라는 변수에 값을 부여해줬기 때문에 별도의 계산없이 바로 출력만 해준다.'''else:tax_after = (monthly_paymant * 12) * 0.58print("세전연봉",yearly_payment)print("세후연봉",tax_after)Q3. 학생 이름과 점수를 입력하면 학점을 출력하는 학점 변환기를 만들어 봅시다.
이름과 점수, 학점 모두 출력하도록 해봅니다.
더보기#이름과 점수를 받는다name = input("학생이름:")grade= int(input("점수:"))#이름과 점수 각각 출력해준다print("학생이름:",name)print("점수",grade)#각 구간 별로 나눠 학점을 출력 해준다 (elif=if else)if grade >= 95:print("학점:A+")elif grade >= 90:print("학점:A")elif grade >= 85:print("학점:B+")elif grade >= 80:print("학점:B")elif grade >= 75:print("학점:C+")elif grade >= 70:print("학점:C")elif grade >= 65:print("학점:D+")elif grade >= 60:print("학점:D")else:print("학점:F")Q4. 나이와 현금 또는 카드를 입력하면 버스 요금이 출력되는 버스 요금 계산기를 만들어봅시다.
더보기#나이와 지불유형을 받는다#나이와 지불유형 출력age = int(input("나이:"))pay = input("현금 또는 카드를 선택하세요:")print("나이:",age,"세")print("지불유형:",pay)#연령별로 현금일 때, 카드 일 때, 잘못입력했을 때로 나누어 출력해준다'''이때 주의할 점은 20세이상 일때와 75세이상일 때 구간이 나누어지는 것이다다시 생각해보면 75세미만을 20세이상 조건식으로 넣고 나머지는 75세이상으로 조건식을 넣어주면 된다'''if age < 8:if pay == "현금":print("버스요금: 무료")elif pay == "카드":print("버스요금: 무료")else:print("현금 또는 카드 중에 입력해주세요")elif age < 14:if pay == "현금":print("버스요금: 450원")elif pay == "카드":print("버스요금: 450원")else:print("현금 또는 카드 중에 입력해주세요")elif age < 20:if pay == "현금":print("버스요금: 1000원")elif pay == "카드":print("버스요금: 720원")else:print("현금 또는 카드 중에 입력해주세요")elif age < 75:if pay == "현금":print("버스요금: 1300원")elif pay == "카드":print("버스요금: 1200원")else:print("현금 또는 카드 중에 입력해주세요")elif age >= 75:if pay == "현금":print("버스요금: 무료")elif pay == "카드":print("버스요금: 무료")else:print("현금 또는 카드 중에 입력해주세요")<03. 조건부 실행 학습하기>
https://www.boostcourse.org/cs122/lecture/314923
모두를 위한 파이썬 (PY4E)
부스트코스 무료 강의
www.boostcourse.org
<04. 함수 강의 학습하기>
https://www.boostcourse.org/cs122/lecture/314956?isDesc=false
모두를 위한 파이썬 (PY4E)
부스트코스 무료 강의
www.boostcourse.org
<오늘 올린 코드 자료>
https://colab.research.google.com/drive/1cHQzOYKGdEyQiN8rRqvfDwEXdTXoe-XV?usp=sharing
부스트코스 py4e 2주차
Colaboratory notebook
colab.research.google.com
<미션문제 코드만 모아보기>
https://colab.research.google.com/drive/1GRhq1BwjSdxgcB9qcymIG4ggFZyO_Qd6?usp=sharing
mission 2
Colaboratory notebook
colab.research.google.com
'PYTHON > 부스트코스 PY4E' 카테고리의 다른 글
[부스트코스] 모두를 위한 파이썬(PY4E) 4주차 문자열,파일 (0) 2022.09.22 [부스트코스] 모두를 위한 파이썬(PY4E) 3주차 루프와 반복문 (0) 2022.09.14 [부스트코스]PY4E 수료증 인증 (0) 2022.08.30 [부스트코스] 모두를 위한 파이썬(PY4E) 1주차 파이썬?, 변수, 표현식 (0) 2022.08.30 [부스트코스 코칭스터디] PY4E 2022 부스터 (0) 2022.07.09