Python에서는 파일을 한 줄씩 읽으면서 문자열의 replace() 메서드를 적용하는 방식으로, 텍스트 파일 안의 특정 단어나 문구를 간단히 다른 내용으로 교체할 수 있습니다. 다음 예제는 foo.txt 파일을 읽어 들여 Poetry라는 단어를 모두 Prose로 바꾼 뒤, 그 결과를 새로운 파일 bar.txt에 저장하고 다시 화면에 출력하는 과정을 보여줍니다. 예제 코드 f1 = open(foo.txt, r) f2 = open(bar.txt, w) for line in f1: print line f2.write(l
파이썬에서 유니코드(UTF-8)로 인코딩된 파일을 다룰 때는 io 모듈을 사용하는 것이 권장됩니다. io 모듈은 파이썬 3의 open() 문법과 완전히 호환되며, 인코딩 방식을 명시적으로 지정할 수 있어 한글을 포함한 다국어 텍스트를 안전하고 일관성 있게 처리할 수 있습니다.기본 예제다음 코드는 UTF-8로 인코딩된 파일을 읽고, 처리한 뒤 다시 같은 파일에 저장하는 기본적인 방법을 보여줍니다.import io # UTF-8 파일 읽기 with io.open(filename, r, encoding=utf8) as f: te
URL 검증은 생각보다 까다로운 작업입니다. 그 이유는 거의 모든 문자열이 유효한 URL이 될 수 있기 때문입니다. URL을 구분하는 몇 가지 문장부호 규칙이 존재하지만, 문장부호가 하나도 없더라도 여전히 유효한 URL로 간주됩니다. 따라서 validate 같은 단순한 검증 메서드가 존재하지 않으며, 상황에 맞는 적절한 방법을 선택하는 것이 중요합니다. 상황별 URL 검증 방법 데이터를 신뢰하면서 프로토콜이 HTTP인지만 확인하고 싶은 경우 — urlparse를 사용하는 것이 가장 간단하고 확실한 방법입니다. 문자열이 실제 UR
이메일 주소의 형식이 올바른지 확인하는 것은 웹 애플리케이션 개발에서 매우 흔한 작업입니다. Python에서는 re 모듈과 정규식(Regular Expression)을 활용하면 간단하게 이메일 ID의 유효성을 검사할 수 있습니다.정규식을 이용한 이메일 유효성 검사 예제아래 코드는 re.search() 함수와 정규식 패턴을 사용하여 주어진 이메일 주소가 유효한 형식인지 검사합니다.import re s = manogna.neelam@tutorialspoint.com match = re.search(r\b[A-Z0-9._%+-]+@[A
Python 정규식으로 여러 단어 동시에 매칭하기텍스트 처리 작업을 하다 보면 하나의 문자열 안에서 특정 단어 여러 개가 포함되어 있는지 확인해야 하는 경우가 자주 있습니다. 이럴 때 Python의 re 모듈과 정규식의 OR(|) 연산자를 활용하면 여러 단어를 한 번의 검색으로 모두 찾아낼 수 있습니다.아래 예제 코드는 주어진 문자열에서 roses, marigolds, orchids라는 세 단어를 동시에 검색합니다.예제 코드import re s = These are roses and lilies and orchids, but no
파이썬에서 문자열(string)은 순서가 있는 문자들의 나열, 즉 시퀀스(sequence) 자료형입니다. 파이썬의 모든 시퀀스 자료형은 슬라이싱(slicing)을 지원하기 때문에, 슬라이스 연산자 :(콜론)를 사용하면 원본 문자열에서 원하는 부분 문자열(substring)을 손쉽게 추출할 수 있습니다.슬라이싱 기본 문법슬라이싱의 기본 형식은 다음과 같습니다.문자열[시작_인덱스:끝_인덱스]시작 인덱스: 추출할 부분 문자열의 첫 번째 문자 위치입니다.끝 인덱스: 이 위치 바로 앞까지의 문자까지만 포함되며, 끝 인덱스에 해당하는 문자 자
슬라이스 연산자의 기본 원리파이썬의 슬라이스(slice) 연산자는 두 개의 피연산자를 받습니다. 첫 번째 피연산자는 슬라이스가 시작되는 위치를 나타내며, 기본적으로 인덱스는 왼쪽부터 셉니다. 음수 값을 사용하면 문자열의 끝에서부터 거꾸로 세기 시작합니다.두 번째 피연산자는 슬라이스에 포함될 마지막 문자의 인덱스를 의미하는데, 이 값을 생략하면 슬라이스가 자동으로 문자열 끝까지 이어집니다.마지막 4글자 추출하기문자열의 마지막 4글자를 얻고 싶다면 시작 위치를 -4로 지정하여 뒤에서 네 번째 자리부터 시작하도록 하고, 두 번째 피연산자
Python에는 반복 가능한(iterable) 객체의 요소를 지정된 순서대로 정렬해 주는 내장 함수 sorted()가 있습니다. 이 함수 하나만으로 딕셔너리로 이루어진 리스트도 손쉽게 정렬할 수 있습니다.sorted() 함수의 기본 문법sorted(iterable[, key][, reverse])각 매개변수의 역할은 다음과 같습니다.iterable: 정렬 대상이 되는 반복 가능한 객체입니다.key: 정렬 기준이 되는 값을 반환하는 함수입니다. 각 요소에 이 함수를 적용한 결과값을 기준으로 정렬이 수행됩니다.reverse: 기본값은
파이썬에서 리스트나 제너레이터처럼 반복 가능한(iterable) 객체에서 처음 N개 항목만 추출해야 하는 경우가 자주 있습니다. 다행히 파이썬은 이 작업을 아주 간단하게 처리할 수 있는 여러 가지 방법을 제공합니다. 이 글에서는 초보자도 쉽게 따라 할 수 있도록 대표적인 예제와 함께 정리해 보겠습니다. 1. 슬라이스 연산자로 리스트의 처음 N개 요소 가져오기 리스트, 튜플, 문자열 같은 시퀀스 자료형에는 기본적으로 슬라이스 연산자([])가 지원됩니다. 이 연산자를 활용하면 한 줄의 코드로 원하는 개수만큼의 요소를 손쉽게 가져올 수
파이썬의 객체 지향 프로그래밍(OOP) 개념파이썬은 대표적인 객체 지향 프로그래밍(Object-Oriented Programming, OOP) 언어입니다. 클래스와 객체를 손쉽게 만들고 활용할 수 있어 코드의 재사용성과 유지보수성이 뛰어나며, 복잡한 프로그램도 체계적으로 구조화할 수 있습니다.파이썬 객체 지향 프로그래밍의 핵심 개념은 다음과 같습니다.객체(Object)클래스(Class)메서드(Method)상속(Inheritance)다형성(Polymorphism)데이터 추상화(Data Abstraction)캡슐화(Encapsulati
파이썬에서 클래스란 무엇인가?파이썬에서는 거의 모든 코드가 클래스를 기반으로 구현됩니다. 개발자들은 서로 관련된 코드 조각들을 하나로 묶어 관리하기 위해 클래스를 활용하며, 이때 class 키워드를 사용합니다. 클래스는 객체 지향 프로그래밍(OOP)의 핵심 구성 요소들을 담고 있는 일종의 설계도라고 할 수 있습니다.클래스와 객체의 관계클래스는 객체(object)를 생성하기 위한 템플릿입니다. 객체는 멤버 변수(속성)를 가지며, 그와 연관된 동작(메서드)을 수행할 수 있습니다. 쉽게 비유하자면, 클래스는 붕어빵 틀과 같고, 그 틀로
Python 클래스 인스턴스화와 __init__() 메서드의 이해Python에서 클래스를 호출하는 인스턴스화(instantiation) 작업은 기본적으로 비어 있는 객체를 생성합니다. 하지만 대부분의 클래스는 특정 초기 상태를 가진 객체를 만들기를 원합니다. 이를 위해 Python은 __init__()이라는 특별한 메서드를 제공하며, 클래스 내부에 다음과 같이 정의할 수 있습니다.def __init__(self): self.data = []__init__() 메서드의 자동 호출클래스에 __init__() 메서드가 정의되어 있
self란 무엇인가?파이썬에서 self는 클래스의 인스턴스(instance), 즉 객체 자기 자신을 나타내는 키워드입니다. self를 사용하면 클래스 내부에서 해당 객체의 속성(attribute)과 메서드(method)에 접근할 수 있습니다.__init__ 메서드란 무엇인가?__init__은 파이썬 클래스에 미리 정의되어 있는 예약 메서드(reserved method)입니다. 객체 지향 프로그래밍 용어로는 생성자(constructor)라고 부릅니다.이 메서드는 클래스로부터 새로운 객체가 생성되는 순간 자동으로 호출되며, 객체의 초기
클래스의 속성(Attribute)이란?Python에서는 거의 모든 것이 객체(Object)입니다. 그리고 모든 객체는 각각의 속성(attribute)과 메서드(method)를 가지고 있습니다. 따라서 속성은 Python의 매우 근본적인 개념이라고 할 수 있습니다.클래스(class)는 유사한 객체들을 모아놓은 일종의 설계도이며, 클래스 역시 자신만의 속성을 가집니다. 여기서 중요한 점은 클래스 속성(class attribute)과 인스턴스 속성(instance attribute) 사이에 차이가 있다는 것입니다.클래스 속성: 해당 클래
파이썬을 비롯한 여러 프로그래밍 언어에는 값이 없음을 나타내는 특별한 값이 존재합니다. 파이썬에서 이러한 역할을 하는 것이 바로 None입니다. 따라서 클래스에서 속성을 선언하면서 초기값을 지정하지 않으려면 None을 할당하면 됩니다.클래스 변수로 속성 선언하기가장 간단한 방법은 다음과 같이 속성에 None 값을 직접 할당하는 것입니다.class Student: StudentName = None RollNumber = None인스턴스 변수로 속성 선언하기위 방식으로 선언된 변수는 사실 인스턴스 변수가 아닌 클래스 변수
클래스 변수란 무엇인가?클래스 변수(Class Variable)란 __init__ 메서드 외부에서 선언되는 변수를 말합니다. 이러한 변수는 클래스 인스턴스가 아닌 클래스 자체에 속하는 정적(static) 요소이며, 해당 클래스로 생성된 모든 인스턴스가 값을 공유한다는 특징이 있습니다.반면 __init__ 메서드 안에서 self를 통해 선언된 변수는 인스턴스 변수로, 각 객체마다 독립적인 값을 가집니다. 두 변수의 차이를 예제 코드를 통해 살펴보겠습니다.기본 예제class MyClass: __item1 = 123 __i
클래스 변수(Class Variable) vs 인스턴스 변수(Instance Variable)파이썬에서 클래스의 __init__() 함수 외부에 선언된 모든 변수는 클래스 변수이며, 함수 내부에 선언된 변수는 인스턴스 변수입니다.두 변수의 가장 큰 차이점은 다음과 같습니다.클래스 변수: 해당 클래스로 생성된 모든 인스턴스가 값을 공유합니다. 클래스 자체에 속하므로 한 곳에서 값을 변경하면 모든 객체에 동일하게 적용됩니다.인스턴스 변수: 각 객체(인스턴스)마다 독립적으로 유지됩니다. 특정 객체에서만 값이 변경되며 다른 객체에는 영향을
파이썬 getattr() 함수란 무엇인가?파이썬의 getattr() 함수는 객체에서 지정한 이름의 속성(attribute) 값을 가져오는 내장 함수입니다. 만약 해당 속성이 존재하지 않으면, 함수에 미리 전달해 둔 기본값(default)을 대신 반환합니다.일반적으로 객체 속성에 접근할 때 obj.name처럼 점(.) 연산자를 사용하지만, 속성 이름을 문자열로 동적으로 다뤄야 하는 상황에서는 getattr()이 매우 유용하게 활용됩니다.getattr() 기본 문법getattr() 메서드의 기본 문법은 다음과 같습니다.getattr(o
파이썬 hasattr() 함수란?파이썬의 hasattr() 함수는 특정 객체에 지정한 이름의 속성(attribute)이 존재하는지 확인하는 내장 함수입니다. 속성이 존재하면 True를 반환하고, 존재하지 않으면 False를 반환합니다.이 함수는 객체의 속성에 접근하기 전에 해당 속성이 실제로 있는지 미리 검사할 수 있어, AttributeError와 같은 예외 발생을 사전에 방지하는 데 매우 유용합니다.hasattr() 문법hasattr() 함수의 기본 문법은 다음과 같습니다.hasattr(object, name)매개변수 설명obj
setattr() 메서드란?파이썬의 내장 함수인 setattr()은 객체에 주어진 속성(attribute)의 값을 설정(할당)하는 데 사용됩니다. 일반적으로 obj.name = value 형태로 속성을 지정하지만, 속성 이름이 문자열로만 존재하거나 프로그램 실행 중에 동적으로 결정되어야 하는 경우에는 setattr()이 매우 유용하게 활용됩니다.문법setattr() 메서드의 기본 문법은 다음과 같습니다.setattr(object, name, value)매개변수setattr() 메서드는 세 개의 매개변수를 받습니다.object : 속