이코테 2021 - 1강 (파이썬 문법)

JaeYeop·2022년 3월 3일
0

이코테 정리

목록 보기
1/7

자료형

1. 수 자료형

지수 표현 방식

a = 1e9 # 1000000000.0
b = 75.25e1 # 752.5
c = 3954e-3 # 3.954

실수형 주의

a = 0.3 + 0.6
print(a) # 0.89999999
round(a, 2) # 0.9

이렇게 실수 부분을 정확하게 표현하고 싶다면 round함수를 통해서 나타낸다.

수 자료형 연산

// -> 몫을 얻기 위한 목 연산자
** -> 거듭 제곱 연산자

2. 리스트 자료형

개념

여러 개의 데이터를 연속적으로 담아 처리하기 위해 사용하는 자료형.
C나 자바에서 배열의 기능 및 연결 리스트와 유사한 기능을 지원한다.

초기화

n = 10
a = [0] * n
print(a) # [0, 0, 0, ..., 0]

슬라이싱

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

컴프리헨션

array = [i for i in range(10)]

array = [i for i in ragne(20) if i % 2 == 1]

array = [[0] * m for _ in range(n)] # -> O ( _ 일 경우는 변수 값을 무시할 때 사용 )
array = [[0] * m ] * n # -> X 이렇게 하면 내부가 같은 객체로 인식되서 하면 안된다.

리스트 관련 기타 메소드

array = list()

array.append() # 리스트에 원소 하나를 삽입
array.sort() # 오름차순으로 정렬, reversr=True면 내림차순
array.reverse() # ['a', 'b', 'c'] -> ['c', 'b', 'a']
array.insert() # 특정 위치에 넣을 때
array.count(특정값) # 특정한 값을 가지는 데이터 개수를 센다.
array.remove(특정값) # 특정한 값을 갖는 원소 삭제, 원소가 여러개면 하나만 삭제

3. 튜플 자료형

리스트와 차이

  • 한 번 선언된 값은 변경 불가.
  • 공간 효율적이다.

4. 사전 자료형

개념

자바의 HashMap처럼 Key, Value의 쌍으롤 이루어진 자료형.
값이 순차적으로 저장되는 것과 다르다!

예시

data = dict()
data['사과'] = 'Apple'
data['바나나'] = 'Banana'

if '사과' in data: # -> True

b = {
	'홍길동' : 97,
    '이순신' : 98
}

data.keys() # -> 키들만
data.values() # -> 값들만

5. 집합 자료형

개념

  • 집합은 중복을 허용하지 않는다
  • 순서가 없습니다
  • 합집합(|), 교집합(&), 차집합(-) 연산이 가능하다.

예시

data = set([1, 1, 2, 3, 4, 4, 5])

data = {1, 1, 2, 3, 4, 4, 5}

data.update([5, 6]) # {1, 2, 3, 4, 5, 6}

기본 입출력

자주 사용되는 방법

input() : 한 줄의 문자열을 입력 받는 함수
map() : 리스트의 모든 원소에 각각 특정한 함수를 적용할 때 사용

n = int(input())
data = list(map(int, input().split()))

sys.stdin.readline().rstrip() : 입력을 최대한 빠르게 받아야 할 때 사용

import sys

data = sys.stdin.readline().rstrip()

print(, end="") : end를 통해서 줄바꿈이 아니라 직접 마지막 부분을 정의 가능

반복문

range(x, y, z) : x에서 y-1까지 z만큼 증가.

함수

global 키워드

print(a)와 같이 참조시에는 에러가 나지 않지만 a += 1 과 같이 값을 수정할 경우에 에러 발생.

a = 0

def func():
	global a
    a += 1

for i in range(10):
	func()

print(a) # 10

주의할 점

array = [1,2,3]

def func():
	array.append(4)
   
func()

이와 같이 list의 내부 함수를 호출 할 때는 에러가 발생하지 않는다.

람다 표현식

print( (lambda a,b : a+b )(3,7) )

array = [('홍길동', 50), ('이순신', 32), ('아무개', 74)]
print(sorted(array, key=lambda x:x[1]))

list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]

print( list( map( lambda a,b : a+b, list1, list2 ) ) )
profile
이게 왜 틀리지... (나의 메모용 블로그)

0개의 댓글