티스토리 뷰

Python

- 1990년도에 만들어진 프로그래밍 언어 > 교육용도로 많이 사용 > 데이터 처리에 큰 강점

- 현재는 실무에서 많이 사용

 

Python의 장점

- 러닝 커브가 얕음(다른 언어에 비해)

- 무료, 간결, 성능좋음 (정말 빠른 처리가 필요한 부분은 C로 작성해서 결합 가능)

- 가독성이 높음(중괄호 {}를 이용하지 않고 indentation(들여쓰기)를 이용해서 코드블록 표현)

- 다양한 분야의 프로그램을 할 수 있음 (web program, GUI, Database 프로그램, Data Analysis 프로그램)

- System program, Mobile App program 은 불가

 

C 계열

- 임베디드 프로그램, 시스템 프로그램

 

Java

- 서비스 계열의 프로그램(웹 프로그램)

 

Python 

- 빅데이터 관련(데이터 분석, 처리, 학습)

 

JavaScript

- 웹 프론트엔드쪽 언어 + 서버 프로그램 언어

 

R

- 통계, 데이터 분석, 분석데이터를 레포팅하거나 발표할 결과물 생성에 유용, 시스템과 연동 힘듦

 

==========================================================================

 

개발환경 구축

 

- Python을 설치한 후 IDE를 설치(Pycharm) : 웹 개발과 같은 일반적인 용도

- Jupyter Notebook이용(IPython) : Anaconda 배포판을 이용해서 설치

- Google CoLab

 

Python 설치 > 2.x버전과 3.x 버전이 다름 > 3.7 버전사용(tensorflow 라이브러리 사용을 위해서)

PyCharm 설치

 

===========================================================================

 

python의 keyword

 

import keyword
print(keyword.kwlist)

 

['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

 

* NULL은 없음! 대신 None

 

===========================================================================

 

변수의 생성과 삭제

 

c, java와 다르게 변수 생성시 데이터 타입 선언 x

- 몽땅 reference 

my_var = 100 

my_var # 100이 저장된 객체의 주소값
del my_var # 변수 삭제가능

 

===========================================================================

 

python의 데이터타입


python built-in data type(이미 정의되있는 데이터 타입)
 - Numeric(숫자)
 - Sequence(순서 ex. 리스트)
 - Text Sequence(문자열)
 - Set
 - Mapping
 - Bool

 

 

Numeric Data Type(숫자형)

 

- int(정수)

- float(실수)

- complex(복소수)

 

a = 100 		#정수
b = 3.14159265358979 	#실수
c = 1 + 2j
d = 0o34 		# 8진수, int
e = 0xAB 		# 16진수, int

# 데이터 타입을 알고 싶을때
print(type(a))  # <class 'int'>
print(type(b))  # <class 'float'>
print(type(c))  # <class 'complex'>

my_result = 3 / 4    # 0.75

 

 

Text Sequence type(str)

다른 언어는 문자와 문자열을 구분 > 문자는 한 글자, 문자열은 두 글자 이상으로 구성
문자를 표현할 때 다른 언어는 '', 문자열을 표현할 때 다른언어는 ""
Python은 문자열을 표현할 때 ('', "")

a = "Hello"
b = "H"
c = 'python'

# 문자열 연산
first = "haha"
second = "haha"

print(first + second)
print(first + 10) # java에서는 haha10, python에서는 에러
print(first + str(10)) #python에서 haha10
print(first*3)


- indexing

my_var = "HELLO"
print(my_var[0])
print(my_var[-1])


- slicing

my_var = "Hello"
print(my_var[0:3]) # my_var[0,1,2] : Hel
print(my_var[0:])


- in, not in 연산자

myStr = "This is a sample Test"
print("sample" not in myStr) # True or False


- formatting

num_of_apple = 10
myStr = "나는 사과를 %d개 가지고 있어요!" %num_of_apple
print(myStr)


- 문자열 formatting은 아래의 표현을 주로 사용

num_of_apple = 10
myStr = "나는 사과를 {0}개, 바나나 {1}개 가지고 있어요!".format(num_of_apple, 20) #format() method 사용
print(myStr)


- 문자열 method를 이용한 문자열 처리

  * function : 독립적으로 존재, method : 특정 개체에 종속

 

- 문자열의 길이를 알고 싶으면

myStr = "cocacola"
print(len(myStr)) # len() 함수 사용


- 문자열 내 특정 문자

print(myStr.count('c')) # str의 method인 count()를 이용
print(myStr.find('o')) # o를 제일 처음 발견한 위치 리턴

myStr = " myHobby"
print(myStr.upper()) # 대문자로 변경
print(myStr.lower()) # 소문자로 변경
print(myStr.strip()) # 앞뒤 공백 제거

 

 

Sequence Type(list, tuple)

 

1. list

임의의 객체(데이터)를 순서대로 저장하는 집합 자료형 ( java의 ArrayList와 유사함)

list는 literal로 표현할 때 [] (대괄호로 표현)

 

my_list = []    # literal 방식으로 list 선언
print(type(my_list)) # <class 'list'>
my_list = list()    # list() 함수를 사용해 list 선언
my_list = [1, 2, 3]
my_list = [1, 2, 3.14, "Hello"]
my_list = [1, 2, 3.14, "Hello", [5, 6, 7], 106]

# indexing과 slicing을 할 수 있음
print(my_list[1])   # 2
print(my_list[-2])  # [5, 6, 7]
print(my_list[0:2]) # [1, 2]
print(my_list[4:5]) # list의 slicing 은 list형! [[5, 6, 7]]
print(my_list[4][1]) # 6

new_list = my_list[-2]
print(new_list[1])  # 6

- list 연산

a = [1, 2, 3]
b = [4, 5, 6]

print(a + b) # [1, 2, 3, 4, 5, 6]
print(a * 3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]

a = [1, 2, 3]
a[0] = 5
print(a)    # [5, 2, 3]

a[0] = [7, 8, 9]
print(a)    # [[7, 8, 9], 2, 3]

a[0:1] = [7, 8, 9]
print(a)    # [7, 8, 9, 2, 3]

 

- list method

 

append

a = [1, 2, 3]
a.append(4)			# [1, 2, 3, 4]
a.append([5, 6, 7]) 		# [1, 2, 3, [5, 6, 7]]

 

sort (dose not return anything)

my_list = ["홍길동", "아이유", "강감찬", "신사임당", "kim", "Lee"]
result = my_list.sort()		# 오름차순
print(result)			# None
print(my_list)			# ['Lee', 'kim', '강감찬', '신사임당', '아이유', '홍길동']

 

 

2. tuple

list는 []로 표현, tuple은 ()로 표현

Read Only, 일단 만들어지면 내용 변경 불가 ( append, slice 다 가능, 값만 변경 x)

a = (1, 2, 3)	# tuple
a[0] = 100	# 불가

a = (3, )   	# 요소가 1개만 존재하는 tuple
a = (1, 2, 3)   # 일반적인 tuple
a = 1, 2, 3     # 요소가 1개일때만을 제외하고 () 생략가능
print(a)	# (1, 2, 3)

a = (1, 2, 3)
b = (5, 6, 7)
c = a+b
print("tuple : {}".format(c)) # tuple : (1, 2, 3, 5, 6, 7)

 

 - tuple과 list 변환

a = (1, 2, 3)
my_list = list(a)
print(my_list)	# [1, 2, 3]

my_tuple = tuple(my_list)
print(my_tuple)	# (1, 2, 3)

 

- range

주로 for문에서 사용, 같은 데이터를 적은 양의 데이터로 표현이 가능

my_range = range(10)    # 0~9 까지 1씩 증가
print(type(my_range))   # <class 'range'>
print(my_range)         # range(0, 10)
print(my_range[1:4])    # range(1, 4)

my_range = range(1, 10, 3)  # for (i=1; i<10; i=i+3)

 

 

Mapping( dictionary , dict)

key-value 를 쌍으로 저장하는 자료구조, 기존엔 순서 상관 x, 새 버전은 순서o

{ }로 표현!!

a = {"name": "홍길동", "age": 40}
print(type(a))  	# <class 'dict'>
print(a["name"])    	# "홍길동"
print(a.get("age")) 	# 40

a["address"] = "서울"
print(a)    		# {'name': '홍길동', 'age': 40, 'address': '서울'}

dict에서 많이 사용하는 대표적인 method 3

keys(), values(), items()

a = {"name": "홍길동", "age": 40, "address": "서울"}

print(a.keys())     # dict_keys(['name', 'age', 'address'])
print(list(a.keys()))       # ['name', 'age', 'address']

print(a.values())   # dict_values(['홍길동', 40, '서울'])
print(list(a.values()))     # ['홍길동', 40, '서울']

print(a.items())    # dict_items([('name', '홍길동'), ('age', 40), ('address', '서울')])
print(list(a.items()))      # [('name', '홍길동'), ('age', 40), ('address', '서울')]

 

'개발 > python' 카테고리의 다른 글

test  (0) 2020.07.16
[2020.07.16] 객체지향  (0) 2020.07.16
[2020.07.15] 함수  (0) 2020.07.15
[2020.07.15] python 입출력, 제어문,반복문  (0) 2020.07.15
[2020.07.15] 데이터타입 정리, 시간, 날짜  (0) 2020.07.15
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 31
글 보관함