2026년 4월 25일
Language / Python[Python] 1. 변수, 표현식, 명령문
『데이터를 다루며 배우는 파이썬』을 참고하였고, 학교에서 수업을 들으며 필기한 내용으로 보충하였다.
목차
[1] 변수와 타입
[2] 변수
[3] 변수 이름과 키워드
[4] 명령문
[5] 연산자와 피연산자
[6] 문자열 연산
[7] 사용자로부터 입력 받기
[8] 주석
[1] 변수와 타입
print로 출력해보기
>>> print(4)
4
>>> print('Hello, World!')
Hello, World!print() 함수는 괄호 안의 내용을 화면에 출력하는 함수이다. 따로 지정하지 않으면 터미널이나 콘솔 같은 표준 출력 화면에 출력된다.
타입 (데이터형)
- 파이썬에서 자주 사용되는 타입
- 정수형 (Integer)
- 실수형 (Float)
- 문자열 (String)
값의 타입을 알고 싶다면, 아래와 같이 알아볼 수 있다.
>>> type('Hello, World!')
<class 'str'>
>>> type(17)
<class 'int'>
>>> type(3.2)
<class 'float'>
>>> type('17')
<class 'str'>>>> print('4'+1)데이터형이 다른 문자형과 정수형의 값을 더해보자. 위의 결과는 어떻게 될까?
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
print('4'+1)
TypeError: can only concatenate str (not "int") to str
오류가 난다. 문자열(str)에는 문자열만 이어 붙일 수 있는데, 정수(int)를 붙이려고 했다고 한다. 따라서 연산되지 않는다.
[2] 변수
변수(variable): 어떤 값을 참조하고 있는 이름
message = 'And now for something completely different'
n = 17
pi = 3.14위에서 n은 기억공간이다. n = 17은 n이라는 이름의 기억공간에 17을 대입하라는 명령어가 된다. 이때의 n을 간략하게 "변수"라고 부른다. 여기에서 =은 수학에서 말하는 '같다'라는 뜻이 아니고, 프로그래밍 언어에서는 = 오른쪽의 값을 = 왼쪽의 변수(기억공간)에 넣으라는 뜻이다.
변수 값을 출력할 때는 print문을 사용한다.
>>> print(n)
17
>>> print(pi)
3.14[3] 변수 이름과 키워드
보통 변수 이름을 정할 때 의미 있는 이름을 선택하며 변수 용도를 문서화한다.
변수 이름 규칙
- 변수 이름의 길이는 임의로 정할 수 있음
- 문자와 숫자를 포함할 수 있지만, 숫자로 시작할 수는 없음
- 밑줄 문자(
_) 외에 어떠한 특수 문자도 사용할 수 없음 (&,*,#, 공백 등)
>>> for = 32SyntaxError: invalid syntax
변수 이름 규칙에 맞게 이름을 지었는데 에러가 나온다. 뭐가 잘못된 것일까? 그 이유는 for가 예약어이기 때문이다. 예약어란 파이썬에서 이미 특정 용도로 사용되고 있는 이름을 말한다.
파이썬의 예약어 33개
and del from None True
as elif global nonlocal try
assert else if not while
break except import or with
class False in pass yield
continue finally is raise
def for lambda return
-
사용 가능한 이름의 예
kim,kbs1,_help,s12345,kbs_a
-
사용 불가능한 이름의 예
8kim,k&b,%23f,s b,class,continue
[4] 명령문
명령문(statements): 파이썬 인터프리터가 실행할 수 있는 코드 단위
>>> x = 2
>>> print(x)x = 2가 하나의 명령문이고, print(x)가 또 다른 하나의 명령문이다. x = 2의 명령문은 대입문이라고 부르고, print(x)는 표현문이라고 부른다.
[5] 연산자와 피연산자
연산자(operator): 더하기나 곱하기 같은 계산을 표현하기 위한 특별한 기호
피연산자(operand): 연산자가 적용되는 값
다음의 결과로 연산자들을 알아보자.
>>> print(10+4) # 덧셈
14
>>> print(10-4) # 뺄셈
6
>>> print(10*4) # 곱셈
40
>>> print(10/4) # 나눗셈
2.5
>>> print(10**4) # 거듭제곱
10000
>>> print(10//4) # 몫
2
>>> print(10%4) # 나머지
2연산자 우선순위
PEMDAS(=) — (), **, *, /, +, -
P: Parentheses
E: Exponentiation
M: Multiplication
D: Division
A: Addition
S: Subtraction
[6] 문자열 연산
+ 연산자가 문자열과 같이 사용되는 경우가 있는데, 이때는 수학적 의미의 더하기와 다르다. 그 대신, 문자열의 끝과 끝을 이어서 연결(concatenation) 한다.
>>> first = 10
>>> second = 15
>>> print(first + second)
25
>>> first = '100'
>>> second = '150'
>>> print(first + second)
100150* 연산자도 문자열과 같이 쓸 수 있다. 이때는 문자열의 내용을 정수만큼 반복한다.
>>> first = 'Test '
>>> second = 3
>>> print(first * second)
Test Test Test[7] 사용자로부터 입력 받기
변수 값을 사용자 입력에서 가져와야 하는 경우도 있다. 이를 위해 파이썬은 키보드 입력을 받는 input이라는 기본 함수를 제공한다. 이 함수를 호출하면 프로그램이 멈추고 사용자가 무언가를 입력할 때까지 기다린다. 사용자가 리턴(Return) 또는 엔터(Enter) 키를 누르면 프로그램이 다시 진행되고 사용자가 입력한 내용은 문자열로 반환된다.
inp = input()
Hello
print(inp)
Hello사용자에게 무엇을 입력해야 하는지 알려줄 수 있다. 아래처럼, 표시할 문자열을 input() 함수에 전달할 수 있다.
>>> name = input('What is your name?\n')
What is your name?
Yeowon
>>> print(name)
Yeowon안내 메시지 끝의 \n은 '줄 바꿈'을 의미하는 특수 문자이다. '줄 바꿈' 문자로 인해, 사용자 입력은 다음 줄 첫 번째 칸부터 출력된다.
나이를 묻고 그 나이에서 1을 빼, '만 나이'를 출력하는 경우
>>> age = input('What is your age?\n')
What is your age?
22
>>> print(age - 1)Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
print(age-1)
TypeError: unsupported operand type(s) for -: 'str' and 'int'
에러가 난다. age는 숫자 22를 저장하는 것이 아니라 문자열 '22'를 저장한다. 왜냐하면 input() 함수는 사용자가 입력한 값을 기본적으로 문자열(str) 형태로 반환하기 때문이다. 해결 방법은 age에 있는 문자열을 정수형 숫자로 바꾸는 것이다.
>>> print(int(age) - 1)[8] 주석
프로그램이 커지고 복잡해질수록 코드를 읽기 힘들어진다. 이런 상태에서는 코드의 일부만 보고 무엇을 하는지, 왜 그렇게 하는지 알기가 어렵다. 이런 이유로 프로그램이 하는 일에 대한 설명을 달아두는 것이 좋다. 이렇게 적어둔 설명을 주석(comment) 이라고 하며, 파이썬에서는 # 기호로 주석을 나타낸다.
>>> percentage = (minute * 100) / 60 # 시간의 백분율# 기호부터 줄 끝까지의 내용은 무시된다. 즉, 프로그램에 아무런 영향을 미치지 않는다.
댓글
댓글을 불러오는 중...