>>> 1 - 2
-1
>>> 4 * 5
20
>>> 7 / 5![](https://velog.velcdn.com/images%2Fkyj93790%2Fpost%2F02d41013-8dce-4e03-8124-f75790c63603%2Fimage.png)![](https://velog.velcdn.com/images%2Fkyj93790%2Fpost%2F8d75637f-32b3-4d95-bffc-a2766d004bff%2Fimage.png)![](https://velog.velcdn.com/images%2Fkyj93790%2Fpost%2F57449729-55dd-4e36-95a7-ade7638bc1c0%2Fimage.png)
1.4
>>> 3 ** 2 # 거듭제곱
9
자료형 : 데이터의 성질을 나타내는 것
ex) 정수, 실수, 문자열 등
파이썬에서는 type() 함수로 특정 데이터의 자료형을 알아볼 수 있음.
>>> type(10)
<class 'int'>
>>> type(2.718)
<class 'float'>
>>> type("hello")
<class 'str'>
파이썬은 동적 언어 ! 즉, 변수의 자료형을 상황에 맞게 자동으로 결정한다.
>>> x = 10 # 초기화
>>> print(x) # x값 출력
10
>>> x = 100 # 변수에 값 대입
>>> print(X)
100
>>> y = 3.14
>>> x * y
314.0
>>> type(x * y)
<class 'float'>
인덱스와 슬라이싱(slicing) 기법을 통해 원하는 원소에 접근할 수 있다.
>>> a = [1, 2, 3, 4, 5]
>>> print(a)
[1, 2, 3, 4, 5]
>>> len(a) # 리스트 길이 출력
5
>>> a[0]
1
>>> a[4]
5
>>> a[4] = 99
>>> print(a)
[1, 2, 3, 4, 99]
# slicing
>> a[0:2] # 인덱스 0부터 2까지 얻기(2번째는 포함하지 않음)
[1, 2]
>>> a[1:] # 인덱스 1부터 끝까지 얻기
[2, 3, 4, 99]
>>> a[:3] # 처음부터 인덱스 3까지 얻기(3번째는 포함하지 않음)
[1, 2, 3]
>>> a[:-1] # 처음부터 마지막 원소의 1개 앞까지 얻기
[1, 2, 3, 4]
>>> a[:-2] # 처음부터 마지막 원소의 2개 앞까지 얻기
[1, 2, 3]
딕셔너리는 키(key)와 값(value)를 한쌍으로 저장한다.
>>> me = ['height':180] # 딕셔너리 생성
>>> me['height'] # 원소 접근
162
>>> me['weight'] = 70 # 새 원소 추가
>>> print(me)
{'weight': 70, 'height': 180}
bool이라는 자료형은 True(참)와 False(거짓)이라는 두 값 중 하나를 취한다.
and, or, not 연산자를 사용할 수 있음.
>>> hungry = True
>>> sleepy = False
>>> type(hungry)
<class 'bool'>
>>> not hungry
False
>>> hungry and sleepy
False
>>> hungry or sleepy
True
조건에 따른 처리는 if/else문 사용
>>> hungry = True
>>> if hungry:
... print("I'm hungry")
...
I'm hungry
>>> hungry = False
>>> if hungry:
... print("I'm hungry")
... else:
... print("I'm not hungry")
... print("I'm sleepy")
...
I'm not hungry
I'm sleepy
>>> for i in[1, 2, 3]:
... print(i)
...
1
2
3
특정 기능을 수행하는 일련의 명령들을 묶어 하나의 함수로 정의
>>> def hello:
... print("Hello World!")
...
>>> hello()
Hello World!
함수는 인자를 취할 수도 있다.
>>> def hello(object):
... print("Hello " + object + "!")
...
>>> hello("cat")
Hello cat!
개발자가 직접 클래스를 정의하면 독자적인 자료형을 만들 수 있다.
클래스에는 그 클래스만의 전용 함수(메서드)와 속성을 정의할 수 있음.
class 클래스 명:
def __init__(self, 인수, ...): # 생성자
...
def 메서드 명 1(self, 인수, ...): # 메서드 1
...
def 메서드 명 2(self, 인수, ...): # 메서드 2
...
_ _init_ _이라는 메서드는 클래스를 초기화하는 방법을 정의; 이 메서드를 생성자(constructor)라고 하며, 클래스의 인스턴스가 만들어질 때 한 번만 불림.
파이썬에서는 메서드의 첫 번째 인수로 자신(자신의 인스턴스)를 나타내는 self를 명시적으로 쓰는 것이 특징.
예시)
class Man:
def __init__(self, name):
self.name = name
print("Initialized!")
def hello(self):
print("Hello " + self.name + "!")
def goodbye(self):
print("Good-bye " + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()
$ python man.py
Initialized!
Hello David!
Good-bye David!
넘파이는 외부 라이브러리(표준 파이썬에는 포함되지 않음)
import numpy as np
위와 같이 import 문을 통해 라이브러리를 가져와야 함.
이 때, np라는 이름으로 가져옴으로써 앞으로 넘파이 메소드들을 np를 통해 참조할 수 있도록 함.
>>> x = np.array([1.0, 2.0, 3.0])
>>> print(X)
[1. 2. 3.]
>>> type(X)
<class 'numpy.ndarray'>
>>> x = np.array([1.0, 2.0, 3.0])
>>> y = np.array([2.0, 4.0, 6.0])
>>> x + y
array([ 3., 6., 9.])
>>> x - y
array([ -1., -2., -3.])
>>> x * y
array([2., 8., 18.])
>>> x / y
array([ 0.5, 0.5, 0.5])
matplotlab은 그래프를 그려주는 라이브러리
import numpy as np
import matplotlib.pyplot as plt
# 데이터 준비
x = np.arange(0, 6, 0.1) # 0에서 6까지 0.1 간격으로 생성
y = np.sin(x)
# 그래프 그리기
plt.plot(x, y)
plt.show()
import numpy as np
import matplotlib.pyplot as plt
# 데이터 준비
x = np.arange(0, 6, 0.1)
y1 = np.sin(x)
y2 = np.cos(x)
# 그래프 그리기
plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle="--", label="cos") # cos 함수는 점선으로 그리기
plt.xlabel("x") # x축 이름
plt.ylabel("y") # y축 이름
plt.title('sin & cos') # 제목
plt.legend() # 범례
plt.show()