til 206

[TIL] 모듈

※ 모듈 - 파이썬에서 모듈을 호출하기 위해선 import 문으로 호출이 가능하다. 또한, 작성한 모듈을 사용하고자 할 때는 동일한 폴더에 위치시킨 다음 사용해야 함을 유의하여야 한다. 스마트폰의 기능들을 가지고 예시를 들어보겠다. # 카메라 모듈 - camera_base.py def photo(): print("Take a photo") photo() # 전화 모듈 - phone_base.py def makeacall(): print("Make a call") makeacall() 이렇게 만들면 각 기능이 하나의 독립된 프로그램처럼 모듈을 실행할 수 있다. 그리고 스마트폰의 메인이 되는 smart_base.py 모듈을 만들어 해당 기능들을 불러들여볼 것 이다. # smart_base.py import ..

[TIL] 람다 표현식

※ 람다 표현식 - 람다(Lambda) 표현식은 함수로 취급되나 수학에서 말하는 함수에 가깝다고 보는것이 이해하기 쉬울 것 이다.이 표현식의 특징은 반복문이나 조건문 같은 제어문이 포함될 수 없고 한줄짜리 표현식으로 이루어진다는 것이다. 또한, 함수처럼 정의와 호출이 분리되어 있는 것이 아니라 람다 표현식 자체를 호출하는 것이기 때문에 lambda 인수 : 표현식 과 같이 사용할 수 있다. lambda_func = lambda x : x**2 lambda_func(4) # 출력 결과 16 위와 같이 함수처럼 입력을 받아서 출력을 할 수 있으면서도 따로 정의 없이 사용할 수 있다는 특징으로 수식 연산에 그대로 사용이 가능하다. 또한, 콜백(callback)함수를 만들 때 간단한 수식의 경우 람다함수를 사용..

[TIL] 스코핑룰과 주의점

※ 스코핑룰 - 특정 영역에서 다른 영역의 변수를 참조하는 것은 정해진 규칙을 따른다. 이 규칙은 파이썬뿐만 아니라 모든 언어가 각자만의 스코핑 룰을 가지고 있다. global_var 는 전역 영역에서 정의된 변수로 전역 이름공간에 저장되어 있다. 하지만 이름공간은 영역별로 존재하여 다음과 같은 경우가 있을 수 있다. global_var = 77 def function(): global_var = 100 print(global_var) function() # 출력 결과 100 위와 같은 예시는 지역변수 global_var가 출력된 예시이다. 이름이 동일하면 지역변수가 전역변수를 가리는 일이 발생하는데 이는 다른 영역의 이름공간 변수 이름을 가릴 수 있어 주의해야 한다. ○ 홤수 내 변수 사용시 주의할 점..

[TIL] return

※ return - return은 함수내부에서 사용되는 키워드로 return 이 수행되면 특정 값을 호출원으로 돌려주며 함수가 종료된다. 이를 흔히 함수가 값을 반환(리턴)한다라고 표현하기도 한다. 함수에 return이 없다면 함수 종료시에 기본적으로는 None 객체가 반환이 된다. 즉, 파이썬의 함수는 언제나 값을 반환한다는 것이다. def Test(): x = 1 print(Test()) # 출력 결과 None 좀 더 이해하기 쉽게 다른 예시를 보자면 다음과 같다. def returnTest(a,b,c,d): print(a+b) return b+c print(c+d) returnTest(1,2,3,4) # 출력 결과 3 5 위 예시는 2번과 3번라인은 함수를 호출했을때 정상적으로 수행하고 결과까지 출..

[TIL] 함수

※ 함수 - 함수는 반복적인 작업들을 해야할때 만들어 사용한다면 장점이 있다. 먼저, 함수의 호출로 처리 과정을 대신하기 때문에 코드의 길이가 줄어들며 호출되는 함수의 이름으로 수행하는 기능을 예상할 수 있다. 그리고 개발자가 원하는 함수를 누군가가 만들어 둔 것이 있다면 그것을 참고하여 사용 혹은 수정하여 적용시킬 수 있다. ○ 함수의 정의 - 함수의 정의는 def로 시작한다. 함수는 def 함수 이름(인수, 인수): 와 같이 작성하여야 한다. 하지만 함수 이름을 쓸때 주의하여야 할 점은 파이썬에서 예약된 키워드(ex. for, class)를 사용하면 안된다. 함수 이름을 변수라고 생각하고 이름을 지을 때 변수명명 규칙(Naming Rule)을 따라야 한다. ○ 함수의 호출과 인수 - func_name..

[TIL] 제어문 - while

※ While 문 - while 문도 for 문과 같이 반복을 위한 제어문이지만 확연한 차이점이 있다. while 문에는 조건식이 존재한 다는 점이 가장 큰 차이점이라고 볼 수 있다. 기본적으로 while 조건: 과 같은 형식으로 쓰이는데 보이는 것처럼 주어진 조건이 True 인 동안 루프를 지속하라는 의미이다. 이를 이용해 for 문 처럼 반복할 횟수를 직접 지정할 수 있다. ☆ While문을 반복시키는 도중에 중단하고 싶다면 ctrl+c 를 누르면 중단할 수 있다. while -> for 문 변환에는 정해진 방법은 없다. range 객체가 아니더라도 [1, 2, 3, 4, 5] 와 같은 iterable 객체도 상관없이 사용이 가능하다. ○ 기타 문법 - 리스트 내포가 사전이나 튜플 혹은 셋 타입에 적..

[TIL] 리스트 생성 표현

※ 리스트 내포 - 리스트 내포(list comprehension)은 간단하고 강력한 파이썬 문법이다. 기본적인 리스트 내포의 구조는 [expr for x in 반복가능객체] 이다. 이 문법은 복잡해 보일지라도 매우 직관적인데 이는 표현식과 for문이 결합된 문법이다. 한 줄에 이어 쓰기 때문에 들여쓰기의 규칙은 없으며 콜론도 없다. [x for x in range(1, 10)] # 출력 결과 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 이렇게 리스트를 생성하고자 할때 for 문을 리스트 생성 표현에 결합하여 사용하면 더욱 간소화하여 작성할 수 있다. 익숙치 않다면 일반적인 방식으로 리스트를 생성하듯이 만들어도 무방하다. ※ 리스트 내포 확장 - 리스트 내포를 사용할 때 데이터를 더욱 섬세하..

[TIL] For 문

※ for~continue - for 루프 중 continue를 만나면 for문의 나머지 코드 블록의 수행을 건너뛰고 다음 항목으로 넘어가 수행한다. 자판기와 같은 예시로는 다음과 같이 만들 수 있다. coin_box = [500, 500, 500, 50, 10, 100, 100, 10, 100, 50] for c in coin_box: if c != 100:# 100원이 아닌 경우는 continue# continue를 통해 다음 항목으로 넘어간다 print("100원 있음")# continue를 통해 100원 항목과 일치하면 출력 break # 출력 결과 100원 있음 ※ for~else - 조건문에서의 else는 조건문의 마지막에 오기 때문에 앞 조건들이 모두 False 인 경우만 실행이 된다는 것은..

[TIL] 조건 표현식

※ 조건 표현식 - 파이썬에서는 C 언어에 있는 3항 연산자와 같이 작동을 하는 표현식(expression)이 있는데 기본적인 문법은 A if 조건식 else B 이다. 이 문법을 이해하기 쉽게 해석하자면 조건식이 True 값일 경우 A를 수행하고 False인 경우는 B를 수행하라는 의미이다. 사용 예시는 다음과 같다. switch = 0 print("ON") if switch == 1 else print("OFF") # 출력 결과 OFF 이를 일반적인 if~else문으로 바꾼다면 아래와 같다. switch = 0 if switch == 1: print("ON") else: print("OFF") # 출력 결과 OFF 조건 표현식으로 작성할 경우 코드의 길이를 줄여주어 가독성과 깔끔함을 추구할 수 있는데..

[TIL] Set 변환

※ set -> 리스트 - set은 순서를 가지지 않는 다는 특징으로 정렬될 수 없다는 문제점이 있다. 이러한 문제를 해결하는 가장 쉬운 방법은 내장함수인 sorted 함수를 사용하는 것이다. # 예시 1 print(number) # 출력 : {1, 82, 3, 42, 53, 99, 20, 15} sorted(number) # 출력 : [1, 3, 15, 20, 42, 53, 82, 99] 위 예시와 같이 sorted 함수로 정렬을 하거나 다른 방법으로는 리스트와 같이 다른 타입으로 변환을 시킨뒤 정렬을 하면 변환할 수 있다. # 예시 2 number_list = list(number) number_list.sort() print(number_list) # 출력 : [1, 3, 15, 20, 42, 53..