소개
이 랩에서는 Python 에서 튜플이 숫자 (정수 및 부동 소수점) 만 포함하는지 확인하는 방법을 배우게 됩니다. 먼저 숫자 튜플을 정의하고, 정수, 부동 소수점 또는 둘 다 혼합된 튜플을 만드는 방법을 살펴봅니다. 여기에는 numeric_tuple.py 파일을 생성하고, 튜플 정의를 추가하고, 스크립트를 실행하여 출력을 관찰하는 작업이 포함됩니다.
그런 다음 이 랩에서는 all() 함수를 isinstance()와 함께 사용하여 튜플 내의 모든 요소가 실제로 숫자인지 확인하는 방법을 안내합니다. 마지막으로, 이 검사를 수행할 때 빈 튜플을 적절하게 처리하는 방법을 배우게 됩니다.
숫자 튜플 정의
이 단계에서는 Python 에서 숫자 데이터 (정수 및 부동 소수점) 만 포함하는 튜플을 정의하는 방법을 배우게 됩니다. 튜플은 Python 의 기본적인 데이터 구조이며, 리스트와 유사하지만 한 가지 중요한 차이점이 있습니다. 튜플은 불변 (immutable) 하다는 것입니다. 즉, 생성 후에는 요소를 변경할 수 없습니다. 이러한 불변성은 고정된 데이터 컬렉션을 나타내는 데 유용합니다.
정수를 포함하는 간단한 튜플을 생성하는 것으로 시작해 보겠습니다.
VS Code 편집기를 엽니다.
~/project디렉토리에numeric_tuple.py라는 새 파일을 생성합니다.## ~/project/numeric_tuple.py my_tuple = (1, 2, 3, 4, 5) print(my_tuple)파일을 저장합니다.
터미널을 엽니다.
python명령을 사용하여 스크립트를 실행합니다.python ~/project/numeric_tuple.py다음과 같은 출력을 볼 수 있습니다.
(1, 2, 3, 4, 5)
이제 부동 소수점을 포함하는 튜플을 생성해 보겠습니다.
부동 소수점 값을 포함하도록
numeric_tuple.py파일을 수정합니다.## ~/project/numeric_tuple.py my_tuple = (1.0, 2.5, 3.7, 4.2, 5.9) print(my_tuple)파일을 저장합니다.
스크립트를 다시 실행합니다.
python ~/project/numeric_tuple.py다음과 같은 출력을 볼 수 있습니다.
(1.0, 2.5, 3.7, 4.2, 5.9)
튜플은 정수와 부동 소수점의 혼합을 포함할 수도 있습니다.
정수와 부동 소수점 값을 모두 포함하도록
numeric_tuple.py파일을 수정합니다.## ~/project/numeric_tuple.py my_tuple = (1, 2.5, 3, 4.2, 5) print(my_tuple)파일을 저장합니다.
스크립트를 실행합니다.
python ~/project/numeric_tuple.py다음과 같은 출력을 볼 수 있습니다.
(1, 2.5, 3, 4.2, 5)
요약하면, 숫자 (정수 및 부동 소수점) 를 괄호 () 안에 넣고 쉼표로 구분하여 숫자 데이터를 포함하는 튜플을 정의할 수 있습니다.
all() 과 isinstance() 사용
이 단계에서는 all() 함수를 isinstance() 함수와 함께 사용하여 튜플의 모든 요소가 숫자인지 확인하는 방법을 배우게 됩니다. 이는 데이터를 검증하고 코드가 올바른 유형의 값으로 작동하도록 보장하는 데 유용한 기술입니다.
먼저, all()과 isinstance()가 무엇을 하는지 이해해 보겠습니다.
all(iterable): 이 함수는 iterable(예: 튜플) 의 모든 요소가 참인 경우 (True) 를 반환합니다 (또는 iterable 이 비어 있는 경우). 요소 중 하나라도 거짓이면False를 반환합니다.isinstance(object, classinfo): 이 함수는object가classinfo(예:int,float) 의 인스턴스인 경우True를 반환합니다. 그렇지 않으면False를 반환합니다.
이제 튜플의 모든 요소가 정수 또는 부동 소수점인지 확인하는 Python 스크립트를 만들어 보겠습니다.
VS Code 편집기를 엽니다.
~/project디렉토리에check_numeric_tuple.py라는 새 파일을 생성합니다.## ~/project/check_numeric_tuple.py def is_numeric_tuple(my_tuple): return all(isinstance(item, (int, float)) for item in my_tuple) tuple1 = (1, 2.5, 3, 4.2, 5) tuple2 = (1, 2, 'a', 4, 5) tuple3 = (1.0, 2.0, 3.0) print(f"Tuple 1 is numeric: {is_numeric_tuple(tuple1)}") print(f"Tuple 2 is numeric: {is_numeric_tuple(tuple2)}") print(f"Tuple 3 is numeric: {is_numeric_tuple(tuple3)}")이 스크립트에서:
- 튜플을 입력으로 받는
is_numeric_tuple함수를 정의합니다. - 함수 내부에서
all()을 제너레이터 표현식(isinstance(item, (int, float)) for item in my_tuple)과 함께 사용하여 튜플의 각item이int또는float의 인스턴스인지 확인합니다. - 그런 다음 세 개의 서로 다른 튜플로 함수를 테스트합니다.
- 튜플을 입력으로 받는
파일을 저장합니다.
터미널을 엽니다.
python명령을 사용하여 스크립트를 실행합니다.python ~/project/check_numeric_tuple.py다음과 같은 출력을 볼 수 있습니다.
Tuple 1 is numeric: True Tuple 2 is numeric: False Tuple 3 is numeric: True이 출력은
tuple1과tuple3이 숫자 값만 포함하는 반면,tuple2는 문자열을 포함하므로 숫자 튜플로 간주되지 않음을 보여줍니다.
이 예제는 all()과 isinstance()를 효과적으로 사용하여 튜플의 내용을 검증하고 모든 요소가 특정 데이터 유형을 준수하는지 확인하는 방법을 보여줍니다.
빈 튜플 처리
이 단계에서는 숫자 값을 확인할 때 빈 튜플을 처리하는 방법을 배우게 됩니다. 빈 튜플은 요소가 없는 튜플로, ()로 표시됩니다. 잠재적인 오류를 방지하고 프로그램이 예상대로 작동하도록 하기 위해 코드에서 빈 튜플을 고려하는 것이 중요합니다.
이전 단계의 스크립트를 수정하여 빈 튜플을 처리해 보겠습니다.
VS Code 편집기를 엽니다.
~/project디렉토리에서check_numeric_tuple.py파일을 엽니다.## ~/project/check_numeric_tuple.py def is_numeric_tuple(my_tuple): if not my_tuple: return True ## An empty tuple is considered numeric return all(isinstance(item, (int, float)) for item in my_tuple) tuple1 = (1, 2.5, 3, 4.2, 5) tuple2 = (1, 2, 'a', 4, 5) tuple3 = (1.0, 2.0, 3.0) tuple4 = () ## Empty tuple print(f"Tuple 1 is numeric: {is_numeric_tuple(tuple1)}") print(f"Tuple 2 is numeric: {is_numeric_tuple(tuple2)}") print(f"Tuple 3 is numeric: {is_numeric_tuple(tuple3)}") print(f"Tuple 4 is numeric: {is_numeric_tuple(tuple4)}")이 수정된 스크립트에서:
is_numeric_tuple함수의 시작 부분에if not my_tuple: return True를 추가했습니다. 이는 튜플이 비어 있는지 확인합니다. 비어 있으면 함수는True를 반환하여 빈 튜플을 숫자로 간주합니다.- 함수를 테스트하기 위해 빈 튜플
tuple4 = ()를 추가했습니다.
파일을 저장합니다.
터미널을 엽니다.
python명령을 사용하여 스크립트를 실행합니다.python ~/project/check_numeric_tuple.py다음과 같은 출력을 볼 수 있습니다.
Tuple 1 is numeric: True Tuple 2 is numeric: False Tuple 3 is numeric: True Tuple 4 is numeric: True이 출력은 빈 튜플
tuple4가 이제 올바르게 처리되어 숫자 튜플로 간주됨을 보여줍니다.
빈 튜플을 처리하는 것은 코드를 더 강력하게 만들고 예기치 않은 동작을 방지하는 좋은 방법입니다. 이 경우 빈 튜플을 숫자로 간주하도록 선택했지만, 특정 요구 사항에 따라 로직을 조정할 수 있습니다.
요약
이 Lab 에서는 첫 번째 단계에서 Python 에서 숫자 튜플을 정의하는 데 중점을 둡니다. 튜플은 리스트와 유사한 불변 (immutable) 데이터 구조이며, 괄호 ()를 사용하여 정의된다는 것을 배웠습니다. 정수, 부동 소수점 또는 둘 다를 포함하는 튜플을 쉼표로 요소를 구분하여 만들 수 있습니다.
그런 다음 Lab 은 all() 함수를 isinstance()와 함께 사용하여 튜플에 숫자만 포함되어 있는지 확인하는 방법을 보여줍니다. (내용은 원래 Lab 설명에서 잘렸습니다.)



