티스토리 뷰

파이썬 코드를 작성하는 것은 C나 자바에 비해 매우 간단하다. 거추장스러운 함수나 클래스 없이 바로 코드를 작성하면 된다. 코드는 우리가 알고 있는 자바 코드와 별 차이가 없다.

먼저 파이썬은 한 줄이나 여러 줄로 구성된 문장 단위로 구성된다. 문장은 지정문이나 if, for, while 같은 문장이 있다.

다음으로 프로그램의 중요한 구성요소가 이름이다. 이름은 영문자나 밑줄(_), 숫자로 구성되며 숫자로 시작할 수 없고 대소문자 구별된다. 물론 키워드는 이름이 될 수 없다.

<표-키워드>

Keywords in Python programming language

Falseclassfinallyisreturn
Nonecontinueforlambdatry
Truedeffromnonlocalwhile
anddelglobalnotwith
aselififoryield
assertelseimportpassraise

이제 이름에 수식을 이용해서 지정하는 문장을 살펴보자. 지정문도 수식이 길어지면 여러 줄에 걸쳐 작설할 수 있다. 이때는 백슬래시(\)를 이용해서 문장이 이어짐을 표시할 수 있다. 또한 괄호 안에서는 줄바꿈을 넣어도 편집기가 문장이 끝나지 않은 것으로 본다. 문장이 계속되면 다음 줄은 자동으로 들여쓰기로 표시된다. 

O 여러 줄 문장의 구성

- 연결 문자 \

a = 1 + 2 + 3 + \ 
    4 + 5 + 6 + \ 
    7 + 8 + 9

O 괄호를 사용하는 경우

a = (1 + 2 + 3 + 
    4 + 5 + 6 + 
    7 + 8 + 9)
colors = ['red', 
    'blue',
    'green']

여러 문장을 한 줄에 넣을 수도 있으나 별로 좋은 방법은 아니다.

a = 1; b = 2; c = 3

다음으로 데이터 타입과 변수에 대해 살펴보자. 

먼저 파이썬은 기본 데이터 타입으로 수치형이 있고 다음과 같은 Sequence (나열형)이 있다.

. List, Tuple, Range, String

그리고 Mapping (매핑형)으로 Dictionary가 있다.

그 외에 빌트인 타입으로 Class, Instance, Exception, Module, Code, File 등이 있으며 이들에 대해서는 차차 살펴보게 될 것이다.

먼저 수치형에 대해 살펴보자. 수치형의 종류는 int, float, complex가 있으며, 자바와 다른 점으로 int 타입은 길이 제한이 없다. 그러나 float는 십진수로 15자리 정도까지 나타낸다. 16번째  자리는 부정확하다고 볼 수 있다.

>> 2
2
>> -5
-5
>> 5.0
5.0
>> 1.1234567890123456789
1.1234567890123457

타입 정보를 돌려주는 type 함수가 있다. 값이나 변수를 포함한 수식을 주면 그 타입을 돌려준다. class 형태로 타입이 표시된다. 도한 isinstance()라는 함수가 있어서 변수가 특정 타입이 맞는지를 True/False로 반환해 준다.

a = 5
>> type(a)
<class 'int'>
>> type(5.0)
<class 'float'>
>> c = 5 + 3j
>> c + 3
>> (8+3j)
>> isinstance(c, complex)
True
>> 1.1234567890123456789
1.1234567890123457

다음으로 변수에 대해 살펴보자. 변수는 어떤 메모리 상의 값을 가리키는 이름이라고 볼 수 있다. 파이썬에서 모든 변수는 참조다. 또한 파이썬 변수는 따로 선언이 필요 없고 지정 연산의 왼쪽에 나타나면 변수가 선언된 것과 같은 효과가 난다. 선언된 변수 이름은 항상 어떤 값을 가리키므로 타입이 정해져 있다.

>>> a = 3

대신 새로운 값을 지정하면 그 타입으로 바뀐다.

이름이 수식에서 사용되거나 지정문의 오른쪽에 나타나면 가리키는 값을 가져오는 참조를 의미한다.

>>> a
3

파이썬에서 변수의 이름을 붙이는 규칙은 자바와 비슷하다. 의미있는 이름은 단어를 사용하고 간단한 임시 변수는 한글자 영문자를 사용하면 된다. 여러 개의 단어를 이어서 이름을 붙일 때는 _로 연결해 준다. (snake style)

변수와 지정문을 사용하는데 있어서 파이썬에서는 자바와 다르게 실행환경의 상태라고 하는 것을 정의할 수 있다. 상태란 변수들의 집합이라고 할 수 있다. 모든 변수는 어떤 값의 참조를 가지는데, 지금까지 실행환경에서 등록된 이름과 그 이름이 가리키는 값의 집합이 상태라고 할 수 있다. 지정문의 사용에 주의할 점은 다음과 같다.

- 이름에 값을 지정하면 이전 값은 지워짐
- 여러 이름에 같은 값을 지정하는 것도 가능

a = 5
b = a;         # a와 b는 같은 값을 가리킴
a = ‘hello’    # 5는 지워지고 이제 hello를 가리킴
print(b)

□ 타입과 타입 변환

파이썬의 지정문과 변수의 참조에 대해 살펴보았는데, 이제 타입의 규칙에 대해 살펴보자. 타입이란 컴퓨터가 구분하여 이해하고 표현하는 값의 종류다. 자바와 마찬가지로 파이썬에서도 3과 3.0, ‘3.0’은 컴퓨터에게 전혀 다른 값이다. 즉 값을 읽어서 해석하는 방식과 저장하는 방식, 계산하는 방식이 타입에 따라 다르다. 타입이 다른 값이 수식이나 지정문에서 나타나면 파이썬 컴파일러는 일단 그 값을 해당 타입으로 바꾸려고 노력한다. 이것을 타입 변환이라고 한다. 다음과 같이 정수형이 대응하는 실수형이나 스트링 형으로 바뀌는 것을 타입 변환이라고 할 수 있다.

- 타입마다 메모리에 표현되는 방법이 다름

타입은 왜 필요할까? 타입마다 메모리에 표현되는 방법과 CPU에 의해 계산되는 방법이 다르기 때문이다. 물론 언어에 따라 이런 타입 변환을 자동으로 해주는 언어도 있다. (예를 들면 자바스크립트는 정수형, 실수형, 스트링형 간에 자유자재로 타입이 자동으로 바뀐다. 그런가 하면 자바에서는 정수형이나 실수형이 스트링형으로 자동으로 바뀌지만 반대방향은 자동이 아니다.) 이것은 언어의 설계에 따라 달라질 수 있는 부분으로 타입 변환을 자동으로 해주는 것이 더 좋다고 보는 언어도 있고 그렇지 않다고 보는 언어도 있다.

컴파일러가 자동으로 타입을 변환해 주지 않으면 강제로 변환을 해주어야 한다. 자바에서 강제변환의 대표적인 예가 정수 / 정수의 경우다. 이 때 타입변환을 하지 않으면 소수점 이하를 버리고 정수 몫을 돌려주므로 우리는 강제적으로 타입을 변환해야 한다.

>>> 1 + 2.0
3.0
>>> int(2.3)
2
>>> int(-2.8)
-2
>>> float(5)
5.0
>>> float('3.56')
3.56

파이썬에서는 나누기 연산을 정수나누기 //와 실수를 돌려주는 나누기 /로 구분한다. 이것을 이용하면 굳이 정수를 실수로 변환할 필요없이 나누기 계산이 가능하다.

파이썬의 타입 변환의 특징은 숫자형과 스트링 간에 변환이 모두 강제형변환을 해주어야 한다는 점이다. 이것 때문에 숫자의 입력이 약간 번거로와진다. 

반면 자바와 다르게 숫자형이나 다른 타입에서 진위형(boolean)으로 바뀌는 것은 자동변환으로 정의되어 있다. 이것에 대해서는 따로 타입이 나올 때마다 설명하겠다. 숫자의 경우 0이면 거짓, 0이 아니면 참으로 해석된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함