파이썬 기초(1) - 파이썬 기본 문법 본문
변수 Variable
- 데이터를 저장하는 그릇
- 명명규칙: 모두 소문자, 밑줄 문자( _ ) 사용
E.g. a, b, items, user_names, db_name
a = 1
b = 2
items = [1,2,3]
user_name = ['파','이','썬']
상수 Constant
- 변하지 않고 항상 일정한 값
- 명명규칙: 모두 대문자, 밑줄 문자( _ ) 사용
E.g. PI, GRAVITY, USER_PATH
PI = 3.141592
GRAVITY = 9.8
USER_PATH = 'C:\Users\itst'
연산자 Operator
- (하기 ① ~ ⑤는 연산 우선순위를 나타냄)
- 산술 연산자: 숫자인 값을 연산함
- + : 덧셈 ③
- - : 뺄셈 ③
- * : 곱셈 ②
- / : 나눗셈 ②
- // : 정수 몫 ②
- % : 나머지 ②
- ** : 거듭제곱 ①
a = 11
b = 4
print('덧셈 결과', a+b) # "덧셈 결과 15" 출력
print('뺄셈 결과', a-b) # "뺄셈 결과 7" 출력
print('곱셈 결과', a*b) # "곱셈 결과 44" 출력
print('나눗셈 결과', a/b) # "나눗셈 결과 2.75" 출력
print('나눗셈 정수 몫', a//b) # "나눗셈 정수 몫 2" 출력
print('나눗셈 나머지', a%b) # "나눗셈 나머지 3" 출력
print('거듭제곱 결과', a**b) # "거듭제곱 결과 14641" 출력
- 관계 연산자: 두 값의 대소관계 또는 상등관계를 계산함 ④
- > : 왼쪽 값이 오른쪽 값보다 큰지 비교
- >= : 왼쪽 값이 오른쪽 값보다 크거나 같은지 비교
- < : 왼쪽 값이 오른쪽 값보다 작은지 비교
- <= : 왼쪽 값이 오른쪽 값보다 작거나 같은지 비교
- == : 왼쪽 값이 오른쪽 값과 같은지 비교
- != : 왼쪽 값이 오른쪽 값과 같지 않은지 비교
a = 11
b = 4
print(a>b) # "True" 출력
print(a>=b) # "True" 출력
print(a<b) # "False" 출력
print(a<=b) # "False" 출력
print(a==b) # "False" 출력
print(a!=b) # "True" 출력
- 논리 연산자: 논리값 참(True)과 거짓(False)를 연산함 ⑤
논리 연산자 | ||||
A | True | True | False | False |
B | True | False | True | False |
A and B | 논리곱(conjunction) | |||
True | False | False | False | |
A or B | 논리합(disjunction) | |||
True | True | True | False | |
not A | 논리 부정 | |||
False | False | True | True |
a = True
b = False
print(a and b) # "False" 출력
print(a or b) # "True" 출력
- 멤버 연산자: 어떤 집합(객체)에 연산 대상의 포함 여부를 판단 ④
- in : 왼쪽 값이 오른쪽 집합(객체) 안에 포함되었는지 판단
- not in : 왼쪽 값이 오른쪽 집합(객체) 안에 포함되지 않았는지 판단
A = '엄마'
B = ['아빠','엄마','딸']
print(A in B) # "True" 출력
print(A not in B) # "False" 출력
조건문 Conditional Statement
- 단일 조건문 (if 조건문)
- 단일 조건문은 하나의 조건을 검사하여 참(True)이면 실행하고, 거짓(False)이면 실행하지 않는 구조
- 콜론(:): 조건 뒤에 콜론을 붙여 조건의 끝임을 명시
- 들여쓰기(탭): if의 실행문임을 표시. 들여쓰기를 해제한 구문부터 실행문이 종료됨
age = 18
if age >= 18:
print('성인입니다.') # "성인입니다." 출력
- 양자택일 조건문 (if ~ else 조건문)
- 조건의 결과에 따라 if 코드나 else의 코드를 실행하는 구조
x = 3
if x > 5:
print('x는 5보다 크다') # if 조건이 충족되지 않아 else로 넘어감
else:
print('x는 5보다 작거나 같다.') # "x는 5보다 작거나 같다." 출력
- 다자택일 조건문 (if ~ elif ~ else 조건문)
- 여러 개의 조건을 검사하여 가장 먼저 참인 조건의 코드를 실행
score = 85
if score >= 90:
print('A 학점입니다.') # if 조건이 참이 아니어서 넘어감
elif score >= 80:
print('B 학점입니다.') # "B 학점입니다" 출력 후 조건문 종료
elif score >= 70:
print('C 학점입니다.')
else:
print('F 학점입니다.')
반복문 Loop Statement
- For 반복문
- 주어진 반복 가능한(iterable) 객체(리스트, 튜플, 문자열, range 등)의 요소를 차례로 가져와 실행하는 반복문
# 예제1: 리스트 출력
fruits = ["사과", "바나나", "체리"]
for fruit in fruits: # fruits 리스트를 객체로 사용
print(fruit) # "사과", "바나나", "체리" 출력
# 예제2: range()와 함께 사용
for i in range(5): # 0부터 4까지 반복
print(i) # "0", "1", "2", "3", "4" 출력
- While 반복문
- while 문은 조건이 참(True)인 동안 계속 반복하는 구조
- 반복문을 조정하는 키워드로 break와 continue 사용 가능함
- break: 반복문 종료
- continue: 현재 반복 건너뛰고 다음 반복 실행
# 예제 1: 조건이 참이면 반복
x = 0
while x < 5:
print(x)
x += 1 # x 값을 증가시키지 않으면 무한 루프 발생
# "0", "1", "2", "3", "4" 출력
# break: 반복문 즉시 종료
for i in range(10):
if i == 5:
break # i가 5이면 반복 종료
print(i)
# "0", "1", "2", "3", "4" 출력
# continue: 특정 조건일 때 건너뛰기
for i in range(5):
if i == 2:
continue # i가 2이면 건너뛰고 다음 반복 실행
print(i)
파이썬의 자료구조
리스트 List
- 순서 유지: 요소들이 삽입된 순서를 유지함
- 가변성(Mutable): 생성 후 요소의 수정, 추가, 삭제가 가능
- 중복 허용: 동일한 값을 여러 번 포함할 수 있음
- 인덱싱과 슬라이싱 지원: 인덱스를 사용하여 요소에 접근하거나 부분 리스트를 추출할 수 있음
# 리스트 생성
fruits = ['사과', '바나나', '체리', '사과']
# 요소 접근
print(fruits[1]) # 출력: 바나나
# 요소 수정
fruits[2] = '오렌지'
# 요소 추가
fruits.append('포도')
# 요소 삭제
fruits.remove('사과') # 첫 번째 '사과'만 제거
print(fruits) # 출력: ['바나나', '오렌지', '사과', '포도']
튜플 Tuple
- 순서 유지: 요소들이 삽입된 순서를 유지
- 불변성(Immutable): 생성 후 요소를 변경할 수 없음
- 중복 허용: 동일한 값을 여러 번 포함할 수 있음
- 인덱싱과 슬라이싱 지원: 인덱스를 사용하여 요소에 접근하거나 부분 튜플을 추출할 수 있음
# 튜플 생성
colors = ('빨강', '초록', '파랑', '빨강')
# 요소 접근
print(colors[0]) # 출력: 빨강
# 튜플은 불변성이므로 요소 수정 불가능
# colors[1] = '노랑' # 오류 발생
# 튜플 연결
new_colors = colors + ('노랑',)
print(new_colors) # 출력: ('빨강', '초록', '파랑', '빨강', '노랑')
세트 Set
- 순서 없음: 요소들의 순서가 유지되지 않음
- 가변성(Mutable): 생성 후 요소의 추가, 삭제가 가능
- 중복 불허: 동일한 값을 중복하여 포함할 수 없음
- 인덱싱 미지원: 인덱스를 사용한 접근이 불가능
# 세트 생성
unique_numbers = {1, 2, 3, 4, 4, 2}
print(unique_numbers) # 출력: {1, 2, 3, 4}
# 요소 추가
unique_numbers.add(5)
# 요소 삭제
unique_numbers.discard(3)
print(unique_numbers) # 출력: {1, 2, 4, 5}
# 세트 연산
odds = {1, 3, 5, 7}
evens = {2, 4, 6, 8}
# 합집합
all_numbers = odds | evens
print(all_numbers) # 출력: {1, 2, 3, 4, 5, 6, 7, 8}
# 교집합
common_numbers = unique_numbers & odds
print(common_numbers) # 출력: {1, 5}
리스트 List
- 순서 유지: 삽입된 순서를 유지
- 가변성(Mutable): 생성 후 키-값 쌍의 수정, 추가, 삭제가 가능
- 키의 중복 불허: 각 키는 고유해야 하며, 중복될 수 없음
- 키-값 쌍으로 데이터 저장: 각 키에 해당하는 값을 저장
# 딕셔너리 생성
person = {
'이름': 'itst',
'나이': 25,
'도시': '서울'
}
# 값 접근
print(person['이름']) # 출력: itst
# 값 수정
person['나이'] = 26
# 새로운 키-값 쌍 추가
person['직업'] = '엔지니어'
# 키-값 쌍 삭제
del person['도시']
print(person)
# 출력: {'이름': 'itst', '나이': 26, '직업': '엔지니어'}
# 키와 값 순회
for key, value in person.items():
print(f"{key}: {value}")
# 출력:
# 이름: itst
# 나이: 26
# 직업: 엔지니어
파이썬 자료구조 정리
특징 | 리스트 (List) |
튜플 (Tuple) |
세트 (Set) |
딕셔너리 (Dictionary) |
순서 유지 | Y | Y | N | Y (Python 3.7~) |
가변성 | Y | N | Y | Y |
중복 허용 | Y | Y | N | Key : N Value: Y |
인덱싱 지원 | Y | Y | N | 키를 통한 접근 |
데이터 분석에서의 활용성 (① ~ ④) |
① 1. 순서 유지 및 가변성 2. 다양한 데이터 타입 저장 가능 |
③ 1. 데이터 불변성 2. Pandas, Numpy와 호환성이 낮음 |
④ 1. 순서 유지 불가 2. 인덱싱, 슬라이싱 기능 부재 |
② 1. 키-값 쌍을 통한 데이터 관리 용이 2. 빠른 조회 속도 |
'Languages' 카테고리의 다른 글
파이썬 기초(2) - 데이터 분석 라이브러리 (0) | 2025.03.20 |
---|
Comments