일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- androidstudio
- 프로그래머스
- build
- 대학원일기
- Python
- level3
- 안드로이드스튜디오
- 다시풀기
- level4
- Matrix Factorization
- py
- SQL
- 어렵다
- 컨트리뷰톤
- 컴퓨터비전
- BFS
- 파이썬
- WebOS
- MSBuild
- LEVEL2
- java
- SWEA
- git
- 대학원
- 내휴학생활중의아주큰일
- level1
- D3
- Github
- 휴학
- 자바
- Today
- Total
bit가 눈 앞에서 왔다갔다
내가 보려고 정리한 Python 기본 문법 본문
틈틈히 공부하는 내용 추가해서 업데이트 중!
*자료형
정수(양, 음, 0), 실수(숫자에 . 찍으면 실수로 인식 ex a = 10.) 연산 별도 처리 없이 그대로
a = 5
b = -0.5
print(a+b)
#실수형 -> 정수형 ; 기본 내장 함수 int 사용
a = (int)(10.)
지수 표현 방식
1e9 -> 10의 9제곱(1,000,000,000)
INF = 1e9
print(INF)
#2진수체계에서는 실수 정보 표현 한계, 미세한 오류 만들어냄 -> round()
a = 0.3 + 0.6
print(a)
#결과: 0.8999999
print(round(a,2)) #소수점 둘째자리에서 반올림
#결과: 0.9
*연산
나누기 / (-> C++과 같이 딱 떨어지게 나오는게 아니라 실수형으로 나옴)
나머지 %
몫 연산자 //
거듭 제곱 연산자 ** (제곱근 ex 2 ** 0.5)
*리스트 (수정가능) ex_ a=[ ]
(배열 || 테이블이라고 불리기도)
C, Java의 Array, 연결리스트 기능 지원
C++ vector와 유사
#데이터를 직접 넣는 경우
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(a)
#크기 N, 모든 값이 0인 1차원 리스트
n = 10
a = [0] * n
print(a)
#결과 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
#[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
*같은 자료형이 들어가는게 일반적이지만 다른 것도 ㄱㄴ
*인덱스 사용 (0부터, -인덱싱 가능 -의 경우 뒤에서부처 차례대로 -1 -2 ...)
a = [1, 2, 3, 4, 5, 6]
print(a[1 : 4])
#2,3,4
print(a[-1])
#6
*리스트 컴프리헨션; 리스트를 0으로 초기화하는 (대괄호 내부 조건문 반복문 적용)
array = [i for i in range(10)]
print(array)
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
#1~20까지 홀수만
array2 = [i for i in range(20) if i % 2 == 1]
print (array2)
#[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
-2차원 리스트 초기화시 효과적
N x M
-바른예시
n = 4
m = 3
array = [[0] * m for _ in range(n)] #[]주의 #_는 변수 안쓸때
print(array)
#결과 : [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
-잘못된 예시
n = 4
m = 3
array = [[0] * m] * n
#주소값이 m 인 리스트에 n번 곱한 모습
print(array)
#결과 : [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
array[1][1] = 5
print(array)
#동일한 레퍼런스를 가진게 됨
#결과 : [[0, 5, 0], [0, 5, 0], [0, 5, 0], [0, 5, 0]]
*관련 함수 많음! ex sort(), sorted(), remove() remove_set( , ) 등등
*문자열 자료형
*변수 초기화시 " 또는 '
"와 '는 서로 품을 수 있음. \(백슬래시) 이용시 ". '를 문자로 만들 수 있음
*문자열 연산
a ="Hello"
b = "World"
print(a + " " + b)
a = "String"
print(a * 3)
a = "ABCDE"
print(a[2:4])
#결과: Hello World
#StringStringString
#CD
*튜플 자료형
-리스트와 유사하지만 튜플은 한 번 선언된 값 변경x
-리스트[], 튜플()
-공간효율적
*사전자료형
-Key, Value 쌍
-변경 불가능한 자료형을 키로 사용
-Hash Table이용, 데이터의 검색, 수정 시 O(1)의 시간(상수시간)
-특정 키, 값 반환시 keys(), values()
a = dict()
a['사과'] = 'Apple'
a['바나나'] = 'Banana'
print(a)
print(a.keys())
print(a.values())
print(list(a.keys()))
print(list(a.values()))
#결과:
#{'사과': 'Aple', '바나나': 'Banana'}
#dict_keys(['사과', '바나나'])
#dict_values(['Aple', 'Banana'])
#['사과', '바나나']
#['Aple', 'Banana']
*집합자료형
-중복허용x
-순서x
-리스트나 튜플은 순서가 있어서 인덱싱으로 자료형 값 얻음
-사전 자료형이나 집합 자료형은 순서가 없어서 인덱싱으로 자료형 값x
-집합은 리스트 혹은 문자열로 초기화; 1. set() 이용 / 2. {} 내부 각 원소를 , 로 구분해서 삽입
data = set([7,7,7,4,3,3,3,2,1])
print(data)
data = {1,1,3,3,3,5,6,7,7,7}
print(data)
print(4 in data) #O(1)
#결과:
#{1, 2, 3, 4, 7}
#{1, 3, 5, 6, 7}
#False
-C++ map()과 비슷
-합집합 | 교집합 & 차집합 -
-한 개 추가 add(), 여러개 추가 update(), 원소 삭제 remove()
*데이터 입출력
a, b, c, d, e = map(int, input().split())
#a,b,c,d,e에 정수형을 띄어쓰기 기준으로 나눠서 넣는다
a = list(map(int, input().split()))
#입력받은 정보를 list로 만든다
print(a, b, c, d, e)
#입력 1, 2, 3, 4, 5
#출력 1, 2, 3, 4, 5
#2차원
n = int(input())
m = int(input())
arr = []
for i in range(n):
arr.append(list(map(int,input().split())))
*빠르게 입력받기
sys.stdin.readline() 매서드 - rstrip() 포함 (엔터가 줄바꿈 기호로 입력되기 때문)
-그래프나 정렬 입력 받을 때 가끔 사용
*일반적인 출력
print() 사용, end의 속성 사용시 출력 요소 하나의 끝 기준?을 바꿔서 사용. print( a , end = ' ')
ex) end=' '에 들어가는 내용이 a면 출력 요소마다 뒤에 a가 붙어서 한 줄로 출력
'\n'이면 엔터. ' '는 띄어쓰기
-그냥 상수 출력시 print("답은 " +str(7)) -> str로 string으로 바꿔줘야 ㄱㄴ
*조건문 - c의 else if 가 elif
*논리연산자 and or nor -> 직접 문자로 적어줘야함 / 또는 그냥 합쳐줘도 됨
*pass -> 아무것도 처리하지 x (실행할 코드가 한 줄일 경우만
*반복문 for문에서 수를 차례대로 나열시 range(시작 값, 끝 값) / range(시작, 끝, 증가값)
*함수 def 함수명(매개변수): / 반환형 설정해주지 않아도 됨, 알아서 반환
*람다
-함수를 간단하게 한 줄로 작성할 수 있음
lambda(a, b: a + b) #a와 b의 값을 받아서 더한 후 값 반환
print((lambda(a, b: a + b)(3,4))
array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)] #튜플
#def mykey(x):
# return x[1] #두번째 원소 반환
#print(sorted(array, key = mykey))
print(sorted(array, key=lambda x : x[1]))
#정렬
#결과 : [('이순신', 32), ('홍길동', 50), ('아무개', 74)]
*유용한 표준 라이브러리
-내장함수 ; print(), input(), sum(), min(), max(), eval() - 중위표기법에 사용, sorted()
-itertools ; 반복되는 형태의 데이터를 처리하는 기능, 순열과 조합 라이브러리 제공
-heapq ; heap기능 제공, 우선순위 큐 기능 사용
-bisect ; 이진탐색
-collections ; 덱deque, 카운터Counter 등 자료구조 포함
'언어! > Python' 카테고리의 다른 글
sort() sorted() (0) | 2021.09.02 |
---|---|
split() (0) | 2021.08.03 |
내가 헷갈려서 정리하는 for문 (1) | 2021.07.03 |