bit가 눈 앞에서 왔다갔다

내가 보려고 정리한 Python 기본 문법 본문

언어!/Python

내가 보려고 정리한 Python 기본 문법

헬린인형 2021. 1. 11. 18:20

틈틈히 공부하는 내용 추가해서 업데이트 중!

 

*자료형

정수(양, 음, 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
Comments