@ 17. 1 ~ 18/파이썬
-
파이썬에서의 값 할당 방식@ 17. 1 ~ 18/파이썬 2018. 3. 18. 21:16
def sort_priority2(nubmers, group): found = False def helper(x): if x in group: found = True return (0, x) return (1,x) numbers.sort(key=helper) return found변수가 이미 현재 스코프에 정의되어 있다면 새로운 값을 얻는다.파이썬은 변수가 현재 스코프에 존재하지 않으면 변수 정의로 취급한다. 새로 정의되는 변수의 스코프는 그 할당을 포함하고 있는 함수가 된다. 위에 함수에서 return받는 found의 값이 False일까? True일까?사전에 helper내부에서 found = True가 된다는 가정하에서 말이다. 정답은 False이다. 그러면 우리가 알고 있는?? c#에서나.. 할당되는..
-
파이썬 None@ 17. 1 ~ 18/파이썬 2018. 3. 18. 17:33
특별한 의미를 나타내려고 함수의 반환값에(뭐 보통은..error나 잘못된 리턴값을 표현할때?) None을 하게된다면..오류를 일으키기 쉬울 수도 있다. 이유는 None이나 다른 값이 조건식에서 False로 평가되기 때문이다. def divide(a,b): try: return a/b except ZeroDivisionError: return None result = divide(0, 0)if result is None: print("None inputs") if result: print("True Input") if not result: print("False inputs") if result is False: print("is False inputs")결과값None inputsFalse inputs 위..
-
try/except/else/finally@ 17. 1 ~ 18/파이썬 2018. 3. 18. 16:19
finally 블록 : 예외가 발생해도 정리 코드를 실행하고 싶다면 finally 를 사용한다. : try 이후에 항상 실행된다는것 else 블록dict1 = {'a':1, 'b':2}def testMethod(dict1): try: print(dict1['b']) except: print("예외발생") else: print('else문') testMethod(dict1) : 여기서 키값이 b일때는 try문 다음에 else가 실행된다. : except이 일어날 경우 else가 실행되지 않는다. : 단순히 if ~ else 를 except ~ else로 이해하면 편하다.else 블록은 try 블록에 있는 코드의 양을 최소로 줄이는 데 도움을 주며 try / except 블록과 성공한 경우에 실행할 코드를 ..
-
파이썬 컴프리 헨션의 고려사항@ 17. 1 ~ 18/파이썬 2018. 3. 15. 23:55
리스트 컴프리헨션의 문제점은 입력 시퀀스에 있는 가 값별로 아이템을 하나씩 담은 새 리스트를 통째로 생성한다는 점이다.입력이 적을 때는 괜찮지만 클때는 메모리를 많이 소모해서 프로그램을 망가뜨리는 원인이 되기도 한다. 파이썬은 이 문제를 해결하려고 리스트 컴프리헨션과 제너레이터를 일반화한 제너레이터 표현식을 제공한다.제너레이터 표현식은 실행될때 출력 시퀀를 모두 메모리에 로딩하지 않는다. 대신에 표현식에서 한번에 한 아이템을 내주는 이터레이터로 평가된다. 제너레이터 표현식은 () 문자 사이에 리스트 컴프리헨션과 비슷한 문법을 사용한다.value = [len(x) for in open('/tmp/my_file.txt')] value = (len(x) for in open('/tmp/my_file.txt')..
-
문자열 서식@ 17. 1 ~ 18/파이썬 2018. 3. 14. 00:52
서식을 사용해서 문자열을 만드는것을 문자열 포매팅이라고도 부른다.먼저 서식 지정자 - 서식지정자는 %로 시작한다. '%s' % 'Hello'>> 'Hello'라면 출력결과는 'Hello'라는 문자열이 나온다.%s를 사용뒤 % 다음에 문자열이 나오면 %s부분이 문자열로 대체된다. 심지어 문자열과 서식 지정자를 섞어서 사용할 수 있다.'Hello %s' % 'World'>>'Hello World' 서식 지정자 갯수와 % 뒤에 나오는 값과 일치가 되어야 한다.'%s %s' % ('Hello', 'World')>>'Hello World' 튜플을 사용해서 해도된다. 정수는 %d 실수 %f ** 서식지정자를 붙여버리면 결과도 붙어서 나온다. 더 간단한 포멧메서드도 있다 c#처럼..'Hello, {0}'.format..
-
파이썬 리스트 관련@ 17. 1 ~ 18/파이썬 2018. 3. 14. 00:39
리스트와 튜플 변수로 여러개의 변수를 만들 수 있다. 이런 것을 리스트 언패킹 또는 튜플 언패킹이라고 한다.x = [1,2,3]a,b,c = xprint(a,b,c)print(x)x의 리스트가 a,b,c의 각각의 변수에 1,2,3이 할당됨 리스트 관련 함수extend : 리스트의 맨 뒤에 리스트를 연결합니다. a = [1,2,3]a[len(a):] = [10]print(a)a[len(a):]이 가능한 이유는 슬라이스 때문에..범위를 벗어나도 알아서 해준다는..a[len(a)]는 인덱스 에러남 리스트를 copy로 복사하면 깊은 복사가 된다. for문에서 인덱스와 요소의 값을 동시에 출력하려면..?for index, value in enumerate(a): print(index, value)enumerate..
-
PEP8 스타일 가이드를 따르자@ 17. 1 ~ 18/파이썬 2018. 3. 12. 22:26
파이썬 개선 제안서라고 한다. 파이썬 코드를 어떻게 구성할지 알려주는 스타일 가이드.가급적 지키면 유지보수나 코드 이해가 쉽게된다. 전체 가이드는 https://www.python.org/dev/peps/pep-0008/ 가이드 중에서 반드시 따라야하는 몇 가지 규칙이 있다. 화이트 스페이스 : 공백이라는 것이고 파이썬에서는 문법적 의미가 있다.1. 탭이 아닌 스페이스로 들여쓴다.2. 문법적으로 의미있는 들여쓰기는 각 수준마다 스페이스 네 개를 사용한다.3. 표현식이 길어져서 다음줄로 이어진다면 일반적인 들여쓰기 수준에 추가로 스페이스 네개를 사용한다.4. 클래스에서 메서드는 빈 줄 하나로 구분해야 한다.5. 변수할당 앞 뒤에 스페이스를 하나만 사용한다. 명명1. 함수, 변수, 속성은 lowercase_..
-
파이썬 문법@ 17. 1 ~ 18/파이썬 2018. 3. 9. 00:58
파이썬 헷갈리는 문법** 제곱변수는 그냥 변수명하고 바로 = 대입해서 사용하면됨./ 나누기 연산// 나머지 버림 : 파이썬 2x는 /가 나누기 -- 소숫점 버림처럼 동작한다. 문자열 - 변수에 작은 따옴표 '와 큰따옴표 "를 넣어서 선언하고 사용한다. - 문자열 내부에서 "와 '를 사용하고 싶을때에는 역슬래시(\)를 사용한다. : escape_s1 = "This is \"double quote\"" \" 이렇게 \다음 "가 나오게 하는것. 그래서 위에 끝날때 \""가 되는 것 - raw문자열 표현법 : 역슬래시 자체를 문자열에 자주 포함해야 할 때가 있다. 경로표현 등..이런 경우 문자열 앞에 r을 붙여서 raw문자열로 만들어줄 수 있다. raw_s1 = r'C:\ddd\"' 멀티라인 문자열 표현법 - ..