지난 연산과 문자열에 이어서
이번에는 변수에 대해 계속 공부해보자.
참고로 이 포스팅은 '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() 함수로 출력하면 완성!
'데이터사이언스 > Python' 카테고리의 다른 글
파이썬 터틀 모듈(turtle module)로 함수 활용 연습 - 다양한 연습문제로 함수 및 터틀 모듈 마스터하기 (1) | 2024.01.26 |
---|---|
파이썬 기초, 함수란?, 내장함수, 사용자 정의함수, 매개변수, 인수, 지역변수, 전역변수에 대해 알아보자. 파이썬 함수 뽀개기! (0) | 2024.01.25 |
파이썬 기본 연산과 math 함수 사용해보기 (2) | 2024.01.23 |
파이썬에서 문자와 문자열! 문자열의 변환, 출력, 연산, 인덱싱, 슬라이싱 (feat. 이스케이프 코드) (2) | 2024.01.23 |
맥에서 설치된 파이썬 버전 확인하기 (터미널에서 파이썬 실행) (0) | 2024.01.22 |