티스토리 뷰
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
- jQuery예제
- Module
- 객체지향
- information hiding
- framework
- python #dataType #ControlStatement #function #lambda
- jQuery method
- package
- python
- timedelta
- first class
- 정보은닉
- html
- while
- magic function
- lambda
- 입출력
- list comprehension
- Lambda Expression
- python #데이터타입 #data_type
- spring
- namespace
- constructor
- 동적함수
- OOP
- setter
- DateUtil
- relativedelta
- variable
- bootstrap 변경
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |