3 minute read

파이썬에서 사용하는 기본적인 문법과 활용법에 대해 알아보자.

1. 문자열 자료형

1.1 여러 줄 표현하기

파이썬에서 텍스트 줄 바꿈하는 방법은 다른 언어와 마찬가지로 백슬래시(\n) 있고, 작은따음표 또는 큰 따옴표 3개를 사용하는 방법이 있다.

1
2
3
4
5
6
7
8
9
10
11
//ex1.
>>> multiLine = "Hello world!\n my name is moya"

//ex2.
>>> multiLine = '''
... Hello world!
... my name is moya
'''

//result : Hello world!
//         my name is moya

1.2 문자열 인덱싱과 슬라이싱

문자열의 인덱싱은 []에 인덱스를 사용해서 할 수 있다. 음수를 활용해 뒤에서부터 찾을 수 있고 ‘:’을 사용하면 원하는 구간을 찾을 수 도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> word = "Hello world"
>>> word[1]
'e'

>>> word[5]
' '

>>> word[-1]
'd'

>>> word[0:4]
'Hello'

>>> word[6:]
'world'

1.3 포맷팅

기본적인 포맷팅 방법은 아래와 같다.

1
2
3
4
5
6
7
8
9
10
//ex1. 숫자
>>> "I eat %d apples."%3
'I eat 3 apples.'

//ex2. 문자
>>> "I eat %s apples." %"three"
'I eat three apples.'

//ex3. 2개이상 일때
>>> "I %s %d apples." %("eat", 3)

파이썬에서 제공하는 format 함수를 사용해서 문자열 포맷을 지정할 수도 있다. .format 함수에서는 인덱스 뿐만 아니라 이름도 사용이 가능하다.

1
2
3
4
5
6
7
8
9
10
11
>>> "I eat {0} apples.".format(3)
'I eat 3 apples.'

>>> "I eat {0} apples.".format("three")
'I eat three apples.'

>>> "I {0} {1} apples.".format("eat",3)
'I eat 3 apples.'

>>> "I eat {number} apples.".format(number=3)
'I eat 3 apples.'

마지막으로 파이썬 3.6 이상 버전에서만 사용가능한 f 문자열 포맷팅 기술이 있다.

1
2
3
4
>>> name = "moya"
>>> age = 33
>>> f'my name is {name}. I`m {age} years old.
"my name is moya. I`m 33 years old"


1.4 문자열 관련 함수

위의 문자열 길이 구하기 처럼 문자열에 관련된 함수들을 알아보자.

1.4.1 문자열 길이 구하기 (len)

문자열의 길이는 ‘len’을 사용해서 구할 수 있다. len을 통해 구한 문자열의 길이는 공백도 포함된다.

1
2
3
>>> word = "Hello world"
>>> len(word)
'11'

1.4.2 문자 개수 세기 (count)

1
2
3
>>> word = "Hello world"
>>> word.count('l')
'3'

1.4.3 문자 위치 찾기 (find, index)

중복된 문자가 있다면 가장 처음 문자열의 인덱스를 반환한다. 찾고자 하는 문자열이 없는 경우 find는 ‘-1’을 반환하지만 index의 경우 오류가 발생한다.

1
2
3
4
5
6
7
8
9
10
11
12
>>> word = "Hello world"
>>> word.find('e')
'1'

>>> word.index('l')
'2'

>>> word.find('q')
'-1'

>>> word.index('q')
'error'

1.4.4 대소문자 변경

1
2
3
4
5
6
>>> word = "Hello world"
>>> word.upper()
'HELLO WORLD'

>>> word.lower()
'hello world'



2. 리스트 자료형

파이썬에서 리스트는 단순한 모음이다. 숫자, 문자열 등의 모음이며 []를 사용해 나타낸다.

2.1 리스트 선언과 인덱싱

리스트의 인덱싱과 슬라이이싱은 문자열과 비슷하다. 인덱스를 활용해 원하는 위치의 요소를 구할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
>>> list1 = [1,3,5,7]
>>> list2 = ["one", "two", "three"]
>>> list3 = [1,2, ["one", "two"]]

>>> list1[2]
5

>>> list1[2:]
5,7

>>> list2[-1]
"three"

>>> list3[2][0]
"one"

2.2 리스트의 연산

연산도 문자열과 마찬가지로 +,* 등을 사용해서 반복할 수 있고, len을 사용해서 길이를 구할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
>>> a = [1,2,3]
>>> a*2
[1,2,3,1,2,3]

>>> b = [4,5,6]
>>> c = [7,8,9]
>>> b+c
[4,5,6,7,8,9]

>>> len(a)
3

2.3 리스트 관련 함수

리스트 변수 이름 뒤에 ‘.’을 붙여 여러가지 관련 함수를 사용할 수 있다. 유용한 기능의 함수 몇 가지를 알아보자.

2.3.1 요소 추가 (append)

리스트 마지막에 요소를 추가할 수 있고 어떤 자료형을 사용해도 무관하다.

1
2
3
>>> a = [1,2,3]
>>> a.append(4)
[1,2,3,4]

2.3.2 리스트 정렬 (sort, reverse)

sort 함수는 리스트의 요 소를 순서대로 정렬하고, reverse 함수는 리스트를 역순으로 뒤집어준다. 하지만 reverse는 역순으로 정렬은 되지 않고 현재 리스트 그대로 뒤집는다.

1
2
3
4
5
6
7
>>> a = [1,5,9,2]
>>> a.sort()
[1,2,5,9]

>>> b = ['a','b','d','c']
>>> b.reverse()
['c','d','b','a']

2.3.3 리스트 변경 (insert, remove, pop, extend)

insert와 remove는 원하는 위치에 요소를 추가, 삭제할 수 있고 pop은 리스트의 맨 마지막 요소를 리턴하고 그 요소를 삭제한다. 마지막으로 extend는 리스트를 확장할 수 있으며 추가가 가능한 요소는 리스트로 한정된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> a = [1,2,3]
>>> a.insert(0,4)
[4,1,2,3]

>>> b = [1,2,3,1,2,3]
>>> b.remove(3)
[1,2,1,2,3]

>>> c = [1,2,3]
>>> c.pop
3
>>> c
[1,2]

>>> d = [1,2,3]
>>> d.extend([4,5])
>>> d
[1,2,3,4,5]