[LMS] 6. 파이썬으로 코딩 시작하기

송아람·2021년 12월 28일
0

LMS

목록 보기
1/3

함수

  • 인자 (argument) : 입력값
  • 매개변수 (parameter) : 인자를 받는 변수

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에 대한 지식이 다소 부족 🔥

제어문

1. if : 진실 혹은 거짓

  • if : 명제가 참이면 실행
  • else : if명제 이외의 경우 실행
  • elif : if명제 이외의 경우에 또 다른 명제가 참일 때 실행 (if 뒤, else 앞)

ex)

def print_whether(number):
    if number > 0:
        print('+')
    elif number == 0:
        print('0')
    else:
        print('-')

2. while : 조건이 참인 동안 반복

ex)

n = 1
while n <= 20:
    print(chicken(n))
    n = n + 1
print('끝!')

+) 피보나치(fibonacci)

3. for : 주어진 값을 하나씩 반복

for a in A 형태
목록 A에서 값을 하나씩 꺼내어 a변수에 담아 실행

ex)

for character in 'Hello':
    print(character)

H
e
l
l
o
🔥 더 다양한 for문 예제를 접할 필요가 있음 🔥

자료형

1. 정수(integer / int)

print(type(1))

<class 'int'>

2. 부동소수점 수(float)

정수를 제외한 실수를 부동소수점 수(float)이라고 함.

🔥부동소수점 수와 고정소수점 수에 대해 잘 모르겠음...🔥

3. NoneType

4. 불리언(boolean / bool)

불리언 자료형에는 참(True)와 거짓(False) 딱 2가지의 값만 존재함.

print(type(True))
print(type(False))

[Out]
<class 'bool'>
<class 'bool'>

5. 문자열 (String / str)

1)

print('He said, "spam"')

[Out] He said, "spam"

2)

print("""Line1
Line2""")

[Out]
Line1
Line2

6. 튜플 & 리스트 (tuple & list)

1) 튜플

  • ( , ) 사용
  • 특정 위치 값을 읽을 수 있음 (ex. print(tuple_123[0]))
  • 변경이 불가함⭐

2) 리스트

  • [ , ] 사용
  • 값을 변경할 수 있음⭐
  • .append 함수 (값 추가), .remove 함수 (값 제거), .pop함수 (특정 값 제거) 사용 가능

7. 딕셔너리 (Dictionary / dict)

  • { , } 사용
  • {key 값 : value 값}
  • 새로운 값을 넣기
    ex)
conductor = {'firstname' : '단테', 'lastname' : '안'}
conductor['gender'] = 'male'
print(conductor)

[out] {'first_name': '단테', 'last_name': '안', 'gender': 'male'}

  • .items() 함수 사용
    ex)
conductor = {'first_name': '단테', 'last_name': '안'}
for key, value in conductor.items():
    print(key + ' : ' + value)

[out]
first_name : 단테
last_name : 안

피보나치 수열 (fibonacci)

  • 피보나치 수열의 n번째 수는 n-1번째 수와 n-2번째 피보나치 수의 합
  • 피보나치 수열의 첫 번째 수와 두 번째 수는 1
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 진행하면서 꼼꼼히 배울 수 있었다.
'스코프'와 '피보나치 수열'에 대해서는 처음 들어보았는데 예제와 함께 공부하니 이해가 쉬웠다. 그리고 제어문 각각의 역할을 알게 되었다.

완벽하게 이해하진 못했지만 좀 더 파이썬을 공부하다보면 같이 이해가 되지 않을까 싶다!

그리고 처음 글쓰기를 하는거라 너무 많은 양을 끄적인 것 같은데,,, 차차 해보지 뭐...!

profile
아직은 예비 데이터분석가

0개의 댓글