튜플을 사용하면 좋은 경우
서로 다른 성질의 데이터를 묶어서 관리해야 할 때
- 최단경로 알고리즘에서는 (비용,노드번호)
데이터의 나열을 해싱의 키 값으로 사용할때
튜플은 변경이 불가능하므로 리스트와 다르게 키 값으로 사용 될 수 있다.- 리스트보다 메모리를 효율적으로 사용해야 할 때
딕셔너리(사전자료형)이 좋은경우
data=dict() data['사과']='Apple' if '사과' in data: print("'사과'를 키로 가지는 데이터가 존재합니다") 이런식으로 어떠한 데이터를 조회할때 효과적이다``` key,value 값을 뽑아 낼 수 있고, 뽑아낸 key값을 key_list=list(data.key() 리스트로 변환이 가능하다.(set 메소드를 이용해서 중복된 값을 제거가 가능)```
빠르게 입력받기
사용자로부터 입력을 최대한 빠르게 받아야 하는 경우
파이썬의 경우 sys라이브러리에 정의 되어 있음 sys.stdin.readline()메소드 이용
- 입력후 (Enter)가 줄 바꿈 기호로 입력되므로 rstrip()메서드 함께 사용
f-string 쓰는 이유
answer=7 print("정답은" +str(answer)+"입니다") ____ answer=7 print(f"정답은"+{answer}입니다.") 이렇게 변수값을 따로 문자열로 변환하지 않고 진행이 가능함
pass 키워드
디버깅 과정에서 일단 조건문의 형태만 만들어 놓고 조건문을 처리하는 부분을 비어놓고 싶을 경우
score = 85 if score >= 80: pass #나중에 작성할 코드 else: print("성적이 80점 미만입니다") print("프로그램이 종료됩니다.) 출력: 프로그램이 종료됩니다.
조건문의 간소화
:)조건문에서 실행될 소스코드가 한줄인 경우,굳이 줄 바꿈을 하지 않고간략하게 표현가능score = 85 if score >=80: result = "success" else: result = "fail" 출력: success
:) if ~ else 문을 한줄에 작성할 수 있음
score = 85 result = "success" if score >= 80 else "fail" print(result) 출력: success
while vs for 코딩 테스트에서의 실제 사용 예시를 확인해보면 for문이 더 간결함
i =1 result = 0 while i<=9: result +=i i+=1 print(result) 출력:45 _____ result = 0 for i in range(1,10): result+=i print(result) 출력:45
함수
프로그램에는 똑같은 코드가 반복적으로 사용되어야 할 때가 많다.
함수를 사용하면 소스코드의 길이를 줄일 수 있음
매개변수 : 함수 내부에서 사용할 변수
반환 값: 함수에서 처리 된 결과를 반환def 함수명(매개변수): 실행할 소스코드 return 반환 값
지역변수 ,전역변수
array = [1,2,3,4,5] def func(): global array #global 함수를 이용해서 [1,2,3,4,5]를 가져오고 지역변수로 초기화 array = [3, 4, 5] array.append(6) func() print(array) 출력:[3,4,5,6]
코딩테스트에서 실제로 지역변수,전역변수의 이름이 같지 않을 경우가 많으며 scope 를 신경 쓸 필요가 없다.
여러개의 반환 값
def operator(a,b): add_var = a+b subtract_var = a-b multiply_var = a*b divide_var = a/b return add_var,subtract_var,multiply_var,divide_var #패킹!! a,b,c,d = operator(7,3) # 언패킹 print(a,b,c,d)
람다 표현식 : 어떠한 함수자체를 입력으로 받는 또 다른 함수가 존재할 수 있는데 그러한 상황에서 유용 또한 한번 사용하고 말경우에 쓰일때 좋다.
print((lambda a,b: a+b)(3,7)) ____ array = [('홍길동',50),('이순신',32),('아무개',74)] def my_key(x): return x[1] print(sorted(array,key=my_key)) #key값의 x[1]의 값을 기준으로 정렬 print(sorted(array,key=lambda x:x[1])) #함수식이 없음 출력:[('이순신', 32), ('홍길동', 50), ('아무개', 74)] :)정렬식은한번 사용하고 쓰지 않기 때문에 lambda식이 유용함