⚙️ Python
📌 Expression & Statement
- Expression : 계산 가능한 변수와 연산자의 조합. 계산 결과로 어떤 '값'이 나온다.
- Statement : 어떤 액션을 할 수 있는 일반적인 완결된 코드 블록. '값'을 굳이 리턴할 필요가 없다.
- return
- if, while, for
- def
- x = 10
📌 Formatting Styles
- .format()
- formattingString = "name: {}".format(name)
- f'{}'
- formattingString = f"name: {name}"
📌 String
- String의 특징 : Immutable 데이터로, 수정이 불가능하다.
- String의 일부를 수정하는 방법
- 수정할 문자열을 제외하고 slicing 한 문자열 + 수정 내용
- 수정 위치 전까지 list 변환 후, 수정 내용 append한 다음 ''.join()으로 다시 문자열로 변환
📌 Copy
- Deep Copy : 원본이 변화하면, 복사본도 따라서 변화하는 'reference' 개념
- Shallow Copy : 원본이 변화하더라도, 복사본은 그대로인 'copy' 개념
📌 List Unpacking (Pattern Matching)
a, b, c = [1, 2, 3]
a, b, *c = [1, 2, 3, 4, 5]
📌 Set의 Methods
- A.difference(B) : 집합 A와 B의 차집합 (A-B)
- A.intersection(B) : 집합 A와 B의 교집합 (A&B)
- A.union(B) : 집합 A와 B의 합집합 (A|B)
- A.isdisjoint(B) : 집합 A와 B의 독립 여부
- A.issubset(B) : 집합 A의 B에 대한 포함 여부
📌 Python의 성질
- Truthy & Falsy
- False에 해당하는 값들
- None
- False
- 0
- 0.0
- 0j
- Decimal(0)
- Fraction(0, 1)
- []
- {}
- ''
- b''
- set()
- range(0)
- 0, False를 return 하는 메서드
- Equality
- == : 값 비교에 사용
- is : object가 정확히 일치하는지 비교에 사용
- Short Circuiting : 필요한 것만 계산하기
# Short Circuiting 미적용
if_friend = False
val = print("Evaluated")
if is_friend and val:
print("when true")
else:
print("when false")
____________________________________
# Short Circuiting 적용
if_friend = False
if is_friend and print("Evaluated"):
print("when true")
else:
print("when false")
📌 While문
- 필요한 상황 : 반복이 몇 회 진행되는지 명확하지 않은 경우에 사용하며, break로 반복을 중단할 수 있다.
📌 kwargs
def make_kw_list(**kwargs):
for k in kwparam:
print(k, kwparam[k])
make_kw_list(first=1, second=2, third=3)
⚙️ Exercise
📝 Passcode Masking
Q) [name], your password ***** is [number of letters] long
name, password = input().split()
code = '*' * len(password)
print(f'{name}, your password {code} is {len(code)} long')
📝 화살표 출력하기
Q) 주어진 picture를 이용해 화살표 모양을 출력하라
picture = [
[0,0,0,1,0,0,0],
[0,0,1,1,1,0,0],
[0,1,1,1,1,1,0],
[1,1,1,1,1,1,1],
[0,0,0,1,0,0,0],
[0,0,0,1,0,0,0]
]
for item in picture:
for i in item:
print(" ",end='') if i==0 else print(i, end='')
print()
⚙️ Tips
✅ 좋은 개발자 되기 : 주석 달기
- 코드에 대한 부가 설명을 주석으로 남기기
- 코드로 충분히 알 수 있는 사실을 굳이 주석으로 반복하지 않기
- 의미없는 변수 이름 쓰지 않기
✅ 좋은 개발자 되기 : 데이터 구조 잘 이해하기
- Dictionary는 Random Access 방식으로 값을 검색하므로 비교적 빠르다.
- List는 순차 탐색으로 값을 검색하므로 비교적 느리다.
- 언제 어떤 것을 사용해야 할까?
- 순서가 필요하다 : 리스트
- 검색이 잦다 : 딕셔너리
✅ 좋은 개발자 되기 : Docstring 작성하기
def func1():
'''
헬로 월드 출력하기
:return:
'''
return ("hello world!")
print(func1())