풀스택 개발자 과정 89일차

너구·2026년 9월 21일

풀스택 성장과정

목록 보기
92/106

Python

def

# 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)

input

number = input("숫자를 입력하세요: ")
print(number)

# print는 무조건 개행 -> " "
for i in range(10):
    print(i, end=" ")

fileTest

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()

classTest

# 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

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("환영합니다")
        

reguTest

# 주민번호
# 홍길동 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'))

파이썬의 기본적인 문법에 대해 공부했다.


개인 프로젝트

오늘부터 기획을 시작해나가면서 파이썬 공부와 병행해 개인프로젝트를 진행한다.

0개의 댓글