Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

jh-data1og 님의 블로그

패스트캠퍼스 ㅣ데이터분석 부트캠프 18기 3주차 본문

카테고리 없음

패스트캠퍼스 ㅣ데이터분석 부트캠프 18기 3주차

jh-data1og 2025. 3. 16. 00:20

 

 

 

 

 

 

파이썬 기초 문법 정리

 

 

 

 

 

1. 자료형

 

 

1) 숫자형

- 정수형(int)

- 실수형(float)

 

**자료형 변환

 

 

2) 문자열

-  큰 따옴표"  " 또는 작은 따옴표 ' '로 감싸져있는 형태

 

**문자열 반복 : * 사용

 

- 문자열 인덱싱/슬라이싱

- 문자열 길이 확인 : len ()

- 대문자로 변환 upper () / 소문자로 변환 lower () / 첫 글자만 대문자로 변환 capitalize ()

- 문자열 검색

-> 특정 문자열의 시작 위치 반환 find ()

-> 특정 문자열이 몇 번 등장하는지 반환 count ()

 

- 문자열 교체 : replace ()

 

- 문자열 분리 : split ()

ex) text.split (",")

 

- 문자열 결합 : join ()

ex) "-".join(list)

 

- 문자열 왼쪽 공백 제거 : lstrip () / 오른쪽 공백 제거 : rsrtip ()

- 문자열 포함 여부 :  "a" in/ not in text

- 문자열 포맷팅 : format ()

 

 

3) 리스트형

- 특징

① 순서가 있음

② 값 변경 가능

③ 동일한 값 중복 허용

④ 숫자, 문자열, 리스트 다양한 자료형 포함 가능

 

- 빈 리스트 생성 : empty_list = [ ]

 

- 값 추가

append () : 리스트의 끝에 값을 추가

ex) fruits.append("cherry")

insert (index(=특정 위치), value) : 특정 위치에 값 삽입

ex) fruits.insert(1, "orange")

 

- 값 제거

remove () : 지정된 값 제거

pop (index) : 지정된 인덱스 값 제거 후 반환 / 인덱스 생략 시 마지막 값 제거

clear () : 모든 값 제거

 

- 값 검색

index () : 특정 값의 인데스를 반환

count () : 특정 값이 리스트에 몇 번 등장하는지 반환

ex) print(fruits.count("apple")) 

 

- 리스트 정렬

sort () : 리스트를 오름차순으로 정렬

reverse () : 역순으로 정렬

 

- 리스트 복사 copy ()

 

 

4) 딕셔너리

- 중괄호 안에 key와 value로 구성되어있는 형태

 

- 특징

① 키 - 값 쌍으로 저장

② 키 고유(중복 안됨)

③ 수정, 추가, 삭제 등 변경 가능

키는 해시 가능한 값만 사용 가능( 숫자, 문자열, 튜플 등 불변자료형)

 

- 빈 딕셔너리 생성 : empty_dict = { }

 

- 딕셔너리 키로 값 접근

- 값 추가 ex) person["city"] = " N " / 값 수정 ex) person["city"] = 26

- 특정 키 삭제 : ex) del person["city"]

 

- 주요 메서드

- keys () / values () / items ()

print(person.keys())
print(person.values())
print(person.items())

 

- get ()

print(person.get("name")) 
print(person.get("city", "Unknown"))

 

- update ()

person.update({"city": "New York", "age": 26})

 

- pop ()

person = {"name": "Alice", "age": 25}
age = person.pop("age")

print(age)
print(person)

 

 

5) 튜플

- 리스트형 [ ]과 거의 비슷, ( ) 괄호로 생성

- 생성 후 수정, 추가, 삭제가 불가능

 

- 특징

① 저장된 순서 유지

② 변경 안 됨

③ 동일한 값 중복 허용

④ 숫자, 문자열, 리스트 등 자료형 저장 가능

 

- 빈 튜플 생성 : empty_tuple = ( )

 

- 튜플 반복

fruits = ("apple", "banana", "cherry")

for fruit in fruits:
    print(fruit)

 

- 주요 메서드

-> count () / index () 

- 튜플 언패킹

person = ("Alice", 25, "New York")
name, age, city = person # ("Alice", 25, "New York")

print(name)  # Alice
print(age)   # 25
print(city)  # New York

 

- 튜플 결합과 반복

 

 

6) 집합

- 중괄호 { }로 표현

 

- 특징

① 중복 제거 

② 순서 없음 (인덱스, 슬라이싱 X)

③ 값 추가 및 제거 변경 가능

④ 숫자, 문자열, 튜플 등 자료형 저장 가능(리스트, 딕셔너리 포함 불가능)

 

- 빈 집합 생성 : emptu_set = set ()

 

- 집합 주요 연산

# 합집합
print(set1 | set2)  # {1, 2, 3, 4, 5}

# 교집합
print(set1 & set2)  # {3}

# 차집합
print(set1 - set2)  # {1, 2}

# 대칭차집합
print(set1 ^ set2)  # {1, 2, 4, 5}

 

- 주요 메서드

- add(value)

fruits.add("cherry")

 

- remove () / discard ()

- union () / intersection () / difference ()

 

print(set1.union(set2))              # {1, 2, 3, 4, 5}
print(set1.intersection(set2))       # {3}
print(set1.difference(set2))         # {1, 2}
print(set1.symmetric_difference(set2))  # {1, 2, 4, 5}

 

- issubset () / issuperset () / cleat ()

print(set1.issubset(set2))  # True
print(set2.issuperset(set1))  # True

 

 

7) 불리언

- 특징

① True / False 두가지 값만 가질 수 있음

② True = 1 / False = 0

③ 대부분의 값은 참(True)으로 평가, 다음은 거짓(False)으로 평가

  • None
  • 0, 0.0, 0j (숫자 0 계열)
  • "" (빈 문자열)
  • [], (), {} (빈 시퀀스)

 

- 주요 메서드

- 논리 연산자

a = True
b = False

print(a and b)  # False
print(a or b)   # True
print(not a)    # False

 

- 비교 연산자

 

- 뷸형과 조건문

is_raining = True

if is_raining:
    print("Take an umbrella.")
else:
    print("No need for an umbrella.")

 

 

- 불형으로 변환 : bool () 함수

 

 

- 불형과 어울리는 함수 : any () -> 하나라도 참이면 True 반환 / all () -> 모두 참이면 True 반환

 

 

 

 

 

 

 

 

 

 

 

2. 제어문

 

 

1) 조건문 if

- 기본 구조

x = 10

if x > 5:
    print("x는 5보다 큽니다."
elif x == 5:
    print("x는 5입니다.")
else:
    print("x는 5보다 작습니다.")

 

- 중첩 조건문

x = 15

if x > 10:
    if x % 2 == 0:
        print("x는 10보다 크고 짝수입니다.")
    else:
        print("x는 10보다 크고 홀수입니다.")
else:
    print("x는 10 이하입니다.")

 

 

2) 반복문 while / for

- for문 기본 구조

for i in range(100):
    print("hello world")

 

- while문 기본 구조 : 조건이 True인 동안 코드를 반복 실행 / 조건 만족하지않으면 실행되지 않음.

count = 0
while count < 3:
    print("반복:", count)

    count += 1 # count = count + 1

 

- 자주 사용되는 키워드

break () / continue () / pass ()

 

- 자주 사용되는 함수

- range (start, stop, step) : 숫자 범위 생성

for i in range(1, 9, 2):
    print(i)

 

- enumerate () : 리스트나 문자열 순회, 인덱스와 값을 동시에 가져옴

fruits = ["apple", "banana", "cherry"]
for index, fruit in enumerate(fruits):
    print(index, fruit)

 

- zip ()

for name, age in zip(names, ages):
    print(f"{name} is {age} years old.")

 

- reversed ()

for char in reversed([1,2,3,4,5]):
    print(char)

 

 

3) 예외 처리 try-except

- 오류가 났을 때 대비하는 예외 처리 작업

 

- 기본 구조

try:
    num = int(input("숫자를 입력하세요: "))
    print(f"입력한 숫자는 {num}입니다.")
except ValueError:
    print("올바른 숫자를 입력해주세요.")

 

- 다중 except 블록

try:
    x = int(input("숫자를 입력하세요: "))
    result = 10 / x
    print(f"결과: {result}")
except ValueError:
    print("숫자를 입력해야 합니다.")
except ZeroDivisionError:
    print("0으로 나눌 수 없습니다.")

 

- 모든 예외 처리

try:
    num = int(input("숫자를 입력하세요: "))
    print(10 / num)
except Exception as e:
    print("예외가 발생했습니다.", e)

 

- else : try 블록에서 오류가 발생하지 않으면 else 블록 실행

try:
    num = int(input("숫자를 입력하세요: "))
except ValueError:
    print("올바른 숫자를 입력하세요.")
else:
    print(f"입력한 숫자는 {num}입니다.")

 

- finally : 오류 발생 여부와 상관없이 항상 실행

try:
    file = open("example.txt", "r")
    content = file.read()
    print(content)
except FileNotFoundError:
    print("파일을 찾을 수 없습니다.")
finally:
    print("프로그램 종료.")

 

- 주요 예외 종류

  • ValueError: 잘못된 값이 입력될 때 발생.
  • ZeroDivisionError: 0으로 나누려고 할 때 발생.
  • FileNotFoundError: 파일이 존재하지 않을 때 발생.
  • KeyError: 딕셔너리에서 존재하지 않는 키를 참조할 때 발생.
  • IndexError: 리스트의 잘못된 인덱스를 참조할 때 발생