두 물체 사이에 작용하는 중력을 계산해야 할 때, find_gravity라는 이름의 함수를 정의하고 여기에 세 개의 매개변수를 전달하여 손쉽게 구할 수 있습니다.아래에서 실제 동작 과정을 살펴보겠습니다.예제 코드def find_gravity(m_1, m_2, r): G_val = 6.673*(10**-11) F_val = (G_val*m_1*m_2)/(r**2) return round(F_val, 2) m_1 = 6000000 m_2 = 1000000 r = 45 print(The gravitational
파이썬에서 하나의 리스트에 담긴 요소들을 짝수와 홀수로 구분해 두 개의 서로 다른 리스트에 저장하고 싶을 때가 있습니다. 이럴 때는 빈 리스트 두 개를 준비한 뒤, 나머지 연산자(%)를 활용해 각 숫자가 짝수인지 홀수인지 판별하면 됩니다.나머지 연산자는 어떤 수를 2로 나눈 나머지가 0이면 짝수, 그렇지 않으면 홀수라는 원리를 이용합니다. 아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.예제 코드def split_list(my_list): even_list = [] odd_list = [] for i in m
파이썬에서 두 개의 리스트를 하나로 합친 뒤 오름차순으로 정렬해야 하는 경우가 자주 있습니다. 이럴 때는 리스트를 매개변수로 받아 병합하고 정렬하는 함수를 직접 정의하면 간단하게 처리할 수 있습니다.예제 코드def merge_list(list_1, list_2): merged_list = list_1 + list_2 merged_list.sort() return(merged_list) list_1 = [20, 18, 9, 51, 48, 31] list_2 = [28, 33, 3, 22, 15, 20] prin
리스트에서 두 번째로 큰 숫자를 찾아야 할 때 버블 정렬(Bubble Sort) 알고리즘을 활용할 수 있습니다. 버블 정렬은 인접한 두 요소를 반복적으로 비교하고 교환하며 리스트를 오름차순으로 정렬하는 가장 기본적인 정렬 방식입니다.정렬이 완료되면 리스트는 오름차순으로 배치되므로, 맨 뒤에서 두 번째 위치의 요소가 곧 두 번째로 큰 값이 됩니다. 아래 예제를 통해 실제 구현 과정을 살펴보겠습니다.예제 코드 my_list[j + 1]: temp = my_list[j] my_list[j] =
리스트의 각 숫자를 첫 번째 요소로, 해당 숫자의 제곱을 두 번째 요소로 하는 튜플 리스트를 만들어야 하는 경우가 있습니다. 이럴 때 리스트 컴프리헨션(list comprehension)을 활용하면 코드 한 줄로 간결하게 처리할 수 있습니다.아래는 그 구현 예시입니다.예제 코드my_list = [23, 42, 67, 89, 11, 32] print(리스트는 다음과 같습니다:) print(my_list) print(결과 튜플 리스트:) my_result = [(val, pow(val, 2)) for val in my_list] pri
특정 범위 안에서 완전제곱수(perfect square)이면서 동시에 각 자릿수의 합이 10보다 작은 숫자를 모두 찾아야 하는 경우가 있습니다. 이럴 때 파이썬(Python)의 리스트 컴프리헨션(list comprehension)을 활용하면 단 몇 줄의 코드로 간결하게 문제를 해결할 수 있습니다.예제 코드lower_limit = int(input(Enter the lower range: )) upper_limit = int(input(Enter the upper range: )) my_list = [] my_list = [x for
리스트에서 특정 위치의 요소가 그 앞에 있는 여러 요소들의 합과 같은 값을 갖는 누적 합(cumulative sum)을 구해야 하는 경우가 있습니다. 예를 들어 [10, 20, 25, 30, 40, 50]이라는 리스트의 누적 합은 [10, 30, 55, 85, 125, 175]가 됩니다. 이런 연산은 통계 분석, 재무 데이터 처리 등 다양한 분야에서 유용하게 활용됩니다.이럴 때 리스트를 매개변수로 받는 함수를 정의하고, 리스트 컴프리헨션(list comprehension)을 활용하면 누적 합을 손쉽게 계산할 수 있습니다.예제 코드d
지정된 범위 내에서 난수를 생성하고 이를 리스트에 추가해야 하는 경우, 난수를 만들어 빈 리스트에 append하는 메서드를 정의하면 간단하게 처리할 수 있습니다.아래는 실제 동작을 보여주는 예시입니다.예제 코드import random def random_gen(beg, end, my_num): my_result = [] for j in range(my_num): my_result.append(random.randint(beg, end)) return my_result my_num = 19 beg
튜플 리스트에서 각 튜플의 마지막 요소를 기준으로 오름차순 정렬해야 하는 경우가 종종 있습니다. 이럴 때는 별도의 함수를 정의하고, 리스트를 반복하면서 간단한 스왑(swap) 연산을 수행하는 방식으로 정렬을 구현할 수 있습니다.아래 예제를 통해 자세히 살펴보겠습니다.예제 코드def sort_tuple(my_tup): my_len = len(my_tup) for i in range(0, my_len):  
배열에서 연속된 요소들의 합이 가장 큰 구간을 찾는 최대 하위 배열(Maximum Subarray) 문제는 알고리즘 학습에서 자주 등장하는 대표적인 문제입니다. 이 글에서는 분할 정복(Divide and Conquer) 기법을 활용해 이 문제를 해결하는 Python 프로그램을 소개합니다.분할 정복 방식은 배열을 두 개의 절반으로 나눈 뒤, 왼쪽 절반의 최대 합, 오른쪽 절반의 최대 합, 그리고 중간을 가로지르는 구간의 최대 합 세 가지를 각각 계산하고, 그중 가장 큰 값을 반환하는 방식으로 동작합니다.예제 코드 sum_right_e
ttk는 tkinter의 표준 위젯에 스타일을 적용할 수 있도록 해주는 모듈로, 다양한 속성과 함수를 통해 위젯의 외형을 자유롭게 설정할 수 있습니다. 이 중 grid(options) 메서드를 활용하면 ttk 버튼의 높이와 크기를 손쉽게 조절할 수 있습니다.grid() 메서드는 여러 가지 옵션과 속성을 포함하고 있는데, 그중 ipadx(가로 내부 여백)와 ipady(세로 내부 여백) 값을 지정하면 버튼의 실제 표시 크기를 늘리거나 줄일 수 있습니다. 특히 ipady 값을 크게 설정하면 버튼의 높이가 커지는 효과를 얻을 수 있습니다.
파이썬(Python)은 스크립트 언어로서, CSV를 PDF로 변환하거나 PDF를 DOC으로 변환하는 것과 같은 다양한 파일 변환기를 손쉽게 만들 수 있게 도와줍니다. 몇 가지 라이브러리를 활용하면 이미지를 PDF로 변환하는 애플리케이션도 만들 수 있습니다. 이때 사용하는 것이 파이썬의 img2pdf 모듈로, 이미지의 바이너리(binary) 데이터를 파싱하여 PDF 파일로 변환해 줍니다.애플리케이션 개발 순서먼저 시스템에 img2pdf 패키지가 설치되어 있는지 확인합니다. 터미널에 pip install img2pdf를 입력해 패키지를
Python은 방대한 패키지 라이브러리를 자랑하는 프로그래밍 언어입니다. 이러한 라이브러리를 활용하면 PDF 문서를 손쉽게 CSV 파일로 변환할 수 있습니다. CSV 파일이란 데이터를 행(row)과 열(column) 형태로 정리해 담아둔 파일을 의미합니다.Python에서 PDF를 CSV로 변환할 수 있는 패키지는 여러 가지가 있지만, 이 글에서는 Tabula-py 모듈을 사용하는 방법을 소개합니다. Tabula-py는 내부적으로 Java 기반으로 작동하며, 먼저 PDF 문서를 읽어 들인 후 이를 Python DataFrame으로 변
대화 상자(Dialog Box)는 사용자에게 특정 작업을 수행하도록 안내할 때 매우 유용한 도구입니다. 우리는 이미 다양한 프로그램에서 대화 상자를 여러 번 접하고 사용해 왔습니다. Tkinter 애플리케이션에서는 메시지 박스(Message), 사용자 입력 대화 상자(User Interaction Dialogs), 단일 값 입력 대화 상자(Single Value Entry Dialogs), 파일 선택기(File Chooser) 등 원하는 종류의 대화 상자를 자유롭게 만들 수 있습니다.Tkinter는 이러한 대화 상자를 손쉽게 구현할
Tkinter는 처음 실행될 때 위젯과 컨트롤 바 같은 애플리케이션 구성 요소를 담고 있는 기본 창을 생성합니다. attribute(-fullscreen, True) 메서드를 사용하면 일반적인 모양의 애플리케이션을 손쉽게 전체 화면 애플리케이션으로 전환할 수 있습니다. 특정 창을 전체 화면으로 만들고 싶다면, 해당 창 객체에 대해 이 메서드를 호출하기만 하면 됩니다. 예제 코드 # tkinter 라이브러리 임포트 from tkinter import * # tkinter 프레임(창) 인스턴스 생성 win = Tk() # tkin
Tkinter 창 상단에 있는 최소화·최대화·종료 같은 창 제어 아이콘은 운영체제의 윈도우 매니저(Window Manager)가 관리합니다. 이 제어 아이콘의 동작을 제어하려면 Tkinter에서 기본으로 제공하는 내장 함수를 활용할 수 있습니다.특히 종료(X) 버튼을 비활성화하려면 protocol() 메서드를 정의해야 합니다. protocol() 메서드는 윈도우 매니저와 애플리케이션 간의 통신 규약을 설정하는 역할을 하며, 여기에 빈 함수(아무 동작도 하지 않는 함수)를 지정하면 종료 버튼이 눌려도 창이 닫히지 않도록 만들 수 있습
Python은 다양한 작업을 처리할 수 있도록 방대한 라이브러리 생태계를 제공합니다. PDF에서 데이터와 메타 정보를 추출할 때는 PyPDF2 패키지를 활용할 수 있습니다. 이 패키지는 사용법이 간단하면서도 PDF에서 데이터 추출, 문서 내 키워드 검색, 하이퍼링크·URL 등 메타 정보 확인과 같은 다양한 기능을 제공합니다. 이 글에서는 PyPDF2 패키지를 사용해 PDF 문서에 포함된 하이퍼링크를 추출하는 방법을 단계별로 살펴보겠습니다. PDF에서 하이퍼링크를 추출하는 단계 명령 셸에 pip install PyPDF2를 입력하여
소프트웨어 업계에서는 개발자가 새로운 기능을 추가하거나 특정 애플리케이션의 버그를 수정할 때마다 해당 프로그램에 새로운 버전 이름을 부여합니다. 이를 통해 사용자는 애플리케이션에 최근 업데이트된 기능이 무엇인지 쉽게 파악할 수 있습니다.Python을 활용하면 설치된 애플리케이션의 버전 정보를 손쉽게 조회할 수 있습니다. 이때 pywin32 라이브러리를 사용하여 실행 파일(.exe)과 상호작용하게 되는데, 이 라이브러리는 win32 API에 접근할 수 있도록 해주며 COM 객체 생성 등 다양한 Windows 기능을 활용할 수 있게 지
Tkinter로 애플리케이션을 개발하다 보면 버튼에 설정된 텍스트(값)를 이름이나 속성을 기준으로 다시 가져와야 하는 경우가 있습니다. 이럴 때 유용하게 사용할 수 있는 것이 바로 .cget() 함수입니다..cget() 함수는 모든 Tkinter 위젯에서 지원되며, 위젯의 구성 정보(configuration)인 텍스트, 값, 이름 등을 손쉽게 조회할 수 있습니다. 인자로 원하는 옵션명을 전달하면 해당 속성의 현재 값을 반환합니다.예제 코드아래 예제에서는 버튼을 하나 생성한 뒤, .cget() 함수를 사용해 버튼의 텍스트를 변수 my
Tkinter로 GUI 애플리케이션을 개발할 때 창의 크기를 자유롭게 설정하는 것은 기본 중의 기본입니다. 이 글에서는 지오메트리 관리자(geometry manager)를 활용해 Tkinter 루트 창의 크기를 조절하는 방법을 알아보겠습니다.geometry() 메서드란?Tkinter의 지오메트리 관리자는 창의 너비(width)와 높이(height)를 설정하는 데 일반적으로 사용됩니다. 핵심 역할을 하는 것이 바로 geometry() 메서드입니다.geometry(widthxheight) 메서드는 너비와 높이를 인자로 받아 해당 크기에