Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python

  1. 파이썬 함수에서 리스트를 반환하는 방법 총정리

    파이썬 함수에서 리스트 반환하기 파이썬에서는 return 문을 사용해 함수가 처리한 결과를 호출자에게 돌려줄 수 있습니다. 리스트 역시 하나의 객체이기 때문에 숫자나 문자열처럼 함수의 반환값으로 자유롭게 사용할 수 있습니다. 아래에서는 대표적인 방법들을 예제와 함께 살펴보겠습니다. 1. 기본적인 방법: 빈 리스트에 요소를 추가한 후 반환 가장 기본적인 패턴은 함수 안에서 빈 리스트를 만들고, 반복문으로 값을 채운 뒤 반환하는 것입니다. def ret_list(): result = [] for i in range(0,

  2. 파이썬에서 문자열로 모듈의 함수를 호출하는 방법 – getattr() 완벽 가이드

    파이썬에서 문자열로 모듈의 함수를 호출하는 방법 파이썬을 사용하다 보면 함수 이름이 문자열 형태로 주어지고, 이 이름을 이용해 실제 함수를 호출해야 하는 경우가 있습니다. 예를 들어 설정 파일이나 사용자 입력으로 받은 함수 이름을 실행해야 할 때가 대표적입니다. 이럴 때 가장 표준적이고 안전한 방법은 내장 함수 getattr()을 사용하는 것입니다. getattr() 기본 사용법 getattr(객체, 이름) 형태로 호출하면 객체에 존재하는 속성이나 메서드를 문자열 이름으로 가져올 수 있습니다. 모듈 역시 하나의 객체이므로, 모듈에

  3. 파이썬 함수에서 데이터 타입을 명시적으로 정의할 수 있을까?

    파이썬의 동적 타이핑(Dynamic Typing)파이썬에서는 변수에 타입을 명시적으로 지정하지 않습니다. 파이썬은 변수가 어떤 타입인지 스스로 판단하고 내부적으로 이를 추적합니다. 반면 Java나 C++ 같은 정적 타입(Statically-typed) 언어에서는 함수의 반환값과 각 인자의 데이터 타입을 반드시 선언해야 합니다.흥미로운 점은, 파이썬 함수에서 데이터 타입을 명시적으로 선언하더라도 프로그램은 타입을 선언하지 않은 일반적인 경우와 완전히 동일하게 동작한다는 사실입니다. 즉, 타입 표기는 코드 가독성에는 도움이 될 수 있지

  4. 파이썬 함수에서 인수를 값으로 전달하는 방법은 무엇일까?

    파이썬 함수의 인수 전달 방식파이썬에서 함수에 인수를 전달할 때는 객체 참조에 의한 호출(call by object reference) 방식이 사용됩니다. 다만 전달되는 객체가 불변(immutable)인지 가변(mutable)인지에 따라, 마치 값에 의한 전달(pass by value)처럼 보이는 경우가 있습니다.다음 예제 코드를 살펴보겠습니다.def modify(b, a): b = 30 a = [10] print(b =, b) print(a =, a) b = 10 a = [20] modify(b, a

  5. 파이썬(Python) 함수에서 인수를 참조로 전달하는 방법

    파이썬 함수는 인수를 어떻게 전달할까?파이썬에서 함수의 인수는 항상 참조(reference)로 전달됩니다. 다시 말해, 함수에 객체를 넘기면 값 자체가 복사되는 것이 아니라 해당 객체를 가리키는 참조가 전달됩니다.이 사실은 내장 함수인 id()를 사용해 확인할 수 있습니다. id()는 객체가 메모리에 저장된 고유 식별값(주소)을 반환하므로, 실제 인수와 형식 매개변수, 그리고 반환된 객체의 id() 값을 비교하면 서로 같은 객체임을 알 수 있습니다.예제 코드아래 예제에서는 리스트를 인수로 받아 요소를 추가한 뒤 반환하는 함수를 살펴

  6. 파이썬(Python)에서 함수에 선택적 매개변수를 전달하는 방법

    파이썬에서는 함수의 인자에 기본값(default value)을 지정할 수 있습니다. 함수를 호출할 때 해당 인자를 생략하면, 미리 정의해 둔 기본값이 자동으로 사용됩니다. 이렇게 기본값을 가진 인자를 선택적 매개변수(optional parameter)라고 부릅니다.1. 기본값을 사용한 선택적 매개변수아래 예제 코드를 살펴보겠습니다.def greet(name, msg=Good Morning, msg2=Come on in): return (Hello, name + , + msg + ! + msg2) print(greet(A

  7. 파이썬 기본 매개변수 값 설정 방법: 가변 객체 함정 완벽 정리

    파이썬(Python)의 기본 매개변수(default parameter) 처리 방식은 초보 프로그래머들이 가장 혼란스러워하는 부분 중 하나입니다.가변 객체를 기본값으로 사용할 때 생기는 문제문제의 원인은 가변(mutable) 객체를 기본값으로 사용하는 것입니다. 가변 객체란 리스트(list)나 딕셔너리(dictionary)처럼 원본을 직접 수정할 수 있는 객체를 말합니다.많은 개발자는 함수가 호출될 때마다 새로운 리스트가 생성되어 다음과 같은 결과를 기대합니다.[12] [43]하지만 실제 파이썬의 동작은 다릅니다. 기본 인자로 지정된

  8. Python 함수에서 가변 길이 인수(*args)를 사용하는 방법

    Python에서는 *args 형태의 매개변수를 사용하여 키워드가 없는(non-keyworded) 가변 길이 인수 목록을 함수에 전달할 수 있습니다. 여기서 핵심은 별표(*) 기호입니다. 별표와 함께 args라는 단어를 붙이면, 해당 매개변수가 개수에 상관없이 여러 개의 위치 인수를 받을 수 있음을 의미합니다.즉, 함수를 호출할 때 인수를 몇 개든 자유롭게 넘길 수 있으며, 함수 내부에서는 이 값들이 하나의 튜플(tuple)로 묶여 전달됩니다.예제 코드def multiply(*args): y = 1 for num in

  9. Python에서 키워드 매개변수(**kwargs)를 함수에 전달하는 방법

    Python에서 **kwargs(더블 애스터리스크 형태)는 키워드가 지정된 가변 길이 인자들을 딕셔너리(dictionary) 형태로 함수에 전달할 때 사용됩니다. 두 개의 별표(**)와 함께 사용되는 kwargs라는 단어는 함수가 임의 개수의 키워드 인자를 받을 수 있음을 나타냅니다.*args와 마찬가지로 **kwargs도 원하는 만큼 많은 인자를 전달할 수 있습니다. 다만 **kwargs는 *args와 달리 각 인자에 반드시 키워드(이름)를 지정해야 한다는 점이 다릅니다. 전달된 키워드와 값은 함수 내부에서 딕셔너리 형태로 저장되

  10. Python에서 인수 목록으로 함수 호출하는 방법: *args 언패킹 완벽 이해

    Python에서 인수 목록이 있는 함수를 호출하는 방법Python에서는 별표(*) 연산자를 활용하면 가변 개수의 인수를 하나의 리스트로 받거나, 반대로 리스트를 개별 인수로 풀어서(unpack) 함수에 전달할 수 있습니다. 이 두 가지 동작을 정확히 구분하는 것이 핵심입니다.1. 함수 정의 시: 나머지 인수를 리스트로 묶기def baz1(foo, *args):함수를 정의할 때 매개변수 args 옆에 붙은 별표(*)는 다음과 같은 의미입니다.호출 시 전달된 나머지 위치 인수들을 모두 모아서, args라는 이름의 튜플(리스트 형태)에

  11. Python에서 어설션(Assertion)이란 무엇이며 어떻게 사용할까요?

    어설션(Assertion)은 프로그램에 대한 테스트가 끝난 후 수행하는 일종의 온전성 검사(sanity test)입니다.어설션은 raise-if 문(더 정확히는 raise-if-not 문)과 유사하게 동작합니다. 즉, 특정 표현식을 검사한 뒤 그 결과가 거짓(False)이면 예외를 발생시킵니다. Python에서는 assert 문을 사용해 어설션을 수행할 수 있습니다.프로그래머들은 흔히 함수 시작 부분에 어설션을 배치해 입력값의 유효성을 확인하고, 함수 호출 이후에는 반환되는 출력값의 유효성을 점검하는 데 활용합니다.assert 문

  12. C 확장 모듈에서 Python 예외 발생시키는 방법

    C 언어로 작성된 Python 확장 모듈에서도 일반적인 Python 코드와 마찬가지로 예외를 발생시킬 수 있습니다. C API 수준에서는 PyErr_SetString()이나 PyErr_Format() 같은 함수로 예외를 설정한 뒤 NULL을 반환하면 되며, 경우에 따라서는 C API 함수 자체가 내부적으로 예외를 설정하기도 합니다. 예외를 발생시키는 C 확장 예제 다음은 의도적으로 잘못된 형식 문자를 Py_BuildValue()에 전달해 예외를 유발하는 hello.c 예제입니다. #include <Python.h> st

  13. Python에서 예외·오류 계층 구조를 출력하는 방법

    Python에 내장된 예외(Exception)와 오류(Error)의 전체 계층 구조를 한눈에 확인하고 싶다면 inspect 모듈의 getclasstree() 함수를 활용하면 됩니다. inspect.getclasstree()는 주어진 클래스 목록을 중첩된 리스트 형태의 계층 구조로 정리해 주는 함수입니다. 여기에 각 클래스의 __subclasses__() 메서드를 재귀적으로 호출하면 상속 트리를 따라 아래로 내려가면서 모든 하위 예외 클래스를 순차적으로 출력할 수 있습니다. 예제 코드 아래는 원본 예제입니다. Python 2 문법(p

  14. 파이썬에서 변수 존재 여부 확인하는 방법 – locals(), globals(), hasattr() 완벽 정리

    개요파이썬으로 개발하다 보면 특정 변수가 이미 정의되어 있는지 확인해야 하는 상황이 자주 발생합니다. 조건부로 선언된 변수를 사용하기 전에 존재 여부를 미리 검사하면 NameError 같은 런타임 오류를 예방할 수 있습니다. 파이썬에서는 내장 함수인 locals(), globals(), 그리고 hasattr()를 활용해 변수나 속성의 존재 여부를 손쉽게 확인할 수 있습니다.변수 존재 여부를 확인하는 세 가지 방법1. 지역 변수 확인 — locals()locals() 함수는 현재 지역 스코프에 정의된 모든 변수를 딕셔너리 형태로 반환

  15. 파이썬 표준 예외(Standard Exceptions) 전체 목록은 어디서 확인할 수 있을까?

    파이썬으로 개발하다 보면 다양한 오류 상황을 만나게 되며, 이를 적절히 처리하기 위해서는 어떤 표준 예외(Built-in Exceptions)가 존재하는지 아는 것이 중요합니다. 그렇다면 프로그래머는 어디에서 파이썬의 모든 표준 예외 목록을 확인할 수 있을까요? 공식 문서에서 표준 예외 목록 확인하기 파이썬의 모든 표준 예외 목록은 공식 문서에서 가장 정확하고 최신 상태로 제공됩니다. 아래 링크에 접속하면 계층 구조와 함께 각 예외 클래스에 대한 상세한 설명을 볼 수 있습니다. https://docs.python.org/3/lib

  16. 파이썬 리스트 컴프리헨션에서 예외를 처리하는 방법

    리스트 컴프리헨션에서 예외를 직접 처리할 수 없는 이유파이썬에는 예외를 처리하거나 무시하는 기능을 제공하는 내장 함수가 없습니다. 따라서 리스트 컴프리헨션(list comprehension) 안에서 발생하는 모든 예외를 직접 처리하는 것은 불가능합니다.그 이유는 리스트 컴프리헨션이 하나 이상의 표현식(expression)으로만 구성될 수 있기 때문입니다. 파이썬에서 예외를 잡거나 무시하거나 처리하는 try~except 구문은 오직 문(statement) 수준에서만 사용할 수 있습니다.이런 제약을 우회하는 대표적인 방법은 두 가지입니

  17. 파이썬 루프에서 예외를 처리하는 방법 – try-except 기본 예제

    파이썬 루프에서 예외를 처리하는 방법 파이썬에서는 try-except 구문을 사용하여 프로그램 실행 중 발생할 수 있는 예외(Exception)를 안전하게 처리할 수 있습니다. 이 구문을 활용하면 오류가 발생하더라도 프로그램이 비정상적으로 종료되지 않고, 원하는 형태로 오류 메시지를 출력하거나 다음 작업을 계속 진행하도록 만들 수 있습니다. 예외 처리 기본 예제 아래 코드는 문자열의 각 문자를 리스트에 추가한 뒤, 존재하지 않는 인덱스에 접근했을 때 발생하는 예외를 처리하는 예제입니다. a = [] foo = redbullz t

  18. Python에서 예외를 무시하고 계속 진행하는 방법

    Python에서 예외를 무시하는 기본 방법Python 코드를 작성하다 보면 특정 예외가 발생해도 프로그램을 중단하지 않고 계속 실행해야 하는 경우가 있습니다. 이럴 때 try-except 블록을 사용하되, 예외를 별도로 처리하지 않고 그냥 넘어갈 수 있습니다. 대표적인 방법은 다음과 같습니다.1. pass 문 사용하기try: 1/0except: pass2. Exception 클래스 지정하기try: 1/0except Exception: pass두 방법의 차이점두 방법은 비슷해 보이지만 중요한 차이가 있습니다.첫

  19. Python에서 'except Exception as e'와 'except Exception, e'의 차이점

    Python 예외 처리에서 쉼표(,)와 as의 차이 Python의 except 문에서 쉼표(,)와 as 키워드는 기능적으로 동일한 역할을 하지만, 어느 것을 사용해야 하는지는 Python 버전에 따라 달라집니다. 버전별 사용 방법 Python 2.5 이하: as 키워드가 아직 지원되지 않기 때문에 쉼표(,)를 사용해야 합니다. Python 2.6 이상: 쉼표(,)와 as 모두 사용할 수 있습니다. Python 3.x: 예외 객체를 변수에 할당하려면 반드시 as를 사용해야 하며, 쉼표 문법은 완전히 제거되었습니다. as 키워드의

  20. Python '예기치 않은 들여쓰기(Unexpected Indent)' 오류란 무엇이며 어떻게 해결할까?

    Python에서 예기치 않은 들여쓰기 오류란?Python은 다른 많은 프로그래밍 언어와 달리 중괄호({}) 대신 들여쓰기(indentation)로 코드 블록을 구분합니다. 따라서 Python은 들여쓰기를 단순한 스타일이 아닌 문법의 일부로 취급하며, 들여쓰기가 존재하는 것뿐만 아니라 일관성 있는 들여쓰기까지 엄격하게 요구합니다.예를 들어 한 줄을 공백 4칸으로 들여썼는데, 바로 다음 줄을 공백 3칸(또는 5칸, 6칸 등)으로 들여쓰면 IndentationError: unexpected indent 오류가 발생합니다.오류가 발생하는

Total 8989 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:5/450  20-컴퓨터/Page Goto:1 2 3 4 5 6 7 8 9 10 11