안녕하세요 소신입니다.
데이터 분석을 위한 파이썬 기초입니다.
파이썬을 다루기 위한 기본 문법을 살펴보겠습니다.
기본 문법은 외우고, 이해해야 하는 부분입니다.
ㅁ 산술연산
ㅇ 사칙연산
파이썬에서 활용가능한 사칙연산은 다음과 같습니다.
구분 | 예제 | 결과 |
덧셈 | 1 + 2 | 3 |
뺄셈 | 1 - 2 | -1 |
곱셈 | 5 * 2 | 10 |
나눗셈 | 5 / 2 | 2.5 |
나눗셈 (몫) | 5 // 2 | 2 |
나눗셈 (나머지) | 9 % 2 | 1 |
제곱 | 2 ** 3 | 8 |
괄호 (우선순위) | (2 + 3) * 2 | 10 |
ㅇ 자료형
type(값) - 자료의 형태를 확인하는 함수
type(2)
# 결과 : int
type(10.5)
# 결과 : float
- 자료형
int - 정수
float - 실수
bool - True or False (논리형)
str - 문자
list - list (값을 변경 가능한 배열)
tuple - tuple (값 변경 불가능한 배열)
dic - dictionary (key-value)
set - 집합
- 형변환
int(값) - 정수로 변환
float(값) - 실수로 변환
int(3.5)
# 결과 : 3
float(3)
# 결과 : 3.0
ㅁ 변수
- 변수 : 하나의 데이터를 저장할 수 있는 메모리 공간, 변할수 있는 수
파이썬에서는 변수를 선언과 동시에 할당
x = 10
print(x)
# 결과 : 10
파이썬 변수명 제약조건
1. 영문, 숫자 사용가능
2. 대소문자 구분
3. 숫자부터 시작할 수 없음
4. 특수문자 사용불가 (+, -, *, /, $ 등)
5. 파이썬의 키워드 사용불가
- 연습
1. x, y를 선언하고 두 값을 더한 결과를 출력하세요.
2. x를 선언하고 x에 10을 더한 결과를 출력하세요.
3. x를 선언하고 x에 10을 더한 결과를 저장한 후 x를 출력하세요.
- None : 비어있는 변수 (Null)
x = None
print(x)
# 결과 : None
Type(x)
# 결과 : None Type
- 실습
사용자로부터 x, y를 입력받아 더하고 곱하는 프로그램 작성
keyword - input(), int()
실행 :
x 값을 입력해주세요 : 20
y 값을 입력해주세요 : 30
결과 :
덧셈 결과 : 50
곱셈 결과 : 600
ㅁ Boolean
True - 참
False - 거짓
- 비교연산자
> : 크다, >= : 크거나 같다
< : 작다, <= : 작거나 같다
== : 같다, != : 같지않다
print(3 > 1)
# 결과 : True
print(10 != 10)
# 결과 : False
type(10==10)
# 결과 : bool
- 논리연산자
and : 모두 True면 True, 하나라도 False면 False
or : 하나만 True여도 True, 모두 False면 False
not : 반대
######## AND ########
True and True
# 결과 : True
True and False
# 결과 : True
######## OR ########
True or False
# 결과 : True
False or False
# 결과 : False
######## NOT ########
not True
# 결과 : False
- 비교 + 논리 연산자
5 > 10 and 20 == 20
# 결과 : False
5 == 5 or 10 != 10
# 결과 : True
- 실습
사용자로부터 점수 3개를 입력받아 모든 점수가 65점보다 클 경우 True
점수가 하나라도 65점이 안넘을 경우 False를 출력하세요
keyword - input(), int()
실행 :
첫 번째 점수 : 20
두 번째 점수 : 70
세 번째 점수 : 80
결과 : False
ㅁ 문자형
### 한 줄
"Hello, World"
### 여러 줄
""" Hello, World
Hello, Python"""
- 문자열 연산
"과일" + "사과"
# 결과 : 과일사과
"과일" * 3
# 결과 : 과일과일과일
- 문자열 함수
### len - 길이 출력
len("apple banana")
# 결과 : 12
### 대문자로
upper("apple banana")
# 결과 : APPLE BANANA
### 소문자로
lower("APPLE BANANA")
# 결과 : apple banana
### 문자열 대체
word = "apple banana"
word.replace("apple", "orange")
print(word)
# 결과 : orange banana
- 서식지정자
"문자열 %s 문자열"%문자
name = tom
"I am " + name + "!"
"I am %s!"%name
# 결과 : I am tom!
%s - 문자, %d - 정수, %f - 실수, %.3f - 소수점 3자리까지
%07.2f%10.3848 - 앞의 빈 숫자는 0으로 채우고 소수점 2자리 실수
%07.2f%10.3848
# 결과 : 0000010.38
- Format 함수
"문자열 {0}, {1} 문자열".format(값, 값)
"I like {0], {1} !!".format("apple", "banana")
# 결과 : I like apple, banana !!
ㅁ 리스트와 튜플
- 시퀀스 자료형 - 여러값들을 한 변수에 저장
리스트 = [값, 값, 값, ...] / 수정, 추가 가능
빈 리스트 생성
a = []
a = list()
튜플 = (값, 값, 값, ...) / 수정, 추가 불가능
빈 튜플 생성
b = ()
b = tuple()
- 형변환
list(튜플)
tuple(list)
- range : 연속된 숫자 생성
ragne(개수) - 개수만큼 생성 (0부터 시작)
range(시작, 끝, step) - 끝은 포함하지 않음
range(10)
# 결과 : (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
range(5, 0 -1)
# 결과 : (5, 4, 3, 2, 1)
- 인덱스 접근
0부터 시작
a = [1,2,3,4,5]
a[2]
# 결과 : 3
## 값 변경 가능 (List)
a[3] = 8
a
# 결과 : [1,2,3,8,5]
## 슬라이스 (끝 포함 X)
a[0:4]
# 결과 : [1,2,3,8]
a[1:-2] # 1:3(=5-2)
# 결과 : [2,3]
- 기능
in : 특정 값 있는지 확인
a = [1,2,3,4,5]
1 in a
# 결과 : True
+ : 연결
a = [1,2,3,4,5]
b = [6,7,8,9]
a + b
# 결과 : 1,2,3,4,5,6,7,8,9
* : 반복
a = [1,2,3]
a * 3
# 결과 : [1,2,3,1,2,3,1,2,3]
len() : 요소 개수 구하기
a = [1,2,3,4,5]
len(a)
# 결과 : 5
append(값) : 요소 추가하기
extend(시퀀스 자료형) : 요소들 추가하기
a = [1,2,3,4,5]
a.append(6)
# 결과 : [1,2,3,4,5,6]
a.extend([7,8])
# 결과 : [1,2,3,4,5,6,7,8]
insert(인덱스, 값) : 특정 인덱스에 요소 추가
a = [1,2,3]
a.insert(2,6)
# 결과 : [1,2,6,3]
pop(인덱스) : 리스트 요소 삭제
a = [1,2,3]
a.pop(0)
# 결과 : [2,3]
a.pop()
# 결과 : [2]
remove(값) : 특정 값 찾아서 삭제
a = [100,200,300]
a.remove(200)
# 결과 : [100,300]
sort() - 오름차순 정렬 (1,2,3,4), 내림차순 sort(reverse=True)
reverse() - 순서 뒤집기
index(값) - 특정 값 index 구하기
count(값) - 특정 값 개수 구하기
- 실습
range함수를 이용하여 사용자가 입력한 수까지의 2의 배수값을 넣은 리스트를 만들고
리스트의 맨 마지막에 사용자가 입력한 값을 추가해 주세요
실행 :
숫자를 입력해주세요 : 10
[2,4,6,8,10,10]
숫자를 입력해주세요 : 20
[2,4,6,8,10,12,14,16,18,20,20]
ㅁ 딕셔너리
딕셔너리 = {키1 : 값1, 키2:값2} = dict(키1=값1, 키2=값2)
score = {"name" : "Tom", "math" : 80, "english" : 70}
score = dict(name="Tome", math=80, english=70)
빈 딕셔너리
a = dict()
a = {}
update({키:값}) 키-값 수정하기
score = {"name" : "Tom", "math" : 80, "english" : 70}
score.update({"math":90})
score
# 결과 {"name" : "Tom", "math" : 90, "english" : 70}
pop(키, 기본값) - 키로 항목 삭제 (없으면 기본값 출력)
clear() - 모든 값 삭제
keys() - 모든 키 가져오기
values() - 모든 값 가져오기
items() - 모든 키, 값 가져오기 (튜플형태)
score = {"math":80, "english":60}
score.keys()
# 결과 : dict_keys(["math","english"])
score.values()
# 결과 : dict_values([80,60])
score.items()
# 결과 : dict_items([("math",80),("english",60)])
- 실습
이름, 나이, 연락처를 입력받아 딕셔너리를 만들어 출력해주세요
실행 :
이름을 입력해주세요 : 홍길동
나이를 입력해주세요 : 27
연락처를 입력해주세요 : 010-3023-1223
결과 :
{"이름":"홍길동", "나이", "27", "연락처":"010-3023-1223"}
ㅁ Copy 패키지
- copy() - 단일 리스트, 딕셔너리
b = a.copy()
a = {"a":0, "b":0}
b = a.copy()
print(b)
# 결과 : {"a":0, "b":0}
- copy.deepcopy() - 중첩 리스트, 중첩 딕셔너리
import copy
a = {“a”:{"c":0,"d":0}, "b":{"e":0,"f":0}}
b = copy.deepcopy(a)
print(b)
# 결과 : {“a”:{"c":0,"d":0}, "b":{"e":0,"f":0}}
ㅁ 세트 (집합)
중복을 가지지 않는 자료형
세트 = {값1, 값2, 값3, 값4}
a = set("animal")
a
# 결과 : {"a","n","i","m","a","l"}
합집합
|, set.union(a, b)
교집합
&, set.intersection(a,b)
차집합
-, set.difference
대칭차집합
^, set.symmetric_difference
부분집합
<=, a.issubset(b)
상위집합
>=, a.issuperset(b)
겹치는 요소 확인
a.isdisjoint(b)
겹치는 요소가 없을 때 True 반환
겹치는 요소가 있을 때 False 반환
add(값) - 값 추가
remove(값) - 값 삭제
'슬기로운 개발자생활 > Python' 카테고리의 다른 글
[찾기 쉬운 Python 코드] Numpy (0) | 2020.12.27 |
---|---|
[Python] 파이썬 파일 생성, 쓰기, 파일 이름 변경, 파일 + 폴더 탐색, 삭제 패키지 (0) | 2020.11.25 |
[프로젝트 중심 데이터 분석 강좌 - Python 기초] 1. 파이썬 설치하기 (0) | 2020.11.14 |