Hodustory/프로그래밍&DB

파이썬(Python) 입문 : Numbers, Strings, Lists

호두밥 2018. 3. 23. 12:45

An Informal Introduction to Python


아래의 예제를 보면 입력과 출력은 프롬프트(>>>과 . . .)의 여부로 구분됩니다. 프롬프트가 나타날때는 반드시 프롬프트 다음에 입력을 해야합니다. 문장이 프롬프트로 시작하지 않으면 그건 출력 결과입니다. 예에서 한 행의 보조 프롬프트는 빈 행을 입력해야한다는 것을 의미합니다. 이것은 다중 행 명령을 종료하는 데 사용됩니다.


이 메뉴얼에는 프롬프트와 코멘트가 들어간 많은 예시문이 있습니다. 파이썬의 코멘트(주석)은 #으로 시작하는 한 줄(문장)입니다. 코멘트(주석)은 줄의 시작이나 공백 또는 코드의 뒤에 나타날 수는 있지만 문자열에는 나타나지 않을 수 있습니다. 문자열 안에 있는 #는 그저 #문자일 뿐입니다. 코멘트(주석)은 코드를 명확하게 하고 파이썬으로 번역되지 않기 때문에 예제를 쓸 때 생략할 수 있습니다.


예시)

>>> spam = 1 #and this is commnet

>>> text="#this is not comment"

>>> print(spam)

1

>>> print(text)

#this is not comment

1. 파이썬으로 계산하기

1.1 숫자(Numbers)

인터프리터는 간단한 계산기입니다. 표현 구문은 직설적입니다. : +, - , * , / 가 다른 언어에서 처럼 작동합니다. 소괄호는 식을 묶는 데 이용됩니다.

>>> 2 + 2

4

>>> 50-5*6

20

>>> (50 - 5*6) / 4

5.0

>>> 8/5

1.6

>>> 4/3 #나누기는 항상 부동 소수점 수(float)로 반환됩니다. 

1.3333333333333333

정수는 2, 4, 20는 int,글자색 5.0, 1.6과 같은 소ㅋ수부분이 있는 실수는 float 타입을 가집니다. 이후 더 많은 숫자 타입을 다루게 될 것입니다.

나누기의 결과값은 항상 실수형태로 반환됩니다. 내림을 해서 정수값만 얻고 싶을 경우에는 //을 사용합니다. 나머지 값을 얻고 싶을 때에는 %를 사용합니다.

>>> 17 / 3  # classic division returns a float

5.666666666666667

>>> 17 // 3  # floor division discards the fractional part

5

>>> 17 % 3  # the % operator returns the remainder of the division

2

>>> 5 * 3 + 2  # result * divisor + remainder

17

**는 제곱값을 구할 때 사용합니다.

>>> 5 ** 2 #5의 2제곱

25

>>> 2 ** 7 #2의 7제곱

128

=은 값을 변수에 할당할 때 사용합니다. 다음 활성 프롬프트 전에 결과값은 출력되지 않습니다. 

>>> width = 20

>>> height = 5*9

>>> width*height

900

만약에 변수가 지정되지 않은 채로 사용하려 하면 에러가 납니다.

>>> n  # try to access an undefined variable

Traceback (most recent call last):

  File "<stdin>", line 1, in <module>

NameError: name 'n' is not defined

식에 Float(실수)가 껴있으면 정수값이 실수값으로 변환되어 계산됩니다. 

>>> 4 * 3.75 - 1

14.0

활성모드에서 이전 결과값을 변수에 할당하려면 '_'을 이용하면 됩니다. 

>>> tax = 12.5/100

>>> price = 1000.50

>>> price * tax

125.0625

>>> price + _

1125.5625

변수는 읽기 전용으로만 사용됩니다. 명시적으로 값을 지정하지 마세요. 기능을 가진 내장 변수와 같은 이름의 독립적인 지역 변수를 만들 수도 있습니다. int와 float에 더하여, 파이썬은 Demicial과 Fraction 등 다른 숫자 데이터타입도 지원합니다. 파이썬은 j나 J를 붙여 표현하는 복소수도 지원합니다. (3+5j)


1.2 문자(Strings) 

문자는 작은 따옴표 ' ... ' 나 큰 따옴표 " ... " 로 감싸줍니다. 따옴표 앞에 \가 붙으면 따옴표도 문자로 인식합니다.

>>> 'spam egg'

'spam egg'

>>> "dosen't"

"dosen't"

>>> 'dosen't'

  File "<stdin>", line 1

    'dosen't'

           ^

SyntaxError: invalid syntax

>>> 'dosen\'t'

"dosen't"

활성 인터프리터에서 따옴표 안의 백슬레쉬(\)는 백슬레쉬로 출력됩니다. 문자열에 작은 따옴표와 큰 따옴표가 포함되어 있지 않으면 문자열을 큰 따옴표로 묶습니다. 그렇지 않으면 작은 따옴표로 묶습니다. 그리고 print() 함수는 결과물을 따옴표를 생략하고 이스케이프 된 특수 문자를 출력해줍니다.

>>> a='첫째\n둘째\n셋째'

>>> a

'첫째\n둘째\n셋째'

>>> print(a)

첫째

둘째

셋째

만약 print 함수에서 특수문자가 문자 그대로 나오게 하고 싶으면 문장 앞에 'r'을 붙여주면 됩니다.

>>> print('C:\some\name')  # here \n means newline!

C:\some

ame

>>> print(r'C:\some\name')  # note the r before the quote

C:\some\name

문자값을 여러 줄로 넣을 수도 있습니다. 첫번째 방식은 작은따옴표나, 큰따옴표 3개로 감싸주는 것입니다. 줄 끝은 문자열에 자동으로 포함되지만 줄 끝에 \를 추가하여이를 방지 할 수 있습니다.

>>> print("""\

... -h display this usage

... -H hostname host name

... """)

-h display this usage

-H hostname host name

문자값은 +를 이용하여 연결할 수 있습니다. *를 이용하면 반복됩니다.

>>> 'a'*1 + 'b'*2 +'c'*3

'abbccc'

두개 이상의 문자값(따옴표로 감싼 후)을 연달아 쓰면 자동으로 붙여줍니다. 이런 특성은 긴 문장을 잘라서 입력하고 싶을 때 유용합니다.

>>> '오늘부터' ' 우리는'

'오늘부터 우리는'

>>> 가사 = ('널 향한 설레임을 오늘부터 우리는'

... '꿈꾸며 기도하는 오늘부터 우리는')

>>> 가사

'널 향한 설레임을 오늘부터 우리는꿈꾸며 기도하는 오늘부터 우리는'

이 기능은 두 개의 문자값에만 적용되며, 변수나 표현에는 적용되지 않습니다. 

>>> 가수 = '여자친구'

>>> 가수  ' - 오늘부터 우리는'

  File "<stdin>", line 1

    가수  ' - 오늘부터 우리는'

                    ^

SyntaxError: invalid syntax

indices(색인지수...??)는 음수도 될수 있으며, 그 경우 오른쪽에서부터 계산을 시작합니다. 

>>> text='ABCDEFG'

>>> text[1]

'B'

>>> text[0]

'A'

>>> text[-1]

'G'

Slicing(쪼개기)도 가능합니다. 색인이 하나의 문자를 얻기 위한 것이라면 쪼개기는 문자열을 얻게 해줍니다.

>>> text[1:3]

'BC'

쪼개기에는 고정값을 이용할 수도 있습니다. 첫번째 값의 고정값은 0이고 두번째 값의 고정값은 문자열의 길이입니다.

>>> text[4:]

'EFG'

>>> text[:3]

'ABC'

문자열의 위치번호는 아래와 같이 정해집니다.

 +---+---+---+---+---+---+

 | P | y | t | h | o | n |

 +---+---+---+---+---+---+

 0   1   2   3   4   5   6

-6  -5  -4  -3  -2  -1

문자열의 길이를 넘어가는 값일 경우는 아래와 같이 정상적으로 처리 됩니다. 

>>> text [ : 42 ]

'ABCDEFG'

>>> text [ 42 : ]

''

>>> text [ 3 : 30 ]

'DEFG'

문자열을 쪼개어 다른 문자와 붙여 새로운 문자열을 만들 수도 있습니다.

>>> text [ 0 : 3 ] +'알파벳'

'ABC알파벳'

문자열의 길이는 len() 함수를 이용하여 알아낼 수 있습니다.

>>> text = ' 한걸음 앞에 서서 두 손을 놓지 말기로 약속해요 ' 

>>> len ( text ) 

26

1.3 리스트(Lists)

파이썬은 다른 값을 그룹화하는 데 사용되는 여러 가지 복합 데이터 유형을 알고 있습니다. 가장 유용한 것이 대괄호 사이에 값을 쉼표로 구분하는 list입니다. 목록에는 다양한 유형의 데이터가 포함될 수 있지만, 보통 한 목록의 데이터 유형은 모두 동일합니다.

>>> squares = [1, 4, 9, 16, 25]

>>> squares

[1, 4, 9, 16, 25]

리스트도 쪼개기가 가능합니다.

>>> list = [1,2,3,4,5,6,7,8,9,10]

>>> list[1:5]

[2, 3, 4, 5]

모든 쪼개기 작업은 요청된 요소가 포함된 새 목록을 반환합니다. 그리고 리스트는 붙이기와 같은 기능도 제공합니다.

>>> list [ : ]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

>>> list + [ '하나', '둘', '셋' ]

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, '하나', '둘', '셋']

문자열(Strings)과 다르게 리스트(list)는 내용 변경이 가능합니다.

>>> list[9] =100

>>> list

[1, 2, 3, 4, 5, 6, 7, 8, 9, 100]

새로운 항목을 추가할 수도 있습니다.

>>> list = [1,2,3,4,5]

>>> list.append(6)

>>> list

[1, 2, 3, 4, 5, 6]

쪼개기 기능을 이용해 list의 내용을 지우거나 크기를 조절할 수도 있습니다.

>>> list = [ 1,2,3,4,5 ]

>>> list [ 2:3 ] = [ 'C', 'D' ]

>>> list

[1, 2, 'C', 'D', 4, 5]

>>> list [ 4 : 6 ]=[ ]

>>> list

[1, 2, 'C', 'D']

len()함수를 이용해 길이를 알 수 있습니다.

>>> list=[1,2,3,4,5,6,7,8,9,10]

>>> len(list)

10

리스트와 리스트를 엮어 리스트 둥지를 만들 수 있습니다.

>>> a = ['a', 'b', 'c']

>>> n = [1, 2, 3]

>>> x = [a, n]

>>> x

[['a', 'b', 'c'], [1, 2, 3]]

>>> x[0]

['a', 'b', 'c']

>>> x[0][1]

'b

-------------------------

안녕하세요! 호두입니다. 이번에는 숫자값과 문자열/ 배열값을 다루는 파이썬 기초를 정리해보았는데요. 엄청기네요. ㅎㄷㄷ.

지금까지는 이 방식이 꼼꼼히 배워 나갈 수 있어서 괜찮아 보입니다. 효율성은 매우 떨어지지만요.ㅠㅠ 

어떻게 하면 좀더 화면이 예쁠까 고민중인데요. 이제보니 오늘 시도해본 포멧이 너무 칙칙해보입니다. 

다음 번엔 좀 더 나아진 글을 들고 올게요. ㅠㅠ


반응형