[CHAPTER 2] 변수
변수
메모리 공간에 이름을 붙이는 것.
아래 그림과 같이 상자와 같다고 생각하면 된다.
상자에 저장된 값은 수시로 바꿀 수 있다.
변수의 사용법
예를 들어 몸무게를 저장하고 싶을 때 아래와 같이 코드를 작성한다.
이때, 변수명은 의미 있게 지어주는 게 좋다. 여기서는 몸무게를 뜻하는 weight를 변수명으로 지었다.
>>> weight = 70.1
>>> weight
70.1
weight = 70.1에서 weight의 변수에 70.1의 값을 할당한다.
'=' 기호는 할당연산자, 대입 연산자라고 한다.
'오른쪽의 값을 왼쪽의 weight라는 이름의 변수에 저장하라'는 의미이다.
아래와 같이 변수의 값을 바꿀 수도 있다.
>>> weight = 70.1
>>> weigth = 65.5
>>> weigth
65.5
여러 개의 변수에 동시에 값을 할당할 수도 있다. 이를 동시 할당 문이라 한다.
>>> x, y =100, 200
>>> result = x + y
>>> result
300
x + y 연산을 진행한 뒤, 그 값을 result변수에 담고 result를 출력하고 있다.
변수 이름의 규칙
변수의 이름은 식별자의 일종이다.
식별자는 다음과 같은 규칙에 따라 만들어야 한다.
- 문자와 숫자, 밑줄 문자(_)로 이루어지며 다른 특수 문자는 사용할 수 없다.
- 첫 글자는 숫자로 시작할 수 없다.
- 중간에 공백을 가질 수 없다.
- 대문자와 소문자는 구별된다.
- 파이썬의 예약어(키워드)는 사용할 수 없다.
아래의 표는 예약어 목록이다.
and | exec | not |
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
예약어란 파이썬에서 이미 문법적인 용도로 사용되고 있기 때문에 변수명 등의 식별자로 사용하면 안 되는 단어들을 말한다.
변수 활용
문자열 저장
변수에는 문자열 저장도 가능하다.
'+' 연산도 가능하다. 문자열 덧셈 기능은 참 편리한 것 같다.
>>> s1 = 'Hello'
>>> s2 = 'World!'
>>> s1 + s2
'HelloWorld!'
>>> len(s1 + s2)
11
len() 함수는 문자열의 길이를 알려주는 함수이다.
자료형
자료형이란 프로그램에서 사용할 수 있는 데이터의 종류이다.
파이썬에서 사용할 수 있는 기본 자료형은 4가지가 있다.
자료형 | 의미 | 예시 |
int | 정수 | -3, -2, 0, 10, 20 |
float | 실수 | 3.14, 4.25, 0.1, 123.123 |
str | 문자열 | 'Hello', "hi" |
bool | 부울형 | True, False |
파이썬은 자료형을 자동으로 지정해준다.
변수의 자료형을 확인하고 싶을 때는 type() 함수를 쓰면 된다.
>>> x = 10
>>> type(x)
<class 'int'>
>>> x = 3.14
>>> type(x)
<class 'float'>
>>> x = 'hello'
>>> type(x)
<class 'str'>
>>> x = False
>>> type(x)
<class 'bool'>
문자열 덧셈과 정수형 덧셈을 헷갈리면 안 된다.
>>> 10 + 20
30
>>> '10' + '20'
'1020'
10과 20은 정수이기 때문에 10 + 20 연산의 결과는 30
'10', '20'은 문자열이기 때문에 '10' + '20' 연산의 결과는 '1020'
자료형이 일치하지 않으면 에러가 날 수 있다.
>>> '10' + 10
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
'10' + 10
TypeError: can only concatenate str (not "int") to str
컴퓨터 수치 표현의 한계, 컴퓨터의 한계
컴퓨터의 저장 공간은 유한하다.
컴퓨터에서 1/3을 소수로 표현하려면 어떻게 할까?
컴퓨터는 무한을 표현할 수 없다. 그래서 컴퓨터는 근사치를 표현한다.
컴퓨터에서 수치 오류는 불가피하다.
'==' 연산자는 같으면 True, 다르면 False를 반환
값을 계속 더해 나갈수록 오차는 점점 커지게 된다.
>>> 0.1 + 0.1 == 0.2
True
>>> 0.1 + 0.1 + 0.1 == 0.3
False
>>> 0.1 + 0.1 + 0.1
0.30000000000000004
문자열
문자들의 나열
작은따옴표('...')나 큰따옴표("...")로 표현한다.
>>> "Hello"
'Hello'
>>> 'hi'
'hi'
print() 함수를 이용하여 문자열을 출력할 수 있다.
>>> st = 'Hello'
>>> print(st)
Hello
문자열 내에서 특수문자 사용
강아지가 '멍멍' 짖는다.라는 문장을 출력하고 싶다.
>>> print('강아지가 '멍멍' 짖는다.')
SyntaxError: invalid syntax
따옴표의 쌍이 맞지 않아 오류가 나타난다. 가끔씩 따옴표를 실수로 빼먹어서 에러가 뜨는 경우가 많은데.. 잘 확인하자.
여러 가지 방법이 있다.
>>> print('강아지가 "멍멍" 짖는다.') #1
강아지가 "멍멍" 짖는다.
>>> print("강아지가 '멍멍' 짖는다.") #2
강아지가 '멍멍' 짖는다.
>>> print("""강아지가 '멍멍' 짖는다.""") #3
강아지가 '멍멍' 짖는다.
>>> print("""강아지가 "멍멍" 짖는다.""") #4
강아지가 "멍멍" 짖는다.
>>> print('강아지가 \'멍멍\' 짖는다.') #5
강아지가 '멍멍' 짖는다.
#1, #2의 경우 작은따옴표와 큰따옴표를 섞어 사용하였다.
#3, #4의 경우 큰따옴표 3개를 사용하였다. (작은따옴표 3개를 사용하여도 된다.)
#5의 경우 '\'를 사용하였다. 역슬래시는 특수한 문자를 표기하는 데 사용하는 문자이다.
따옴표 3개를 쓸 경우 여러 줄 출력도 가능하다. 이 기능을 잘 활용하면 장문의 글을 쉽게 출력할 수 있을 것 같다.
>>> print('''
안녕하세요
강아지가 '멍멍' 짖습니다.
고양이는 '야옹'
펭귄은 '펭펭'
소는 '음메'
''')
안녕하세요
강아지가 '멍멍' 짖습니다.
고양이는 '야옹'
펭귄은 '펭펭'
소는 '음메'
입력 | input()
input()
사용자로부터 문자열을 입력받는 함수이다.
사용자의 입력을 문자열 형태로 반환한다.
>>> input_string = input(output_string)
문자열 입력받기
>>> name = input("name: ")
name: jiseong
>>> name
'jiseong'
정수 입력받기
>>> age = int(input("age: "))
age: 23
>>> age
23
input() 함수는 문자열로 반환한다.
정수로 저장하기 위해 int()를 이용하여 형 변환을 해준다.
지금까지 배운 것들로
성적 계산 프로그램
name = input('이름: ')
kor = int(input('국어 점수: '))
math = int(input('수학 점수: '))
eng = int(input('영어 점수: '))
total = kor + math + eng
avg = total / 3
print(name ,'의 성적')
print('국어 :', kor)
print('수학 :', math)
print('영어 :', eng)
print('합계 :', total)
print('평균 :', avg)
이름: 박지성 국어 점수: 50 수학 점수: 22 영어 점수: 100 박지성 의 성적 국어 : 50 수학 : 22 영어 : 100 합계 : 172 평균 : 57.333333333333336 |
나누기 연산에는
/ : 소수형 나눗셈
// : 정수형 나눗셈
/를 써서 소수까지 계산하였다.