모든 프로그래밍 언어에는 기본적인 제어문 3가지가 있는데, 순차문, 조건문, 반복문이다.
오늘은 조건문에 대해 공부할건데, 먼저 난수, random()함수부터 알아보자.
난수란? (Random number, Random Variable)
- 정의된 범위 내에서 무작위로 추출된 수
random()함수
👉 난수를 생성하는 함수
1. 임의의 정수 발생
randint(start, end) : start ~ end 사이의 임의의 정수 하나
randrange(start, end, step) : start ~ end 사이의 step 간격 사이의 임의의 정수 하나
2. 임의의 실수 발생
random() : 0 ~ 1 사이의 균일 분포 사이의 임의이 실수 하나
uniform(start, end) : start ~ end 사이의 임의의 실수 하나
3. 순서 변경, 추출
shuffle() : 무작위로 섞기
choice() : 무작위로 추출 (중복 허용)
sample() : 무작위로 추출 (중복 불가)
import random
# 임의의 정수 발생
# randint(start, end)
print(random.randint(1, 10)) # 1 ~ 10 임의의 정수 하나
# randrange(start, end, step)
print(random.randrange(1, 10)) # 1 ~ 9 임의의 정수 하나
# 임의의 실수 발생
# random()
print(random.random()) # 0 <= N <= 1
# uniform(start, end)
print(random.uniform(10, 20)) # 10 <= N <= 20
x = [1,2,3,4,5]
# shuffle() : 무작위로 섞기
random.shuffle(x)
print(x)
# choice() : 임의의 값 선택 (중복 허용)
print(random.choice(x))
# sample() : 임의의 값 선택 (중복 불허)
print(random.sample(x, 3))
random.sample(range(1, 46), 6)
산술 연산자
- 대입 연산자, 사칙연산, 나누기 몫, 나머지값, 제곱
비교(관계) 연산자
- 값의 크기를 비교하는 연산자
- 결과는 참(True) 또는 거짓(False)으로 표현됨
- <(크다), <=(크거나 같다), >(작다), >=(작거나 같다), == (같다), !=(다르다)
논리 연산자
- 그리고(and), 또는(or), 부정(not)을 표현함
조건문이란?
- 주어진 조건에 따라 명령을 수행하는 구문
- if문 (만약에 ~ 라면)
조건문의 종류 3가지
- 단순 조건문: 조건이 한 가지인 경우
- 중첩 조건문: 조건문 안에 조건문이 들어가는 경우 (if문, else문 어디에나 들어갈 수 있음)
- 다중 조건문: 선택 사항이 여러 개인 조건문 (if문과 else문을 합쳐서 👉 elif 문장으로 변환)
단순 조건문 기본 구조 코딩 연습
- if문만 있는 경우, if문, else문이 있는 경우
# 단순 조건문 : if문만 있는 경우
a = 99
if a < 100:
print('100보다 작군요!')
print('-' * 12)
# if문이 거짓일 경우 출력되지 않음
a = 140
if a < 100:
print('100보다 작군요!')
print('-' * 12)
# 단순 조건문 : if, else가 있는 경우
a = 99
if a < 100:
print('100보다 작군요!')
else:
print('100보다 작지 않군요!')
print('-' * 12)
# if문이 거짓일 경우 else문 출력
a = 140
if a < 100:
print('100보다 작군요!')
else:
print('100보다 작지 않군요!')
print('-' * 12)
단순 조건문 연습문제
- 짝수, 홀수 판별 계산기를 만들어보자
- 입력된 수를 받아 짝수인지 홀수인지 판별 (input() 함수 활용)
# 짝수/홀수 판별하기
x = int(input('숫자를 입력해 주세요 : '))
if x % 2 == 0:
print(f'{x} = 짝수입니다.')
else:
print(f'{x} = 홀수입니다.')
중첩 조건문 기본 구조 코딩 연습
# 중첩 조건문
age = int(input('나이 :'))
if age >= 7:
if age <= 12:
print('초등학생입니다.')
else:
if age <= 15:
print('중학생입니다.')
else:
if age <= 18:
print('고등학생입니다.')
else:
print('성인입니다.')
else:
print('미취학 아동입니다.')
다중 조건문 기본 구조 코딩 연습
- 위의 중첩 조건문을 아래와 같이 간결한 코드로 작성할 수 있다.
# 다중 조건문
age = int(input('나이 :'))
if age <= 7:
print('미취학 아동입니다.')
elif age <= 12:
print('초등학생입니다.')
elif age <= 15:
print('중학생입니다.')
elif age <= 18:
print('고등학생입니다.')
else:
print('성인입니다.')
print(f'당신은 {age}살 입니다.')
조건부 표현식 (Conditional Expression)
- 여러 줄의 if와 else문을 한 줄로 표현할 수 있음
# 조건부 표현식 (Coditional experession)
score = 80
if score >= 60:
message = 'success'
else:
message = 'failure'
message = 'success' if score >= 60 else 'failure'
print(message)
연습문제.
- 아래의 코드를 실행했을때 출력 결과는 무엇인가?
a = 'Life is too short, you need python'
if 'wife' in a: print('wife')
elif 'python' in a and 'you' not in a: print('python')
elif 'shirt' not in a: print('shirt')
elif 'need' in a: print('need')
else: print('none')
# 문제
# 참고로 if문도 한줄로 작성 가능하다!
a = 'Life is too short, you need python'
if 'wife' in a: print('wife')
elif 'python' in a and 'you' not in a: print('python')
elif 'shirt' not in a: print('shirt')
elif 'need' in a: print('need')
else: print('none')
정답: Shirt!
연습문제
- 직각삼각형 판별하기
- 세변의 길이를 입력 받아 직각삼각형인지 아닌지 판별하기
- 참고: 피타고라스 정리 (a^2 + b^2 = c^2)
- 마지막에 입력받은 변을 빗변으로 가정
# 문제: 직각삼각형 판별하기
# 피타고라스 정리: a**2 + b**2 = c**2
a = int(input('첫번째 a 길이를 입력하세요 : '))
b = int(input('두번째 b 길이를 입력하세요 : '))
c = int(input('세번째 c 길이를 입력하세요 : '))
print('-' * 25)
if a**2 + b**2 == c**2:
print('직각삼각형입니다.')
else:
print('직각삼각형이 아닙니다.')