Python/문법
파이썬 가변 인자 *, *
가변 인자를 받을 때 * : positional arguments 순서 기반으로 동작 합니다. a,b,c = 함수(1,2,3) 이면 a=1, b=2, c=3 c,b,a = 함수(1,2,3) 이면 a=3, b=2, c=1 ** : keyword arguments key 기반으로 동작 합니다. a,b,c = 함수(c="3", b="2", a="1") 이면 a=1, b=2, c=3 a,b,c = 함수(a="1", b="2", c="3") 이면 a=1, b=2, c=3 둘이 함께 사용도 가능하지만, * 이 ** 보다 와야 합니다. def test(*args, **kwargs): print(args) print(kwargs) test('1', '2', '3', fourth='4', fifth='5') # 결과 #..
파이썬(python) 값 전달, 참조 전달
Call by value (값에 의한 호출) 함수의 인자로 실제 변수를 넘기지 않고 변수의 값(객체)를 복사하여 인자로 넘김 Immutable (불변) 객체가 이에 해당된다. def func(name): name = 1 → a와 다른 메모리에 존재하는 name이라는 새 변수임 a = 1 func(a) Call by Reference (참조에 의한 호출) 공식적으론 Call by Assignment 라고 함. 함수의 인자로 실제 변수를 넘기고, 변수의 값(객체)를 변경시킬 수 있음. Mutable (가변) 객체가 이에 해당된다. def func(name): name[0]=4 a=[1,2,3] func(a) 결과 : a=[4,2,3] ※ 그러나 가변객체여도 인자로 받은 객체를 다른 객체로 치환해버리면 원본은..
파이썬(python) 과 C언어의 변수 저장 방식 차이
변수 저장 방식 차이 C언어 메모리 공간을 할당 받고 값을 집어 넣어서 사용하는 방식이다. 메모리 공간을 할당받는 방식이 정적/동적으로 나뉜다. 정적 메모리 할당 컴파일시 고정된 크기/타입의 메모리 공간 할당받아서 사용가능. (스택 공간) 크기 정해지고 중간에 바꿀 수 없음. 소멸할때 운영체제가 자동으로 메모리 반납 int a = 0; a라는 변수가 int형 크기만큼 메모리 공간 할당 받아서 그곳에 0을 넣음. 프로그램 종료시 운영체제가 알아서 메모리 반납 동적 메모리 할당 & 포인터 런타임에 원하는 크기/타입의 메모리 공간을 만들고, 그 공간을 가리키는 주소를 포인터 변수에 저장하여 사용해야 함. (힙 공간) (※ 포인트 변수란 값이 아닌 주소를 가리키는 변수임) 메모리 반납 수동으로 해주어야 함. 1..
파이썬(python) 리스트 잡기술
zip 함수 여러 개의 iterable 객체들을 지퍼를 닫아주듯 번갈아가며 짝지어서 튜플 형태의 iterator로 반환 길이 다르면 나머지 버려진다. zip(iterable_1, iterable_2) - output : zip 객체(iterable=반복가능) [tuple(1,2번이 번갈아가져 짝지어진 형태), ...] 이 객체를 list, tuple 등으로 변환하여 사용 사용법 list(zip(iterable_1, iterable_2)) - input : iterable_1 : [1,2,3] iterable_2 : [4,5,6] - output : [(1,4),(2,5),(3,6)] - 설명 : zip 함수로 객체 2개를 짝지어진 형태로 변환함 그 결과로 나온 zip 객체를 list로 변환 map 함수 ..
파이썬(python) 문자열 중복제거 (unique)
문자열 중복제거 1. set로 변환 후 join 함수 사용 : 순서보장 X s = 'aaabbbccc' b = ''.join(set(s)) print(b) # cba 2. dict.fromkeys(word) 파이썬 3.6부터 dict가 순서보장하기 때문에 사용가능 s = 'aaabbbccc' a = ''.join(dict.fromkeys(s)) print(a) # abc 3. OrderedDict로 변환 후 join 함수 사용 : 순서 보장 O 파이썬 3.6이전 버전에는 기본 내장 dict가 순서 보장 안되어서 사용했던 OrderedDict 사용 from collections import OrderedDict s = 'aaabbbccc' a = ''.join(OrderedDict.fromkeys(s)) ..
파이썬 (python) 자료형
자료 형 자료형 마다 부여된 성질을 이해해야 한다. Sequence(연속적인 값이 이어진 형태)/집합/매핑 → Iterable(for문으로 순차접근 가능) Literal(상수) → Immutable(변경불가능) str(문자열) → Literal(상수) 이면서 Iterable(순차접근 가능)한 특수한 형태. 자료형 Iterable Literal / Container Mutable / Immutable int X Literal Immutable float X Literal Immutable list O Container (Sequence) Mutable tuple O Container (Sequence) Immutable range O Container (Sequence) Immutable str O Lit..
파이썬(python) 정렬 (sort)
이터러블 정렬 (반환됨) sorted(iterable, key, reverse=False) ○ 오름차순 / 내림차순 a = sorted(iterable) : 오름차순 정렬 b = sorted(iterable, reverse=True) : 내림차순 정렬 ○ 특정 값을 기준으로 정렬 sorted('ba','cc','ab') ['ab', 'ba', 'cc'] sorted('ba','cc','ab', key=lambda x:x[1]) : [1]인덱스 우선, [0]인덱스 다음 ['ba', 'ab', 'cc'] sorted([(3,2),(2,1),(1,2)], key=lambda x:(x[1],x[0])) : [1]인덱스 우선, [0]인덱스 다음 [(1, 1), (2, 2), (3, 3)] ○ 자료형 별 정렬 예시..
파이썬 (python) 문자열 뒤집기 (reverse)
문자열 뒤집기 1. list 로 변환하고 list.reverse() 사용 a = 'abcde' list(a).reverse() : 반환값 없이 자기자신을 변경 c = ''.join(b) c = 'edcba' 2. reversed() 함수 사용 reversed(str) : reversed object 생성됨 join 함수를 사용하여 str 변환해주어야 함. ''.join(reversed(str)) a = '12' b = ''.join(reversed(a)) print(b) : 21 (str) print(int(b)) : 21 (int) 3. 슬라이싱[::-1] str[::-1] : 문자열 전체를 반대로(step=-1)
파이썬(python) - 입출력
콘솔로 입출력 하기 1. 내장 함수 사용 ○ 입력 : input() input() 동작 : 콘솔 입력 → (Enter) → str변환 → '\n'(개행)제거 → 반환 input("문구") 동작 : "문구"출력 → 콘솔 입력 → (Enter) → str변환 → 개행('\n')제거 → 반환 ○ 사용 예시 a = input("입력해주세요 :") 입력해주세요 : (사용자 입력받음) Enter ○ 출력 : print(*value, end='\n', sep=' ') print(*value, end='\n', sep=' ') - *value : 가변 입력 (콤마로 구분된 여러 입력 받을 수 있음) - end : 줄바꿈 문자 (기본은 개행) - sep : 구분자 (기본은 공백) 동작 : 값sep값sep값end 순서로 ..
파이썬(python) - 이터레이션 형 (Iteration)
이터레이션 형 (Iteration) 이터레이션(Iteration) : 어떤 객체의 원소에 하나씩 차례로 접근하는 것 - 이터러블(Iterable) : 이터레이션 가능하며 Iterator 객체로 변환가능한 객체 - 이터레이터(Iterator) : 값을 차례대로 접근하여 조회가능한 객체 - iter(Iterator객체) : 이터레이터 객체(자기자신) 호출 - iter(Iterable객체) : 이터레이터 객체로 바꿔서 반환 - next(Iterator객체) : 다음 순번을 호출. 다음 데이터 없으면 StopIteration 예외 발생 s=[1,2,3] next(s) : 1 next(s) : 2 next(s) : 3 next(s) : StopIteration Exception ※ for문은 내부적으로 Itera..