파이썬 보충

김나현·2024년 7월 30일
0

Python

목록 보기
26/48
num = 5
for i in num:
    print(i)

5 하나 출력하는데 포문을왜돌린거지?

암튼 중요한 건 정수형은 반복이 안된다는게 요지이고

위의 코드를 실행하시면 TypeError: 'int' object is not iterable 에러가 발생하게 됩니다.
정수형은 반복자가 될 수 없다는 에러로 정수형을 반복시키고 싶을때는 아래와 같이 range 함수를 사용하시면 됩니다.

num = 5
for i in range(1, num + 1):
    print(i)

1 2 3 4 5
이 출력

함수

return 키워드는
리턴할 표현식이 연산이라면 연산을 완료한 뒤에 최종 결과 값을 함수의 결과로 리턴해 준다.

return 리턴할 표현식

함수의 목적은 결과를 리턴하는 것
return 키워드를 만남과 동시에 종료 된다.
함수의 결과를 따로 작성해 주지 않는다면 None을 리턴 한다.

빈 string
숫자 0
빈 list
는 false로 출력된다.

패킹(packing)과 언패킹(unpacking)은
단어의 뜻 그대로 요소들을 묶어주거나 풀어주는
것을 의미합니다.

함수를 만들때 받는 매개변수의 갯수에 제한을 두지 않을 때
인자의 갯수가 정해져 있지 않을 때
사용한다.

list 혹은 dictionary의 값을 함수에 입력할 때 주로 사용됩니다.

*변수 를 사용하면
받는 인자들을 다 변수안에 넣는 것

list와 *이 만나면 괄호[] 가 없어진다.

딕셔너리의 경우 ** 별을 두개 붙힌다.

map 함수

기본 문법
map(function, iterable1)
map(적용할 함수, 적용할 데이터)
map(function, iterable1, iterable2, ...)
여러개의 데이터도 가능

맵함수를 써서 변수에 저장해주면 꿀이네

아 ..... 역시 문법이 중요해.....

추가

map 함수의 특징

지연평가(lazy evaluation) 방식: map() 함수는 lazy evaluation 방식을 사용합니다. lazy evaluation이란 필요한 시점까지 연산을 늦추는 방식으로, 불필요한 연산을 최소화하여 성능을 향상시키는 방법입니다. 입력으로 받은 iterable 객체를 순회하면서 각 요소에 대해 함수를 적용하여 새로운 iterable 객체를 생성하지만, 이 과정에서 실제로 변환된 결과값들이 생성되는 것이 아니라, 필요할 때까지 기다리는 것입니다. 이런 방식으로 인해 변환된 결과값이 모두 메모리에 저장되지 않고 부분만 계산하여 처리할 수 있기에 불필요한 메모리 사용을 줄일 수 있습니다.

간결성: map() 함수를 이용하면 반복문을 작성하지 않아도, 한 줄의 코드로 여러 개의 리스트를 동시에 처리할 수 있습니다.

가독성: map() 함수를 이용하면, 코드의 가독성을 높일 수 있습니다.

성능: map() 함수는 내부적으로 C로 구현되어 있으므로, 파이썬 반복문보다 빠르게 처리할 수 있습니다.

메모리 사용량: map() 함수는 새로운 리스트를 생성하지 않고, iterator 객체를 반환하므로, 메모리 사용량을 최소화할 수 있습니다. 하지만, 매우 큰 이터레이터 객체를 처리할 경우, 메모리 사용량이 매우 높아질 수 있습니다.

제약사항: map() 함수는 입력된 모든 이터레이터 객체의 길이가 같아야 하므로, 이러한 제약 사항을 고려하여 사용해야 합니다.

fact = 1 
# 1부터 시작 
n = int(input("정수 입력")) 
 # n = 3 이라 가정 
for x in range(1, n+1): 
    # (1, 4) 는 1, 2, 3까지 출력 
    fact = fact * x    
        #    1 * 1 을 fact에 저장 = 1 
        #    1 * 2 를 fact에 저장 = 2 
        #    2 * 3 을 fact에 저장 = 6 
print(n, "!은", fact)

print가 for문 안에(들여쓰기) 있으면 출력도 3번 나온다.

밖에 있어야(직선상) 한번만 나온다.**

아주 간단한건 외우는게 상책

profile
참 쉽죠? #개발계의 밥아저씨를 꿈꿉니다⋆⁺₊⋆ ☾⋆⁺₊⋆

0개의 댓글