일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- vram
- Python #open #read #파이썬
- docker
- DataLoader
- NLP
- UUID
- GPT API
- ML #머신러닝
- 파이썬 #기초 #응애
- leetcode
- Backoff
- MySQL
- Gunicorn
- Python #for문 #while문 #응애
- Mecab
- python
- GCP
- onnx #openvino #tf2onnx #openvinokeras
- Flask
- GPU
- 고유값
- 매매봇
- OpenAI
- ML
- overloaed
- GPT
- CentOS
- Anaconda
- BitCoin
- pytorch
- Today
- Total
람쥐썬더
[PYTHON] 기본 문법 정리 본문
- 표현식
print('~') , print("~") : print 문 큰따음표 작은따음표 이용해서 내용을 출력
표현식이 하나 이상 모이면 문장
문장이 모여서 프로그램.
- 식별자
기본적으로 예약되어 있는 언어인 키워드(예약어)를 사용하면 안됨.
공백 포함하지 않음
특수문자는 언더바( _ ) 만 사용
공백을 포함 할 수 없음
- 자료형
숫자형 ( 정수 , 실수, 8진수, 16진수 ) [ int, float ]
문자형 (string) [ str ]
불린형 (True or False) [ Boolean ]
- 리스트다루기
=> 대괄호 [ .... ] 안의 요소를 콤마( , )로 구분하여 순서있게 나열
인덱싱 : 리스트내의 요소를 가져오는것 ex) list[0], list[3:]
리스트 정렬하는 내장함수 : sort() <= 오름차순 정렬 ex ) list.sort()
내림차순 정렬 ex) sorted( list, reverse = True)
리스트 삭제하기 del list[ i ] => list 안의 인덱스 i 번째 삭제
인덱스 위치 가져오기 : list.index( i ) => 요소중 첫번째 나오는 i라는 요소가 몇번째 있는지 확인
갯수 가져오기 : list.count( i ) => i가 리스트에 몇개 들어있는지 (중복되는 값이 몇개인지)
리스트 확장하기 : list.extend([ args ]) => 기존 리스트 뒤에 요소들을 확장시켜주는것
리스트 추가하기 : list.append( i ) => 제일 뒤에 i 라는 요소만 추가
리스트 추가하기2 : list.insert( n , i ) => 리스트의 인덱스 0번째 자리에 i 라는 요소 추가하기
- 튜플 다루기
튜플은 괄호 사용하여 표시 ( ...... ) 하는데 없어도 튜플로 인식한다
ex) tuple = 1,2,3,4 => 이래도 튜플임
근데 명백히 다른것. 가장 큰 특징은 한번 정의하면 값을 수정하거나 빼거나 할 수 없다는것
그야말로 고정값의 개념이라 변하면 안되는 값이 있을땐 튜플을 사용하면 된다
tuple = (1,'a','abc',[1,2,3,4,5],['a','b','c']) 과 같이 튜플안에 리스트가 들어가는 경우도 있음
이럴때에 튜플 안쪽을 보고싶다면 tuple[3][0] 과 같은식으로 인덱싱 두번 해주면 됨 => 결과값 1
또 특이한 특징으로는 한개의 값을 가질때 콤마가 들어가야함 ex) tuple = (1,)
튜플로 더하기를 할거면 튜플 + 튜플 하면 됨.
- 딕셔너리(사전)형
중괄호 { ... } 로 표시한다
아직은 활용하기 좀 어려운 개념 ㅡ ㅅ ㅡ
키와 값을 하나의 요소로 가지며 순서가 없는 집합 이라고 정의되어있음
이를테면 a : 1 과같이 하나의 key 에 value가 동반함 둘이 쌍으로 있어야 딕셔너리가 성립
자 예를 들어보자 dict = {'a':1,'b':2,'c':3} 라고 쓰면 딕셔너리 형태임 각자 하나의 키에 밸류가 대응함
여기서 key값으로 Value 를 찾아보자
print( dict['a'] ) 라고 한다면 딕셔너리의 a를 찾는것이기 때문에 출력값은 => 1 <<== 이녀석이 a의 밸류임
자 한번 덮어보자 b 라는 키값으로 2라는 밸류값을 바꾸겠다 하면 이런식으로
dict['b'] = 5 라고 대입을 하면 짜잔 dict = {'a':1,'b':5,'c':3} 가 된다
이번엔 키 따로 밸류 따로 뽑아보자
방법은 keys() 와 values() 를 쓰는것.!
dict.keys() , dict.values() 를 프린트 해보면 뭐가 나올까? 직관적이다.
keys 를 사용한 출력값은 dict_keys(['a', 'b', 'c']) 가 나왔고
values 를 사용한 출력값은 옆집 순자이모도 알겠지만 dict_values([1, 5, 3]) 가 나온다
자 이번엔 둘 다 보이게 한번 꺼내보자 뭐로? items() 로~
dict_items() 를 사용하면 dict_items([('a', 1), ('b', 5), ('c', 3)]) 라는 출력값이 나온다
근데 이게 리스트나 문자,정수형이 아니라 class 자체가 dict_itmes 이런식으로 나오기떄문에
어떻게 써먹을지는 좀 더 생각해보자..
- Set (집합자료형)
이번엔 집합자료형, 이 친구의 특징은 인덱싱해서 값을 얻을수 없고 필요하면 리스트나 튜플로 변신시켜서 얻어야된다
중복값을 허용하지 않아서 중복죽일때 많이 쓰이는 듯. (몇번써봄 ㅎ)
그리고 마찬가지로 순서도 없다.
예시 ) s1 = set([1,2,5,4,3]) => 프린트 해보면 {1,2,3,4,5} 라고 출력됨 순서가 없음
인덱싱? 순서가 없는데 인덱싱 어케할건데 아 ㅋㅋ
두번째 예시 ) s2 = set('Hello') => 프린트 하면 {'H', 'l', 'e', 'o'} 이렇게 나옴 중북되는 l 하나 없애고 나온걸 볼 수 있다
-문자열 포맷 코드
이건 그냥 외우자
%s : 문자열
%c : 문자 1개
%d : 정수
%f : 실수
%o : 8진수 (사람이름아님ㅎ)
%x : 16진수 (얘도ㅎ)
%% : %문자 그 자체
이건 어떻게 써먹냐면
'님아 그 %s 강을 건너지 마오'%양쯔 라고 하면 출력은 => 님아 그 양쯔강을 건너지 마오 이렇게 나온다
이건 저 안쪽에 양쯔라는 문자열을 넣었기 때문에 %s 쓴거고 강이름이 141강 이런거면 당연히 %d 써야함
유도리있게 자료형식에 맞춰서 사용해 주면 된다.
-포맷활용 자릿수 맞추기(소수점도)
ex) "%10s" %hi => 출력하면 ' hi' 같이 앞의 공백 여덟개 두고 hi가 출력된다
왜 공백이 10개가 아니라 8개냐면 10개 공백 중에 hi가 두개 먹어서 8개남음 ㅋ
ex) "%-10sjane"%hi => 출력하면 'hi jane'은 마찬가지로 10개 공백중 8개 공간이 남고 hi가 오른쪽으로 붙음
ex)"%0.4f"%3.42134234 => 출력하면 "3.4213" 이 나온다
왜 why? 소수점 4자리까지만 출력한다는 것이기 때문
ex)"%10.4f"%3.42134234 는 뭐가나올까 => 출력하면 " 3.4213" 이 나온다
이건 또 왜 why? 10개의 공간에서 소수점 4번째 자리수까지만 출력하는 것이기 때문
-문자열 관련 함수
조금 보긴 했지만 다시 복습하는 개념으로 차근차근
count() : 갯수를 새주는 함수
ex) a = 'hobby' / a.count('b') 는 hobby에서 b가 몇개인지 세준다 그럼 출력값은? => 2
find() : 위치 찾는 함수
a = 'Python is the best choice' 라고 하고
ex) a.find('b') 라고 하면 b가 처음으로 나온 위치를 알려준다 출력값 => 14
ex) a.find('k') 는 k 가 없어서 -1로 반환한다 => -1
index() : 위치찾는 함수
위랑 똑같다 귀찮으니 코드는 패스 대신 다른점 하나는 find()는 문자가 없으면 -1로 반환하지만 얘는 에러뜬다
join() : 문자열 삽입 함수
이친구는 직접 한번 보자
",".join('abcd') 이면 출력값은 => 'a,b,c,d' 같이 각 문자 사이에 쉼표( , ) 를 삽입한다
써놓고보니까 포문돌려서 append 한것도 같고? 암튼 알아두면 편리
리스트로도 쓸 수 있다 ex) ",".join(['a','b','c','d','e') 출력값은 => a,b,c,d,e 로 하나로 합쳐진다
upper(), lower() : 대문자로 바꾸기, 소문자로 바꾸기
이건 뭐 따로 안배우긴 했는데 간단해서 좋다
a = 'hi' 일때 ex) a.upper() 출력값은 => "HI" 로 대문자로 바꿔준다, 소문자는 굳이 쓰기 귀찮으니 패스
안쪽에 이미 문자열이 대문자or소문자 이면 굳이 따로 변환시키진 않는다.
lstrip() , rstrip(), strip() : 공백 지우는 함수
left, right strip 이라고 생각하기 왼쪽 오른쪽 양쪽의 공백을 지워주는 역할을 한다.
replace() : 문자열 바꾸기
replace 말그대로 재배치다 replace( 1 , 2 ) [1]이라는 바꾸길 원하는 문자를 [2]라는 문자로 바꿔준다
split() : 문자열 나누기
은근 많이쓴다 문자열을 나눠주는거다
a= "Life is too short" 라고 한다면 ex) a.split() 출력값은 => ['Life', 'is', 'too', 'short'] 다
디폴트인 공백 기준으로 문자를 스플릿 해줫따!!
지정 문자열로 쪼개는 방법도 있다 b = 'a:b:c:d' 라고 했을때 ex) b.split(':') 의 출력값은? => ['a','b','c','d'] 이다
여기서 관전 포인트가 있는데 얘는 스플릿해서 리스트에 넣어준다는 점이다 그 부분 꼭 알고 넘어가자
- if문
조건문이다. 어떤 조건이 만족하면 실행되는 아주아주아주아주아주많이쓰는 조건문이다.
알고리즘의 기본을 생각해보면 y/n 이라는 선택지가 주어졌을때 얘를 통해서 넘기고 돌아가고 이해하면 된다.
if a == 0 : ==> 만약 a가 0이라면 이라고 조건을 준다 그 조건이 만족하면 아래 코드가 실행된다
elif a == 1: ==> 위의 코드에서 a가 0이아니엇으면 조건이 만족하지 않아 elif문이 실행된다
else: ==> 조건문이 만족하지 않아 이도저도 아니면 else 문을 실행 따로 조건 안 넣어줘도 된다.
for문부턴 다음에
2021. 07. 01
'파이썬' 카테고리의 다른 글
[PYTHON] tensorflow2 keras 모델로 openvino 활용 inference (0) | 2022.07.04 |
---|---|
[PYTHON] keras.applications 의 모델 사용하기 (0) | 2022.06.22 |
[PYTHON] 기본 문법 정리 [ 함수 ] (0) | 2021.07.20 |
[PYTHON] 기본 문법 정리3 [open함수] (0) | 2021.07.07 |
[PYTHON] 기본 문법 정리2 [ 반복문 ] (0) | 2021.07.06 |