join, find, 정규식 re, 출력 문자열 꾸미기 (fstring, format, %), 파일 읽고 쓰기 (with open, f = open, readlines() 등), 알파벳 키우기 명령어(upper, lower, capitalize 등)
# fstring 예시
a = 3
b = 6
print(f'The sum of {a} + {b} = {a+b}')
---> 'The sum of 3 + 6 = 9'
# format 예시
'The sum of 1 + 2 = {}'.format(1+2)
---> 'The sum of 1 + 2 = 3'
# % 예시
'The sum of %.5f + %d = %s' % (a, b, add)
---> 'The sum of 1.12345 + 2 = 글자'
정규식 re 명령어, 출력 문자열 꾸미기 손에 익히기, 파일 읽고 쓰기 open
# match: re.match("찾으려는 것", "문자열") ==> "문자열"이 "찾으려는 것"으로 시작하는지 찾음. => 시작하면 위치 표시
re.match("c", "abcdef")
# search: re.search("찾으려는 것", "문자열") ==> "문자열"에 "찾으려는 것"이 있는가? => 있으면 위치 표시
re.search("c", "abcdefc")
# findall: re.findall("찾으려는 것", "문자열") ==> "문자열"에서 "찾으려는 것"을 모두 찾아 리스트로 표시하기
re.findall("c", "abcdefc")
# finditer: re.finditer("찾으려는 것", "문자열") ==> "문자열"에 "찾으려는 것"이 있으면 <callable_iterator at 위치 id> 내보내기
re.finditer("c", "abcdefc")
# open 명령어로 파일 쓰는 방법
with open(파일명, 모드) as 파일을 가리키는 약어:
print(뭘 쓰려는지, file=약어)
flush 개념, 별 찍기와 중첩반복문, 함수, 비파괴적인 함수 & 파괴적인 함수, 가변인자(*, **)
# 정삼각형 별찍기 1
for i in range(4, -1, -1):
print(' '*i+'*'*(5-i)+'*'*(4-i))
# 정삼각형 별찍기 2
star = '*'
blank = ' '
for i in range(1,6):
for k in range(5, i, -1): # 좌측 공백
print(blank, end='')
for j in range(2*i-1): # 별
print(star, end='')
for l in range(5,i,-1): # 우측 공백인데 여기는 없어도 무방
print(blank, end='')
print()
# name, age 분리해서 다루는 코드
def person_info(**kwargu):
print(kwargu)
person_info(name=input(), age=input())
함수 호출 구조, 전역변수 vs 지역변수, 재귀함수, 함수형 프로그래밍(익명함수 lambda, List Comprehension, map)
# 재귀함수 예시
def recursive(n):
if n > 10: # 바깥을 빠져나갈 수 있는 조건 - 기저조건(Base Condition)
return
print(n, '무한히 반복되는 형태') # RecursionError: maximum recursion depth exceeded while calling a Python object
recursive(n+1)
# 1부터 45까지 합 구하기 (합구하기 맨날 나오는데 늘 까먹음)
sum=0 # 이후 계산에 방해 안 되는 시작점이 0.
for i in range(1, 45):
sum += i
print(sum)
# 재귀함수 버전
# 쌤 예시
def recursive_sum(n):
if n == 0: return 0
return n + recursive_sum(n-1) # return 반드시 해줘야함. 안하면 Nonetype error
# 1부터 n까지 곱하기
# 쌤 코드
def recursive_multiply(n):
if n == 1: return 1
return n * recursive_multiply(n-1)
# 함수 내에서만 쓰는 변수: 지역변수
# 코드 전체에서 쓰이는 변수: 전역변수
# 함수 내에서는 지역변수가 전역변수보다 우선하되, 함수 끝나면 지역변수는 사라짐
# 지역변수를 전역변수로 꺼내오는 명령어: global (비권장)
# lambda로 함수 만드는 법
방법 1.
- (lambda 매개변수들 : 식)(인수들)
방법 2.
- 객체명 = lambda 매개변수들 : 식
- 객체명(인수들)
# List Comprehension
[(변수에 적용할 수식) for (변수) in (for문이 돌아가는 범위)]
함수형 프로그래밍(filter, enumerate, zip, reduce(계속 반복!)), 모듈, 패키지
ex = [1, 2, 3, 4, 5]
list(map(lambda value : value **2, ex)) # map(수식, 수식을 대입할 집합자료형) # map을 list에 넣어야 값이 나옴.
---> [1, 4, 9, 16, 25]
# 나이만 합쳐서 평균값 출력하기
test2 = [{'name' : '신짱구', 'age' : 5}, {'name' : '신짱아', 'age' : 4}, {'name' : '흰둥이', 'age' : 8}]
# 일단 다 더해주고, 나중에 나눠줘야 평균 뜸. 중간에 len(test_age)를 람다 안에 넣었다가 계산이 잘못됨.
test_age = [i['age'] for i in test2]
reduce(lambda x, y: (x+y), test_age)/len(test_age)
예외처리 try-except 등, 객체지향 프로그래밍 개론, class-instance, 클래스의 속성과 기능
try:
예외가 발생할 가능성이 있는 코드
except:
예외가 발생할 때 실행할 코드
except:
예외가 발생할 때 실행할 코드
except:
예외가 발생할 때 실행할 코드
else:
잘 실행되면 실행할 코드
finally:
되든 안되든 반드시 실행할 코드