728x90
반응형


2019/01/12 - [Language/Python] - [Python 따라하기]1. Python 설치하기


2019/01/21 - [Language/Python] - [Python 따라하기] 2. 자료형_part 1(String, Int,Float, List)


Tuple형

튜플은 값을 변경시킬 수 없다는 점을 제외하고는 리스트와 동일하다. 여기서 '값을 변경시킬 수 없다'라는 것은 값을 수정, 변경, 삭제를 할 수 없다는 것이다.


리스트와 동일하게 인덱싱과 슬라이싱을 할 수 있지만 값을 변경시키는 것은 불가능하다.



리스트와 같이 덧셈과 곱셈의 사칙연산을 지원한다.



 Tuple 자료형은 값을 변경시킬 수 없다는 점이 가장 큰 특징이며, 이 점을 이용해서 값이 변하면 안되는 것, 혹은 잘 변하지 않는 값을 사용하는 경우에 사용한다.


Set(집합형)

Set은 집합 자료형으로 집합에 관련된 연산을 지원해준다. set() 연산자를 이용하거나 {}를 사용해서 집합 자료형을 사용하며 2가지의 큰 특징이 있다.

1.순서가 없다

2.중복이 없다.


 '순서가 없다'라는 특징은 위의 Hello 와 같이 set으로 자료형을 변환하면서 각 글자의 위치가 달라졌다는 것을 의미한다. 따라서 '순서가 있다' 라는 특징을 가지는 리스트와 튜플과 달리 인덱싱과 슬라이싱 기능을 사용할 수 없다.


'중복이 없다'라는 특징은 Hello 두 개의 l 이 있지만 set 자료형에서는 하나의 l 만 있는 것을 확인 할 수 있다. 따라서 이 점을 이용해서 다른 자료형의 중복을 제거하기 위해 사용한다.


집합 사칙연산

집합 자료형이므로 교집합, 합집합, 차집합과 같은 연산을 지원한다.

교집합

두 집합 사이의 공통된 요소를 반환한다. & 를 사용하거나 intersection()을 사용한다.

합집합

두 집합을 합치는 작업을 수행한다. | (shift + \ )을 사용하거나 union()을 사용한다.

차집합

두 집합의 차를 수행한다. - 연산자를 사용한다.


내장함수

값 추가하기

하나의 값을 추가할 경우 add()를 사용하고 여러 값을 추가해야 할 경우 update()를 사용한다.

값 제거하기

값을 제거하고 싶을 경우 remove를 사용하면 된다.


Dictionary

Dictionary 자료형은 key 값과 value 값으로 구분되어져 있다. 즉 과일에 대한 dict 자료형이라고 하면 사과의 갯수 4개, 바나나의 갯수 5개...와 같이 대응 관계를 가지고 있는 자료형이다. 이와 같은 자료형을 다른 프로그래밍 언어에서는 해쉬(Hash)라고 부른다. 다음과 같이 사용하며 상당부분 set과 비슷한 성질을 가지고 있다.



일반 적으로 key에는 변하지 않는 값을 value에는 변하는 값을 넣도록 한다.

딕셔너리 자료형에 값은 다음과 같이 추가 및 제거를 한다.


딕셔너리도 set과 같은 성질을 가지고 있기 때문에 숫자로 인덱싱과 슬라이싱을 할 수 없다. 대신 key 값을 통해서 value 값에 접근 할 수 있다.


또한 중복을 허용하지 않으므로 같은 key 값은 존재할 수 없다.



내장 함수

key 리스트 만들기

keys()는 딕셔너리의 key 값들만 모아서 리스트로 반환을 한다. 이 때 우리가 알고 있는 list 자료형이 아닌 dict_keys라는 객체로 반환하는데 리스트와 동일하게 반복문에서 사용할 수 있다. 이를 리스트로 만들고자 하면 list()함수를 사용하도록 한다.


value 리스트 만들기

values()는 딕셔너리의 value 값들만 모아서 리스트로 반환을 한다. keys()와 마찬가지로 dict_values로 반환을 하고 동일하게 사용한다.

item 리스트 만들기

items()는 딕셔너리의 쌍들을 모아서 tuple로 묶어 리스트로 반환을 한다. keys()와 마찬가지로 dict_items로 반환을 하고 동일하게 사용한다.


728x90
반응형
728x90
반응형

2019/01/12 - [Language/Python] - [Python 따라하기]1. Python 설치하기


서론:


 Python을 배우기에 앞서서 Python의 자료형들에 대해서 알아야 한다. 영어를 배우려면 알파벳을 먼저 알아야 하는 것처럼 프로그래밍 언어를 배우기 위해서는 자료형을 우선 알고 시작하는 것이 중요하기 때문이다. Python의 자료형들은 비교적 단순해서 이해하기 쉬운 편이다.

String(문자열)


 String(문자열)은 문자나 단어로 구성되어 있는 자료형이다. 다른 프로그래밍 언어에서는 " "로 둘러싸이면 string ' '로 둘러싸이면 char로 표현되는 것과는 달리 Python에서는 " ", ' ' 상관 없이 둘다 string으로 표현이 된다.


따라서 숫자를 " "나 ' '로 묶으면 int형이 아닌 string이 된다.



만약 장문의 글을 쓰게 되어서 여러 줄을 표현을 해야 하거나, 글 중에 인용구등이 포함이 되어 있는 글이라 " "와 ' ' 를 섞어서 사용해야 할 경우가 있다. 

그럴 경우 다음과 같이 작성을 하면 된다.



다른 자료형을 str()함수를 사용해서 문자열로 바꿀 수 있다.


문자열 연산


문자열은 다음과 같이 더하기와 곱셈 연산을 지원한다.


문자열 인덱싱과 슬라이싱


문자열의 인덱싱과 슬라이싱을 이용하면 문자열의 일부분만을 불러 낼 수 있고, 인덱싱과 슬라이싱은 반복 가능한 개체에서는 모두 사용가능하다.
인덱싱과 슬라이싱은 다음과 같이 사용한다.



m은 ' 를 포함하여 세번째 글자이지만 2로 인덱싱을 해야 접근 할 수 있다.

그 이유는 파이썬은 0부터 숫자를 세기 때문이다. 이 말은 문자열의 첫 번째 글자의 위치가 1이 아닌 0이라는 뜻이다. 따라서 맨 끝의 인덱스로 접근 하기 위해서는 문자열의 길이로 접근 하는 것이 아닌 문자열의 길이-1 로 접근을 해야한다. 문자열의 길이를 구하기 위해서 내장함수 len()을 사용하도록 한다.



만약 길이보다 더 큰 값을 넣거나 음수(-) 값으로 인덱싱을 하면 어떻게 될까??



길이보다 더 큰 값을 넣으면 IndexError가 발생하지만 음수(-)는 오류가 발생하지 않았다. a[-1]은 a[len(a)-1]과 같은 값을 얻었는데, 그 이유는 음수(-)에선 맨 끝에서부터 다시 인덱싱을 할 수 있기 때문이다. 하지만 음수값도 길이 이상을 벗어난다면 IndexError가 발생한다.


문자열 내장함수

문자 개수 세기(count)

문자열 내 한 글자나 구절이 몇개가 있는지 확인 할 수 있는 함수이다.


문자 위치 찾기(1번)

 찾는 문자의 인덱스를 반환해주며, 만약 존재하지 않는 문자를 찾는다면 오류가 발생한다.


문자 위치 찾기(2번)

내장 함수 index와 같은 역할을 하지만 index와 달리 존재하지 않는 문자를 찾으면 오류가 아닌 -1을 리턴한다.


문자 구성 확인하기

isdigit은 문자열이 숫자로만 구성되어 있는가 확인해주는 함수이며, 숫자로만 구성 되어 있으면 True, 하나라도 문자가 있으면 False이다.
isalph는 isdigit과 반대로 문자로만 구성되어있는지 확인해주는 함수이다.

대소문자 변환하기

capitalize는 문자열의 첫 글자를 대문자로 만들어 주는 함수다.
islower는 문자열이 소문자로만 구성되어 있는지 확인하는 함수이며, 맞으면 True 아니면 False를 리턴한다.
isupper는 문자열이 대문자로만 구성되어 있는지 확인하는 함수이며, 맞으면 True 아니면 False를 리턴한다.
upper는 문자열 전체를 대문자로 만드는 함수이고, lower는 문자열 전체를 소문자로 만드는 함수이다.
swapcase는 대문자를 소문자로 소문자를 대문자로 만드는 함수이다.


문자열 분리하기

str.split(sep)으로 사용하며 str을 sep으로 분리하는 함수이다. 보통 " " 공백(띄어쓰기)를 기준으로 분리를 한다. 받는 변수가 없으면 리스트 값으로 분리를 한다.

문자열 붙이기

str.join(iterable) join은 반복가능(iterable)한 자료 사이에 str 값을 넣어주는 함수이다. 하지만 보통 str부분에 ""을 넣어서 문자열을 붙여주는 용도로 사용한다.



Int,Float(정수형, 실수형)

 int는 정수형(integer)를 뜻하고 Float는 소수점이 포함이 된 숫자(Floating-point)를 뜻한다.



Float 형으로 변환하기 위해서는 float()를 사용하고, int형으로 변환하기 위해서 int()를 사용한다. 소주점이 포함된 숫자에 int()를 사용하면 소수점 부분을 버린다.



사칙연산

숫자형과 평소에 알고 있는 연산자( +, - ,* ,/)를 사용해서 사칙연산을 할 수 있다.




 이 외에도 제곱(**), 나머지(%), 몫(//)을 수행하는 사칙 연산이 있다.



Python에서는 사칙연산을 축약하여 사용할 수 있으며, 내장함수나 라이브러리를 통해서 많은 연산을 지원해준다.


위의 사칙 연산을 다음과 같이 축약 할 수 있다.


round(반올림)

round(numbers,ndigits)로 사용 한다. 수(number)를 소숫점 ndigits번째 자리까지 나타내도록 ndigits + 1 번째에서 반올림을 하는 함수이다. ndigits의 고정값(default)은 0으로 고정되어있다.

하지만 .5 와 같은 경우에는 일반적으로 알고 있는 반올림 연산을 따르지 않는 경우가 생기는데, 그 이유는 컴퓨터에서 소숫점을 표현하는 방식 때문이다.
(ex 4.5 == 4.44444444449와 같이 표현이 되기 때문)


pow(제곱)

pow(x,y,z)로 사용을 한다. (x**y)%z 와 같은 연산을 한다. z의 고정값(default) 값이 None으로 되어 있어 값을 주지 않으면 나머지 연산은 하지 않는다.

import math

다음은 수학연산을 지원하는 내장 라이브러리인 math이다. import math로 불러오며 다양한 수학 연산을 지원한다. 연산자는 다음 링크에서 확인 할 수 있다.


List(배열)

List는 배열 자료형이며 여러 개의 자료형을 담는 역할을 한다. List는 다음과 같이 표현이 되며 문자열(string)과 같이 인덱싱과 슬라이싱이 가능하다


List 안에 List를 사용하는 것을 2중 배열문이라고 하는데 행렬을 표현하고자 할 때 주로 많이 사용한다. 2중 배열문은 다음과 같이 인덱싱을 한다.



List 역시 string과 동일하게 덧셈과 곱셈 연산을 지원한다.



List는 String과 비슷한 기능을 지원하지만 값을 수정 할 수 있다는 점은 다르다.


리스트 내장함수

요소 값 추가하기(1)

list.append(x)를 사용하면 list에 x의 값을 list의 끝에 추가하는 작업을 수행한다.

요소 값 추가하기(2)

append는 항상 list의 맨 끝에 넣는다는 점을 보완하기 위해서 사용한다. insert(a,b)는 a번째 위치에 b를 넣는 작업을 수행한다.

요소 값 제거하기(1)

list.pop()을 사용하면 list의 끝 값을 제거하는 작업을 수행하며, .pop(a)로 사용하면 list의 a번째 위치의 값을 제거한다.

요소 값 제거하기(2)

list.remove(x)를 사용하면 첫 번 째로 나오는 x의 값을 제거하는 작업을 수행한다.

요소 값 정렬하기(1)

list.sort()를 사용하면 list를 오름차순으로 정렬한다.

요소 값 정렬하기(2)

sorted(iterable,key=None,reverse=False)는 정렬함수이면서 다양한 기능을 제공한다. sort()는 리스트 자체를 정렬시키면서 반환값이 없지만, sorted는 반환값으로 제공하기 때문에 정렬 전의 상태와 정렬 후의 상태가 동시에 필요할 때 사용한다. 또한 reverse=True로 조건을 켜두면 오름차순이 아닌 내림차순으로 정렬을 하며 key 값을 넣어주면 key를 기준으로 정렬을 한다.

요소 값 뒤집기

reverse는 리스트 전체를 뒤집는 작업을 한다. 내림차순으로 정렬을 하는 것이 아닌 단순히 리스트를 뒤집는 일만 한다.

요소 값 위치 찾기

index(x,a,b)를 사용하면 list 내 a이상 b미만의 인덱스에서 x가 처음 나타는 위치 값을 반환한다. 고정값으로 a는 시작점으로, b는 마지막 점으로 설정 되어 있다.

요소 값 세기

count(x)를 사용하면 list 내 x의 갯수를 세서 반환을 해준다.


728x90
반응형

+ Recent posts