함수
ex)
def say_hi_somebody(name):
print(name + ', 안녕!')
say_hI_somebody('준이')
→ name : 매개변수, '준이' : 인자
스코프(scope)
: 변수가 유효한 범위
ex)
name = '하루'
def change_name():
name = '시우'
change_name()
print(name)
→ 함수 내에서 선언한 '시우'는 함수 밖에서는 알 순 없으니 change_name()에서 출력이 되지 않음.
→ print(name)에서 '하루'만 출력이 됨.
▶ 전역스코프(global scope) : name = '하루' / 지역스코프(local scope) : name = '시우'
🔥'스코프(scope)는 생소해서 어려움🔥
함수의 결과로 값을 반환하기
def print_two(word1, word2):
print(word1)
print(word2)
def print_and_return(word1, word2, word3):
print_two(word3, word2)
return word1
print_two('A', print_and_return('B', 'C', 'D'))
① printand_return('B', 'C', 'D') 우선 호출
→ D, C 출력
② print('A')와 print(print_and_return('B', 'C', 'D')) 호출
→ A, D 출력 (print_and_return('B', 'C', 'D') → return된 word1을 대입)
🔥 틀렸던 문제 / return에 대한 지식이 다소 부족 🔥
제어문
ex)
def print_whether(number):
if number > 0:
print('+')
elif number == 0:
print('0')
else:
print('-')
ex)
n = 1
while n <= 20:
print(chicken(n))
n = n + 1
print('끝!')
+) 피보나치(fibonacci)
for a in A 형태
목록 A에서 값을 하나씩 꺼내어 a변수에 담아 실행
ex)
for character in 'Hello':
print(character)
H
e
l
l
o
🔥 더 다양한 for문 예제를 접할 필요가 있음 🔥
자료형
print(type(1))
<class 'int'>
정수를 제외한 실수를 부동소수점 수(float)이라고 함.
🔥부동소수점 수와 고정소수점 수에 대해 잘 모르겠음...🔥
불리언 자료형에는 참(True)와 거짓(False) 딱 2가지의 값만 존재함.
print(type(True))
print(type(False))
[Out]
<class 'bool'>
<class 'bool'>
1)
print('He said, "spam"')
[Out] He said, "spam"
2)
print("""Line1
Line2""")
[Out]
Line1
Line2
1) 튜플
2) 리스트
conductor = {'firstname' : '단테', 'lastname' : '안'}
conductor['gender'] = 'male'
print(conductor)
[out] {'first_name': '단테', 'last_name': '안', 'gender': 'male'}
conductor = {'first_name': '단테', 'last_name': '안'}
for key, value in conductor.items():
print(key + ' : ' + value)
[out]
first_name : 단테
last_name : 안
피보나치 수열 (fibonacci)
def fibonacci(n):
if n <= 2:
number = 1
else:
number = fibonacci(n-1) + fibonacci(n-2)
return number
print(fibonacci(10))
[out] 55
⭐BUT! n의 크기가 커질수록 계산 횟수가 증가하기에 속도가 느려짐...!
그렇기에 메모이제이션(memoization)기법을 사용하기!⭐
→ 중간 계산 값을 기억하고 다시 계산하는 대신 기억한 값을 바로 읽어내는 기법
memory = {1:1, 2:1}
def fibonacci(n):
if n in memory:
number = memory[n]
else:
number = fibonacci(n-1) + fibonacci(n-2)
memory[n] = number
return number
print(fibonacci(100))
[out] 354224848179261915075
파이썬 기초 문법에 대해 배웠을 때 세세히 배우지 못해 아쉬웠는데 오늘 LMS 진행하면서 꼼꼼히 배울 수 있었다.
'스코프'와 '피보나치 수열'에 대해서는 처음 들어보았는데 예제와 함께 공부하니 이해가 쉬웠다. 그리고 제어문 각각의 역할을 알게 되었다.
완벽하게 이해하진 못했지만 좀 더 파이썬을 공부하다보면 같이 이해가 되지 않을까 싶다!
그리고 처음 글쓰기를 하는거라 너무 많은 양을 끄적인 것 같은데,,, 차차 해보지 뭐...!