# def 함수명(매개변수):
# 명령문
# 리턴 타입 -> X 자료형
def add(a, b):
return a + b
def pr():
print("안녕")
print(add(5, 6))
a = add(10, 5)
print(a)
# 메소드 함수 -> 매개변수 갯수에 제한 X
# (a, b, x) -> 매개변수 알아서 마음대로
# 매개 변수 있던 말던 상관 없다 args
def add_many(*args):
result = 0
for i in args:
result += i
return result
print(add_many(1, 2, 3, 4, 5, 6, 7, 8, 9))
print(add_many(1, 2, 3))
def add_mul(choice, *args):
if choice == "add":
result = 0
for i in args:
result += i
elif choice == "mul":
result = 0
for i in args:
result *= i
else:
print("잘못된 입력입니다")
result = -1
return result
# 딕셔너리 -> map 형식
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a = 1, b = 2)
def say_myself(name, age, man=True):
print(name, age, man)
print(age)
if man:
print("남자입니다")
else:
print("여자입니다")
say_myself("호랑이", 20)
x = 1
def vartest():
global x
x = x + 1
x = vartest(x)
print(x)
add1 = lambda a, b: a + b
result1 = add1(3, 4)
print(result1)
number = input("숫자를 입력하세요: ")
print(number)
# print는 무조건 개행 -> " "
for i in range(10):
print(i, end=" ")
f = open("hello.txt", "r", encoding="utf-8")
line = f.readline()
print(line)
lines = f.readline()
for temp in lines:
print(temp)
f.close()
fw = open("new.txt", "w", encoding="utf-8")
for i in range(1, 11):
data = "%d번째 줄입니다.\n" % i
fw.write(data)
f.close()
# import 모듈화
from hello7 import *
class Calculator:
# 생성자
def __init__(self):
# 매개변수 result 초기화
self.result = 0
def __init__(self, a, b):
self.result = a + b
# 메서드 함수
def add(self, num):
self.result += num
return self.result
c1 = Calculator()
c2 = Calculator()
print(c1.add(10))
print(c2.add(10))
class Calculator2(Calculator):
korea = "하이" # 클래스 변수
pass
try:
4 / 0
except ZeroDivisionError as e:
print(e)
finally:
print("안녕")
# finally 무조건 마지막 호출
# try - expect .. 개수 제한
try :
age = int(input("나이를 입력하세요: "))
except:
print('입력이 정확하지 않습니다')
else:
if age >= 18:
print("미성년자 출입금지")
else:
print("환영합니다")
# 주민번호
# 홍길동 800905-1049118
# 홍길동 800905-1******
data = """
park 800905-1049118
kim 700905-1059119
"""
result = []
for line in data.split("\n"):
word_result = []
for word in line.split(" "):
if len(word) == 14 and word[:6].isdigit() and word[7:].isdigit():
word = word[:6] + "-" + "******"
word_result.append(word)
result.append(" ".join(word_result))
print("\n".join(result))
import re # 정규화 해주는 라이브러리
p = re.compile('ab*')
# 1) match() : 문자열의 '처음'부터 매칭 시도
print(p.match('a'))
print(p.match('abbbb'))
print(p.match('cab'))
# 2) search() : 문자열 '전체'에서 첫 매칭 위치 탐색
print(p.search('cab'))
# 3) findall() : 매칭되는 모든 부분을 리스트로 반환
print(p.findall('a abb cabbb dab'))
# 4) finditer() : 매칭 결과를 반복자(Match 객체)로 반환
for m in p.finditer('a abb cabbb dab'):
print(m.group(), m.span())
# 정규식: [a-z] +
# [a-z] : 문자 클래스 -> 알파벳 소문자 a부터 z까지 중 '한 글자'
# + : 바로 앞 요소가 '1회 이상' 반복 (탐욕적/greedy)
# 결합 시 -> "소문자 알파벳이 1글자 이상 연속된 덩어리"
# 대문자(A-Z), 숫자(0-9), 공백, 한글 등은 매칭되지 않음
p = re.compile('[a-z]+')
# 1) match() : 문자열의 맨 앞부터 매칭 시도
print(p.match('hello'))
print(p.match('Hello'))
print(p.match('123abc'))
# 2) search() : 문자열 전체에서 첫 매칭을 탐색
print(p.search('Hello'))
print(p.search('123abc456'))
# 3) findall() : 조건에 맞는 모든 부분을 리스트로 반환
print(p.findall('Python is fun, 2026!'))
# 4) finditer() : Match 객체를 순회하며 위치까지 확인
for m in p.finditer('Hello World 123 apple'):
print(f"매칭: {m.group():<6} 위치: {m.span()}")
# 5) sub() : 매칭된 부분을 다른 문자열로 치환
print(p.sub('*', 'Hello World 2026'))
파이썬의 기본적인 문법에 대해 공부했다.
오늘부터 기획을 시작해나가면서 파이썬 공부와 병행해 개인프로젝트를 진행한다.