[3] 파이썬 입문 - 이름과 값
[도입] 이번 시간에는 이름과 값에 대해 살펴보겠습니다. 파이썬 언어 뿐 아니라 모든 프로그래밍 언어에서 기본이 되는 중요한 내용입니다. 프로그램에서 이름은 어마어마하게 중요한 역할을 합니다. 컴퓨터는 기억을 잘 한다고 했죠? 그리고 계산을 잘 합니다. 계산을 하려면 값이 있어야 됩니다. 값을 가지고 있고 저장해주는 것이 이름이죠.
[질문] 프로그램에서는 왜 이름이 필요한가요? 이름은 어떻게 붙이는 거예요? 값은 또 뭔가요? 값을 어떻게 나타내나요?
개념 3.1. 값이란
값이란 컴퓨터가 사람이 필요로 하는 숫자나 텍스트나 상태를 기억하는 것입니다. 컴퓨터가 나타내는 값은 여러 가지가 있는데요, 컴퓨터는 숫자를 아주 좋아합니다. 실제로 우리가 컴퓨터에서 다루는 값의 대부분이 숫자라고 볼 수 있습니다. 숫자를 기억하거나 계산하는 것이 컴퓨터가 잘 하는 일입니다.
숫자는 정수와 실수로 나누어집니다. 소수점이 있는 숫자는 실수고 소수점이 없으면 정수가 됩니다. 마이너스 부호(-)로 음수도 표현가능합니다. 소수점 이하를 가지는 실수는 소수점 이하에 아주(?) 많은 자리수를 가질 수 있습니다.
((쉘에서 확인하기)) 쉘창에서 커서에 값을 넣으면 그 값을 그대로 보여줍니다. 우리가 넣어준 글자들이 숫자로 잘 이해되었다는 뜻입니다.
** 주의 ** 컴퓨터는 약속된 방식이 아니면 불평을 합니다. 다음 화면은 숫자를 잘못 표시한 경우입니다. (Syntax Error란 값을 표기하는 방법이 틀렸다는 뜻입니다.) 0으로 시작하는 숫자는 0.1처럼 실수인 경우만 가능합니다. 그 이외의 경우는 약속대로 되어 있지 않은 숫자는 파이썬이 불평을 하죠.
> 0045
File "<stdin>", line 1
0045
^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
> 0..45
File "<stdin>", line 1
0..45
^
SyntaxError: invalid syntax
> 0.
0.0
> .543
0.543
>
값에는 여러 가지 종류가 있습니다. 컴퓨터가 기억해야 하는 것으로 따옴표로 둘러싸진 문자열이 있습니다. 문자열은 사람이 보는 문자의 연속인 텍스트 부분을 가지는 값입니다. 어떤 문자열이든 나타내고 기억시킬 수 있습니다. 프로그램 안에서는 사람이름이나 사람에게 보여줄 글자들을 표현하는데 문자열을 많이 사용합니다. 문자열은 따옴표(' ')로 둘러싸인 부분으로 그 안에 있는 텍스트 부분을 그대로 값으로 기억하라는 뜻이 됩니다. 문자열에 대해서는 뒤에서 좀더 자세하게 살펴보겠습니다.
((쉘에서 확인하기))
> 'hello, there'
'hello, there'
> 'Im your dear friend!!!'
'Im your dear friend!!!'
**주의** 따옴표로 시작한 문자열은 반드시 닫아주어야 합니다. 따옴표는 쌍으로 사용되어야 합니다.
OO중요OO 값을 나타내는 방법을 잘 지켜야 컴퓨터가 어떤 값인지 이해할 수 있습니다. 숫자나 문자열을 나타내는 규칙을 잘 알아두세요.
개념 3.2. 이름
이제 이름에 대해 알아보겠습니다. 이름은 값을 기억하는 역할을 합니다. 파이썬은 프로그램에서 사용하는 모든 이름에 대해 대응하는 값을 기억하고 있습니다.
a = 3
b = 5
c = '파이썬'
d = '2022.6.25'
이렇게 프로그램에서는 얼마든지 많은 이름을 이용해서 값을 구분해서 기억시킬 수 있습니다. 값이 있어야 그걸로 계산을 할 수 있게 되는 거죠. 이름은 위에서 본 것처럼 영어 앒파벳 한글자로 나타내기도 하고 단어를 쓰기도 합니다.
((쉘에서 확인하기))
> pi = 3.141592653589793238462643383279502884197169399375105820974944
> big_number = 30000000000000
> bigger_number = 3.0E20
> pi
3.141592653589793238462643383279502884197169399375105820974944
쉘 창에서 이름을 주면 파이썬이 그 이름에 기억된 값을 알려줍니다. 이렇게 복잡한 숫자를 이름에 기억을 시키고 그것으로 뭔가 계산을 할 수가 있게 됩니다. 자 이제 컴퓨터의 강력함이 좀 느껴지죠? 컴퓨터는 어마어마하게 미세한 값부터 어마어마하게 큰 값까지 잘 기억합니다. 그것도 얼마든지 많이 기억할 수 있어요. 이름만 다르게 붙이면 다 따로 기억하니까요.
그럼 여기서 잠깐 이름 붙이는 방법을 알아보고 넘어가겠습니다. 이름은 한글, 한자 등 모든 글자가 가능합니다. 컴퓨터는 모든 언어를 표현할 수 있는 문자 체계를 가지고 있습니다. 파이썬은 모든 언어의 문자를 이름에 사용할 수 있게 지원합니다.
주별시간수 = 3
favorite음식 = '치킨'
家族 = 4
うどん = '우동'
이름은 빈칸으로 구별되는 단어 단위라고 볼 수 있는데요, 이름은 얼마든지 길게 붙일 수 있습니다. a1, a2, a3처럼 영문자 뒤에 숫자를 붙여서 여러 개의 구별되는 이름을 만들기도 합니다.
**주의** 이름에서 쓰면 안되는 것에 대해 알아보겠습니다. 숫자가 제일 앞에 나오면 그것을 값으로 생각하기 때문에 이름은 숫자로 시작할 수 없습니다. 그러나 첫글자만 아니면 숫자가 얼마든지 되에 붙을 수 있습니다. 그리고 기호도 대부분 사용할 수 없습니다. 프로그래밍 언어에서 수식의 기호나 특수한 의미를 표현하는데 사용하기 때문에 이름에는 쓰지 않습니다. 점('.')도 특수한 의미를 가지므로 쓰면 안됩니다. 빈칸이나 콤마도 이름에 쓸 수없습니다.
OO중요OO 이름은 숫자로 시작하면 안 되고 기호가 아닌 문자들을 빈칸없이 써주어야 합니다.
OO중요OO 대소문자는 다른 이름으로 구별됩니다.
빈칸을 쓰지 못하기 때문에 긴 여러 단어를 연결하여 이름을 붙일 때 단어를 구분하기 위해 밑줄(_)을 많이 사용합니다.
greeting_message = 'Hello, Python'
delivery_address = '경기도 수원시 영통구 경기대학교'
이전 시간에 예약어라는 것을 얘기한 적이 있습니다. 프로그래밍 언어에서 문법(컴퓨터와 약속된 지시 방식)에 따라 정해진 예약어들을 적절히 이용하면 어떤 순서로 몇번이나 계산할지 지시할 수 있다고 했습니다. 그래서 프로그래밍 언어를 쓸 때는 그 언어에서 예약어가 뭔지 알아야 됩니다. 그러나 예약어는 언어를 배워나가면서 하나씩 차례로 배우게 되기 때문에 여기서는 예약어들이 있다는 것만 알고 넘어가면 될 것 같습니다.
예약어로 여기서 배우고 넘어가면 좋을 것으로 참 거짓을 나타내는 True와 False가 있습니다. 컴퓨터는 숫자도 좋아하지만 참거짓을 정말 좋아하합니다. 컴퓨터가 0과 1만으로 값을 나타낸다는 말을 들어보셨을 겁니다. 컴퓨터 회로도 0이냐 1이냐로 구별되죠. 그러니 참 거짓은 정말 중요한 값입니다. 그래서 두개의 예약어로 그 값을 나타냅니다.
또하나 값을 나타내는 예약어로 None이 있습니다. 이건 없음(無)을 나타내는 예약어입니다. 경우에 따라 컴퓨터가 아직 값이 없거나 값을 모르는 상태를 나타내야 할 때가 있습니다. 그럴 때 None이라는 예약어로 값을 표현하게 됩니다. 여기서 True, False, None이 모두 대문자로 시작하고 소문자가 뒤에 오는 것을 알 수 있습니다. 이 세개의 값은 파이썬의 세상에서 사용하는 요술구슬과도 같이 중요합니다.
OO중요OO 예약어로 True, False, None이 있습니다.
마지막으로 정말 중요한 것이 하나 남아있습니다. 이름이 위에서 살펴본 것처럼 모든 외국어 글자가 다 되고 길이도 제한이 없고 뒤에 숫자도 얼마든지 붙일 수 있다면 정말 무한히 많은 이름을 만들 수 있을 텐데요. 실제로 우리가 프로그래밍을 하다 보면 어떤 이름에 무슨 값을 넣어두었는지 우리가 기억해야 합니다. 너무 많은 이름을 너무 복잡하게 만들어서 온갖 값을 기억하고 있다면 프로그램 짜는 사람도 어느 이름이 무슨 값인지 헷갈리게 됩니다. 그 프로그램을 보는 다른 사람들은 더 헷갈리고 정신없겠죠? 그래서 이름을 잘 붙이는 것이 프로그래밍을 잘 하는 기본 중에 기본입니다.
다른 사람이 짠 코드를 많이 보고 이름을 어떻게 붙였나 구경해 보세요. 이름 붙이기는 정말 중요한데 프로그래머의 개성이 나타나는 부분이기도 합니다. 좋은 이름 붙이기 습관이 좋은 프로그래머가 되는 첫걸음입니다.
OO중요OO 몇가지 이름 붙이는 간단한 원칙은 다음과 같습니다.
- 간단한 값은 간단한 이름을 붙이세요. a, b, c, d
- 0, 1, 2, 3, 4 처럼 차례로 번호를 매기는 경우에 i, j, k 같은 이름을 많이 사용합니다.
- 특별한 의미를 가지는 이름이라면 name, age, address 처럼 값의 의미를 나타내는 영단어를 쓰는 것이 가장 좋은 방법입니다.
- 정말 중요한 이름은 name_of_best_player 이런 식으로 밑줄을 넣어 여러 단어로 길게 붙이는 것도 좋습니다. 그럼 나중에 이름이 무슨 값을 가졌는지 헷갈리는 일은 없겠지요?
요약
값은 숫자(정수, 실수)와 문자열로 컴퓨터에게 필요한 것을 알려줄 수 있습니다.
이름은 값을 기억하는 역할을 하며 이름은 얼마든지 많이 만들 수 있습니다.
좋은 이름을 만드는 방법을 잘 기억해야 합니다.