본문 바로가기

데이터사이언스/Python

파이썬 기초 - 난수, random()함수, 연산자 종류 (산술, 비교, 논리), 조건문 (단순, 중첩, 다중 조건문), 조건부 표현식

모든 프로그래밍 언어에는 기본적인 제어문 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('직각삼각형이 아닙니다.')