-간결한 코드, 코드 가독성이 좋다
-웹(Django), 대용량 데이터 처리, 머신러닝 등에 사용된다
-android app 개발, 컴퓨터 응용프로그램에는 활용하기 어렵다
-CLI : 콘솔로 입력하는 방식
-GUI : 그림, 이미지로 보여지는 방식, 정보의 양이 많다
IDE(편집 프로그램) for Python
-IDLE : 콘솔 창으로 코딩
-R Studio
-PyCharm, Spyder : 파이썬만을 위한 편집기
-Jupyter Notebook, Jupyter lab : 웹브라우저로 코딩
-Colab(Colaboratory) : 구글서버 사용, 핸드폰으로도 코딩이 가능하다
Jupyter lab 실행
① window키 + R 실행, 'cmd' 입력
② pip install numpy pandas matplotlib 입력
③ pip list 입력
④ pip install jupyterlab 입력
⑤ jupyter lab 입력
주석표시
-한 줄 주석표시 : #한 줄
-여러줄 주석표시 : """ 여러줄 """
들여쓰기 (indent)
-가독성을 위한 들여쓰기
-if, for, class, def 의 끝에는 무조건 ':'을 넣어야 한다
-같은 블록 내에서는 들여쓰기 크기가 같아야 한다
-조금이라도 들여쓰기의 크기가 다르면 코드가 실행되지 않는다
-R 언어에서의 'library()'와 같은 기능
*예)
루트를 의미하는 함수 sqrt()를 jupyter에서 실행하면 에러가 뜬다.
-> 아직 파이썬에서 정의가 되지 않은 상태이기 때문에
이때 "import ___ " 를 실행해준다.
>>> import math
>>> math.sqrt(4) #앞에 패키지의 이름을 붙여준다(일종의 출처 표시)
2.0
>>> import math as m
>>> m.sqrt(4) #보다 더 간략하게 입력할 수 있다
2.0
>>> from math import sqrt
>>> sqrt(9) #sqrt()만 쓸 수 있게 할 수도 있다
3.0
>>> sqrt(15)
3.872983346207417
#소숫점 자릿수를 내가 원하는만큼 정하고 싶지만 math 패키지로는 불가능하다
#sqrt()를 정의할 수 있는 다른 패키지를 실행한다
>>> import numpy as np
>>> np.sqrt(9)
3.0
>>> np.pi
3.141592653589793
>>> math.pi
3.141592653589793
#그냥 pi로 입력하면 실행되지 않는다. np.pi로 입력해야 실행된다
>>> import matplotlib.pyplot as plt
>>> np.linspace(1, 10, 10) #1부터 10 사이에 등간격으로 10개의 숫자를 넣어라
array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])
>>> np.linspace(1, 10, 3)
array([ 1. , 5.5, 10. ])
*예1) 0부터 2파이(360도)까지 100개의 숫자를 sin 그래프로
>>> x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
>>> plt.plot(x,y)
*예2) 0부터 2파이(360도)까지 100개의 숫자를 cos 그래프로
>>> x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.cos(x))
*예3) sin, cos 그래프 함께 나타내기
>>> x = np.linspace(0, 2*np.pi, 100)
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x)) #함께 나타내야하니까 하나의 셀 안에 함께 입력한다
-정수(integer) : int
-실수(float) : float (= 소수)
>>> a = 3
a
3
>>> type(a)
int
>>> b = 3.0
b
3.0
>>> type(b)
float
#int()에 실수를 넣으면 어떻게 출력될까
>>> int(3.1)
int(3.9)
3 #모두 3으로 출력된다
#거듭제곱 : **
>>> 2**10
1024
#나누기 : //, %
>>> 11//3
3 #//는 '몫'만 출력
>>> 11%3
2 #%는 '나머지'만 출력
#int형과 float형을 더한 데이터의 타입은?
>>> c = 1 + 3.0
c
4.0 #float 형으로 출력된다 (실수가 정수보다 더 큰 개념, 정수는 실수 안에 속한다)
#반올림 : round()
>>> round(1.734)
2
>>> round(1.734, ndigits = 2) #ndigits : 소숫점 이하의 자릿수
1.73
#내림 : math.floor()
>>> import.math
math.floor(1.234)
1
#올림 : math.ceil()
>>> math.ceil(1.234)
2
#print()를 사용하여 여러줄을 한꺼번에 출력할 수도 있다
>>> print(math.floor(1.234))
print(math.ceil(1.234))
1
2
#버림 : math.trunc()
>>> math.trunc(1.234)
1
-str(), string
-문자를 입력할 때는 '' 또는 ""을 반드시 함께 입력한다
-출력값에 ''가 붙어서 나오면 -> 그 값은 문자형임을 알 수 있다
>>> "Hello"
'Hello'
>>> a = 'Hello'
a
'Hello'
>>> print(a)
Hello
#그는 나에게 "사랑해요" 라고 말했다
>>> print('그는 나에게 "사랑해요" 라고 말했다')
그는 나에게 "사랑해요" 라고 말했다
>>> type(a)
str
#a + b
>>> a = "Life is short."
b = "We need Python."
>>> a + b
'Life is short.We need Python' #더한다기 보다는, 두 문장을 '이어붙이는 것'
#a - b, a * b, a / b 는 모두 error가 뜬다
#a * 숫자 : 해당 문자를 숫자만큼 반복해서 출력
>>> a * 3
'Life is short.Life is short.Life is short.'
>>> print("-" * 20)
print("커피가 나왔습니다")
print("-" * 20)
--------------------
커피가 나왔습니다
--------------------
#upper() : 문자 전체를 대문자로
>>> a = "Hello"
'Hello'
>>> a.upper()
'HELLO'
#lower() : 문자 전체를 소문자로
>>> a.lower()
'hello'
#capitalize() : 문장의 첫글자만 대문자로
>>> a.capitalize()
'Hello'
#title() : 문장 내 각 단어의 첫글자를 대문자로
>>> b = "good morning"
b.title()
'Good Morning'
#count()
>>> b.count('n')
b.count('o')
b.count('oo') #argument : 인수, 인자 / parameter : 매개변수
1
#len() : 문자열의 길이(length)
>>> len(b)
12
#strip() : 문자열 처리; 빈칸 제거
>>> c = " good morning "
c.strip()
'good morning'
>>> print(c)
good morning
>>> c.rstrip() #오른쪽 빈칸만 제거
c.lstrip() #왼쪽 빈칸만 제거
#split() : 괄호 안에 있는 것을 기준으로 문자열 분리
>>> c = " good morning "
c.split()
['good', 'morning']
>>> d = " good, morning, hello "
d.split(',')
[' good', ' morning', ' hello ']
#join() : 문자 이어붙이기
>>> m = ["철수", "영희", "길동"]
m
>>>"".join(m)
"-".join(m)
" - ".join(m)
'철수 - 영희 - 길동'
-bool(); boolean
>>> str(1)
'1' #숫자 1이 문자로 출력됨
>>> int('1')
1 #문자 1이 숫자로 출력됨
#모든 숫자는 문자형으로 출력할 수 있으나, 모든 문자를 숫자형으로 출력할 수는 없다
>>> 1 < 2
TRUE
>>> if 1 < 2 :
print("Yes") #조건이 참이면 'Yes' 출력
else:
print("No") #조건이 거짓이면 'No' 출력
Yes
>>> if 0 :
print("Yes")
else:
print("No") #숫자 0을 제외한 모든 숫자는 TRUE로 인식된다
No
>>> 1 < 2
bool(1 < 2)
bool(0)
False
>>> if "" :
print("Yes")
else :
print("No")
No
#""(어떤 문자도 입력하지 않은 상태)를 제외한 모든 문자열도 TRUE로 인식된다
#array() : 배열을 만들어주는 함수; np.array()
>>> np.array([1, 2, 3, 4, 5])
a = np.array([1, 2, 3, 4, 5])
a
array([1, 2, 3, 4, 5])
>>> print(a)
[1, 2, 3, 4, 5] #print() 로는 array인지 아닌지 정확히 알 수 없다
>>> a > 3
array([False, False, False, True, True])
>>> a[a > 3] #원하는 데이터 값만 출력하고 싶을 때
array([4, 5])
>>> input()
3
'3'
>>> input("숫자를 입력해 주세요")
숫자를 입력해 주세요 3
'3'
>>> a = input("입력1: ")
b = input("입력2: ")
a + b
입력1: 철수
입력2: 영희
'철수영희'
>>> a = input("입력1: ")
b = input("입력2: ")
int(a) + int(b) #문자를 숫자로 바꾼다
입력1: 11
입력2: 22
33
#숫자만 입력할 것이라면, 아예 처음부터 int로 바꿔주자
>>> a = int(input("숫자 입력: "))
b = int(input("두번째 입력: "))
a + b
숫자 입력: 10
두번째 입력: 23
33