본문 바로가기

데이터사이언스/Python

파이썬 기초, 변수란? 파이썬 자료형 종류, 변수를 저장하는 여러 가지 방법 연습하기, 파이썬 변수를 뽀개보자!

지난 연산과 문자열에 이어서

이번에는 변수에 대해 계속 공부해보자.

 

참고로 이 포스팅은 'AI SW 교육지도사 (Artificial Intelligence SW Education Instructor)' 과정의 표준교재를 배우며 참고한 내용이다.

 

 

변수란?

- 데이터를 저장할 수 있는 공간

- 선언: 값을 저장하기 위한 기억 공간을 마련하는 것

- 파이썬에서는 객체를 가르키는 것을 의미

 

변수 조건

- 첫글자 시작은 한글, 영문, 언더바(_)만 가능

- 변수 구성은 한글, 영문, 숫자, 언더바(_)로 구성

- 공백 불가

- 알파벳 대소문자 구분 필요

- 예약어*는 사용 불가 (*파이썬에서 이미 다른 용도로 사용되고 있는 것 (eg. False, None, or 등 36개 있음)

 

대입 연산자

- 대입 연산자 = 외에도 +=, -=, *=, /=, %=, //=, **= 사용

1. += (eg. a+=3 (a = a+3과 동일))

2. -= (eg. a-=3 (a = a-3과 동일))

3. *= (eg. a*=3 (a = a*3과 동일))

4. /= (eg. a/=3 (a = a/3과 동일))

5. //= (eg. a//=3 (a = a//3과 동일))

6. %= (eg. a%=3 (a = a%3과 동일))

7. **= (eg. a**=3 (a = a**3과 동일))

 

파이썬 자료형

1. 숫자형 (Number)

    - Integer(정수형), Float(실수형), Binary Digit(2진수), Octal Digit(8진수), Hexadecial Digit(16진수), Complex Number (복소수)

 

2. 문자형 (String)

    - 문자(Character)들의 집합

    - 따옴표 (', ") 안에 포함된 모든 문자

 

3. 참거짓 (Boolean)

     - True(참), False(거짓)

 

4. 리스트 (List)

    - 대괄호 [ ] 안에 데이터 지정, list() 함수로 데이터 지정

 

5. 튜플 (Tuple)

    - 소괄호 ( ) 안에 데이터 지정, tuple()함수로 데이터 지정, () 중괄호 생략 가능, 항목이 하나인 튜플은 뒤에 콤마(,) 붙임

 

6. 딕셔너리 (Dictionary)

    - 중괄호 { : } 안에 키(key)와 값(Value)의 쌍으로 묶인 자료형, 키는 인덱스, 값은 자료의 내용을 의미, 자료의 순서가 없음

 

7 집합형 (Set)

    - 중괄호 { } 안에 데이터 지정, 딕셔너리에서 키(key)만 모아놓은 특수한 딕셔너리 형태로 값은 항상 유일함

 

# 변수의 자료형 확인

d1 = 123
d2 = '123'
d3 = [123]
d4 = (123,)
d5 = {'key':123}
d6 = {123}
d7 = True

print(f'{d1}의 자료형: {type(d1)}')
print(f'{d2}의 자료형: {type(d2)}')
print(f'{d3}의 자료형: {type(d3)}')
print(f'{d4}의 자료형: {type(d4)}')
print(f'{d5}의 자료형: {type(d5)}')
print(f'{d6}의 자료형: {type(d6)}')
print(f'{d7}의 자료형: {type(d7)}')

 

 

 

연습문제1.

이름과 나이변수를 리스트로 저장하고 출력하기

# 변수 저장하기

name = ['석진','남준','지민','정국']
age = [29,27,26,24]
print(f'내 이름은 {name[0]}이고 나이는 {age[0]}세 입니다.')
print(f'내 첫째 동생 이름은 {name[1]}이고 나이는 {age[1]}세 입니다.')
print(f'내 둘째 동생 이름은 {name[2]}이고 나이는 {age[2]}세 입니다.')
print(f'내 셋째 동생 이름은 {name[3]}이고 나이는 {age[3]}세 입니다.')

 

 

 

연습문제2.

변수를 이용하여 자동으로 스포츠 기사쓰기

경기 결과*만 간단히 입력받고 자동으로 스포츠 뉴스 기사를 작성해주는 코드를 만들어보자.
(*축구 경기가 열린 장소, 시간, 상대팀, 넣은 골 수, 도움 수 등)

 

Step1. 우선 input() 함수를 활용해서 경기 결과의 주요한 내용을 입력받는다.

# 변수를 이용하여 스포츠 기사쓰기
from datetime import datetime

# 경기 결과 입력 받는 곳
print('-- [기사쓰는 로봇] --')
place = input("경기가 열린 곳은?\t ")
time = input("경기가 열린 시간은?\t ")
opponent = input("상대 팀은?\t\t ")
goals = input("손흥민은 몇 골을 넣었나요? ")
aids = input("도움은 몇 개인가요?\t ")
score_me = input("손흥민 팀이 넣은 골 수는?\t ")
score_you = input("상대 팀이 넣은 골 수는?\t ")
print('-' * 50)

 

 

 

Step2. 위에 입력받은 내용을 토대로 자동으로 스포츠 뉴스 기사가 작성되는 코드를 작성한다.

# 기사 작성하는 곳
news = f"""[프리미어 리그 속보( {str(datetime.now())} )]
손흥민 선수는 {place}에서 {time}에 열린 경기에 출전하였습니다.
상대 팀은 {opponent}입니다."""

if score_me>score_you:
    news += f"손흥민 선수의 팀이 {score_me}골을 넣어 {score_you}골을 넣은 상대 팀을 이겼습니다. "
elif score_me<score_you:
    news += f"손흥민 선수의 팀이 {score_me}골을 넣어 {score_you}골을 넣은 상대 팀에게 졌습니다. "
else:
    news += f"두 팀은 {score_me}대{score_you}로 비겼습니다. "

if int(goals)>0 and int(aids)>0:
    news += f"\n손흥민 선수는 {goals}골에 도움 {aids}개로 승리를 크게 이끌었습니다. "
elif int(goals)>0 and int(aids)==0:
    news += f"\n손흥민 선수는 {goals}골로 승리를 이끌었습니다. "
elif int(goals)==0 and int(aids)>0:
    news += f"\n손흥민 선수는 골은 없지만 도움 {aids}개로 승리하는 데 공헌하였습니다. "
else:
    news += f"\n아쉽게도 이번 경기에서 손홍민의 발끝은 침묵을 지켰습니다. "

print(news)

 

 

 

 

변수를 저장하는 여러가지 방법

> 파이썬에서는 코드를 한 줄이라도 줄이는 것이 중요! 한 번에 변수를 저장하는 방법도 있다.

# 변수를 저장하는 여러 가지 방법

a = 'python'
b = 'fun'
print(a, b)

a, b = 'python', 'fun'
print(a, b)


a, b = ('python', 'fun')
print(a, b)
      
(a, b) = 'python', 'fun'
print(a, b)

(a, b) = ('python', 'fun')
print(a, b)

[a, b] = ['python', 'fun']
print(a, b)

 

 

연습문제3. 

선생님들이 학생들에게 줄 선물을 구매하려고 할때 1인당 지출해야할 금액은 얼마인지 확인해보자.

선물가격: 1,000원, 학생수 10명, 선생님 10명

# 선물을 사기 위해 필요한 돈은?

gift_price = 1000
student_cnt = 10
teacher_cnt = 10

print(f'선생님 1명당 필요한 금액: {(gift_price*student_cnt) / teacher_cnt}')

 

 

 

연습문제4.

다음 조건을 보고 음식 총 가격에 팁이 더해진 총금액을 구하는 수식을 표현해보자.

음식가격 4,450원, 세금 6.75%, 팁 15%

# 음식을 위해 총 지불해야할 금액은?

meal = 4450                # 음식가격
tax = 6.75/100              # 세금비율
tip = 15/100                # 팁비율
meal = meal + meal * tax    # 음식가격
tip = meal * tip            # tip

total = meal + tip

print(f'총 금액은? {total} 입니다.')

 

 

 

 

연습문제5.

급여 계산기 만들기 - 근로 시간과 시간당 임금을 입력받고 총 급여를 확인하는 코드를 만들어보자.

 

# 급여 계산기

hour = float(input('근로시간(h): '))
pay = int(input('시간당 임금: '))
print('-'*30)
print(f'최종 급여는? : {round(hour * pay):,}원')

 

 

연습문제6.

온도 변환기 만들기 - 섭씨, 화씨 온도를 변환 해주는 계산기를 만들어보자.

 

[참고]

섭씨온도(°C) = (5 / 9) × (°F - 32) # Celsius

화씨온도(°F) = (9 / 5) × °C + 32 # Fahrenheit

 

# 온도 변환기 (섭씨, 화씨)

cel_input = float(input('섭씨온도:'))
fah = (9/5)*cel_input+32
print(f'섭씨온도 ({cel_input}) 는 화씨온도 {fah} 입니다.')

print('-' * 30)

fah_input = float(input('화씨온도:'))
cel = (5/9) * (fah_input-32)
print(f'화씨온도 ({fah_input}) 는 섭씨온도 {round(cel, 1)} 입니다.')

 

 

 

연습문제7.

동전 개수 계산기 만들기

입력된 금액을 동전으로 교환하면 동전이 종류 별로 몇 개씩 나오는지 확인하는 계산기를 만들어보자.

# 동전 개수 계산기

money = int(input('금액을 입력해주세요:'))
print('*' * 30)
print(f'500원 짜리 동전: {money//500:>3}개') #나눈 몫 #:>3 정렬 및 자릿수
money = money%500 # 나눈 나머지
print(f'100원 짜리 동전: {money//100:>3}개')
money = money%100
print(f' 50원 짜리 동전: {money//50:>3}개')
money = money%50
print(f' 10원 짜리 동전: {money//10:>3}개')
money = money%10
print(f'       잔돈은 : {money:>3}원 입니다.')

 

 

❗️변수에 관련된 연습 문제 꿀팁❗️

문제를 읽고 어떤 것을 변수로 저장할 지 확인하는 것이 가장 중요!

이후 각 변수의 연산 후 print() 함수로 출력하면 완성!