무엇을 하는 것인가
프로그램이 하는 일은 결국 값을 어딘가에 두고, 꺼내 쓰고, 바꾸는 것입니다. 그 "어딘가"에 이름을 붙인 것이 변수입니다.
파이썬에서는 나이 = 20 처럼 등호 왼쪽에 이름을, 오른쪽에 값을 씁니다. C나 자바처럼 int를 앞에 붙이지 않습니다. 값을 넣는 순간 변수가 생기고, 자료형도 값을 보고 파이썬이 정합니다.
등호(=)는 "같다"가 아니라 "넣는다"입니다. 처음 배울 때 가장 많이 헷갈리는 부분입니다. x = x + 1이 수학에서는 말이 안 되지만 프로그램에서는 "x에 든 값에 1을 더해서 다시 x에 넣어라"라는 뜻이라 아무 문제가 없습니다.
자료형은 크게 넷만 알면 시작할 수 있습니다. 정수 int, 실수 float, 문자열 str, 참/거짓 bool입니다. 지금 든 값이 뭔지 궁금하면 type()으로 물어보면 됩니다.
예제 코드
아래 코드가 위 버튼으로 받는 파일과 같은 내용입니다. 통째로 복사해 실행해 보고, 값을 바꿔 가며 결과가 어떻게 달라지는지 보는 편이 읽기만 하는 것보다 훨씬 빨리 익습니다.
# 변수와 자료형 — 값에 이름을 붙여 두기
# 등호(=)는 "같다"가 아니라 "오른쪽 값을 왼쪽 이름에 넣어라" 라는 뜻입니다.
이름 = "김서연" # 문자열 str
나이 = 20 # 정수 int
키 = 168.5 # 실수 float
학생인가 = True # 참/거짓 bool
print(이름, "/", 나이, "살")
print("자료형:", type(이름), type(나이), type(키), type(학생인가))
# 값을 바꾸면 자료형도 따라 바뀝니다. 미리 선언해 둔 게 없기 때문입니다.
나이 = "스무 살"
print("바꾼 뒤:", type(나이))
# x = x + 1 은 "x에 든 값에 1을 더해서 다시 x에 넣어라" 입니다.
개수 = 10
개수 = 개수 + 1
개수 += 1 # 위와 같은 뜻, 이렇게 줄여 씁니다
print("개수:", 개수) # 12
# 여기서부터가 초보자가 가장 많이 걸려 넘어지는 곳입니다.
# input() 은 숫자를 쳐도 "문자열" 로 돌려줍니다.
값 = input("숫자 하나: ")
print("그냥 더하면:", 값 + 값) # "3" + "3" = "33" (이어붙이기)
print("숫자로 바꾸면:", int(값) + int(값)) # 3 + 3 = 6 (덧셈)
기억할 것
=는 "같다"가 아니라 "오른쪽 값을 왼쪽 이름에 넣어라"입니다.- 자료형을 미리 적지 않습니다. 값을 보고 파이썬이 정합니다.
input()으로 받은 값은 언제나 문자열입니다. 계산하려면int()로 바꿔야 합니다.- 변수 이름에 한글도 됩니다. 다만 실무 코드는 영어로 쓰는 편이 무난합니다.
자주 묻는 것
변수 이름을 아무렇게나 지어도 되나요
숫자로 시작하면 안 되고, 띄어쓰기도 안 됩니다. if, for 같은 파이썬이 이미 쓰는 낱말도 못 씁니다. 그 외에는 자유롭지만 a, b 대신 나이, 점수처럼 무엇이 든 값인지 드러나게 짓는 편이 나중에 자신을 살립니다.
10 과 10.0 은 다른가요
다릅니다. 10은 정수(int), 10.0은 실수(float)입니다. 값은 같아 보여도 종류가 달라서, 나눗셈 결과 같은 데서 차이가 납니다. 10 / 3은 정수끼리 나눠도 실수 3.333...이 나옵니다.
input 으로 받은 숫자를 더했더니 이상합니다
input()은 무엇을 치든 문자열로 돌려줍니다. "3" + "4"는 7이 아니라 "34"가 됩니다. int(input())처럼 감싸서 숫자로 바꾼 뒤 계산하세요.