▶ 주석
파이썬에서 사람만 알아볼수 있도록 작성하는 부분 (보통은 해당 부분의 코드를 설명할때 사용)
기본적으로는 #을 사용
전체 줄을 바꾸고 싶을 때에는 드래그 후 command + / (맥os ), ctrl + / (윈도우)
▶들여쓰기
들여쓰기는 코드를 읽기 쉽도록 일정한 간격을 띄어서 작성하는 방법이다.
c나 java등에서는 들여쓰기를 하지 않아도 코드가 정상적으로 동작하지만 파이썬은 들여쓰기 자체가 문법이기에 들여쓰기를 하지 않으면 에러가 발생한다.
방법으로는 파이썬에서 들여쓰기 방법은 공백(스페이스) 2칸, 4칸, 탭(tab) 등이 있다.
유의할점은 공백 4칸과 탭은 시각적으로 보았을때 비슷하고 같이 사용해도 될 것 같지만 사용하다보면 에러가 발생하니 한가지만 작성하자
▶ 세미클론 ( ; )
파이썬은 구문의 끝을 줄단위로 인식한다. 그래서 c와는 다르게 ;(세미클론)을 사용하지 않지만 사용해도 문법적 에러는 발생하지 않는다. 보통은 두 구문을 한 줄에 작성할 때 사용한다.
함수, 변수, 클래스, 모듈 등의 이름을 붙여 식별할 때 사용한다.
▶협약에 의한 규칙
첫 글자로 숫자 사용 불가
예약어 사용 불가
대소문자 구분
공백 불가
영문알파벳, 숫자, _ (언더바) 로 구성
변수란 말 그대로 변할 수 있는 수이다. 어떠한 값을 저장하기 위한 수라고 생각하면 편하다.
변수는 = 을 통하여 값을 할당한다.
x = 1 ;
위에처럼 왼편에는 변수명, 오른쪽에는 값을 넣으면 된다.
변수명을 작성할 때에는 원하는 명칭으로 작성하면 되지만 다음과 같은 규칙이 존재한다.
방금 위에서 자료형이라고 하였는데 자료형은 컴퓨터가 어떠한 값인지 인식 할 수 있도록 형태를 전해주는 것이다.
예를 들어 영어 A(아스키코드로 65)를 입력하자고 하자. 그러면 컴퓨터는 이진수로 밖에 인식을 못하기 때문에 65를 이진수로 치환하여 인식한다. 그러면 영어 A와 숫자 65는 어떻게 구분할까? 바로 자료형으로 구분하게 할 수 있다.
하지만 파이썬은 자료형을 자동으로 정해준다. 하지만 우리가 강제로 정해야하는 경우도 있기 때문에 자료형을 알고 있어야한다.
뒤에 소수점이 있는 수라고 생각하면 편하지만, 조금 더 깊에 들어가면 부동소수점 이라고 한다. ->똑같은 1,2 이더라도 같은 1.2가 아 닌 1.2에 근사한 값으로 저장된다.
실수의 경우 뺼셈 시에는 오류가 발생한다. -> round() 를 통하여 반올림을 해 정리가 가능하다
문자열은 ' , " 으로 둘러싸서 표현
여려 줄로 되어있는 문자열은 """ , '''로 표현
입력받은 것들은 보통 str형태이다
list_name = [value1, value2...]
ii) 튜플 (tuple)
tuple_name = value1,value2...
tuple_name = (value1,value2...)
** iii) range
숫자의 연속
range(a,b,c) # a~b전까지 c만큼 스텝으로 출력
dic_name = {key1:value1, key2:value2...}
dic_name{key_name} = value # 요소 추가
del dic_name{key} # 요소 제거
dic_name.key() # key 리스트 생성
dic_name.value() # value 리스트 생성
dic_name.get(key값) # key로 요소 출력
i) 딕셔너리 (dictionary)
ii) 집합 (set)
set_name = {value1,value2...}
▶산술연산자
기호 | 내용 |
---|---|
+ | 더하기 |
- | 뺴기 |
* | 곱하기 |
/ | 나누기 |
// | 몫 |
% | 나머지 |
** | 제곱 |
▶비교연산자
기호 | 내용 |
---|---|
< | 미만 |
> | 초과 |
<= | 이하 |
>= | 이상 |
== | 같다 |
!= | 같지 않다 |
▶논리연산자
기호 | 내용 |
---|---|
and | 둘다 ture일 경우 true |
or | 둘중 하나라도 ture면 ture |
not | ture면 false false면 true |
파이썬이 자동으로 형을 지정하는 것을 의미함
암시적 형변환을 제외하고 나머지는 명시적 형변환
int(): string, float을 int로 변환
float(): string, int 를 float으로 변환
str(): int, float, list, tuple, dictionary를 문자열로 변환
string -> intger : 형식에 맞는 숫자만 가능
integer -> string : 모두 가능
2가지 형 변환을 한 번에 할 수 없음. ex) int('3.5')
float을 int로 형변환하면 내림 숫자가 나옴
if 조건1 :
조건 1이 참일 경우 수행할 문장
elif 조건2 :
조건 2가 참일경우 수행할 문장
else :
거짓일 경우 수행할 문장
while 조건: #기본 문장
수행할 문장
#예시
num = 1
sum = 0
while num <= 10:
sum += num
num += 1
for i in 컬렉션:
수행할 문장
def func_name(parameter1,parameter2...): # 함수정의
code
func_name(arguments1,arguments2...)
a = [[1,2],[3,4,5],6,7,[8,9]]
def flatten(data):
output =[]
for data_flatten in data:
if type(data_flatten) == list:
output+=flatten(data_flatten)
else :
output +=[data_flatten]
return output
lambda 매개변수 : 표현식
(lambda 매개변수 : 표현식 )(인자) #람다 표현식 자체를 호출
map(lambda 매개변수 : 표현식, 인자))
list(map(lambda 매개변수 : 표현식, 인자)))
class Class_name:
code
-----------
#예시
class poketmon:
def __init__(self, name, type, level):
self.name = name
self.type = type
self.level = level
def att(self):
print('{}가 공격을 했다".format(self.name))
pikachu = poketmon('pikachu', 'electricity',20)
pikachu.att()
class 클래스명:
클래스 속성 = 값
def __init__(self, *args, *kwargs):
self.인스턴스 속성 = 값
...
속성 : 객체에 생성되는 객체만의 변수를 '속성' 또는 '객체 변수'라고 한다. 인스턴스 속성과는 다르니 주의하자
메서드 : 클래스/인스턴스가 할 수 있는 행위(함수)
def를 통하여 선언.
인스턴스 메서드
클래스 메서드
메서드를 사용할 때 주의점 : 인스턴스/클래스는 인스턴스 메서드나 클래스 메서드도 사용가능하며 정적 메서드도 사용이 가능하다. 그러나 사용은 하지 말자
self는 객체의 인스턴스 그자체를 의미 -> 즉 자기 자신을 참조하라는 매개변수
클래스 내에서 정의된 self는 클래스 인스턴스이다.
위에서 메서드를 선언할때 첫번째 인자는 self라고 하였다. 하지만 항상 self일 필요는 없다. 사실 self를 선언헀을 때와 선언하지 않았을 때의 차이점은 하나이다.
인스턴스를 생성하고 인스턴스명.메서드() 냐, 클래스.메서드(인스턴스)이냐라는 차이가 발생할 뿐이다.
클래스에서 인스턴스를 생성을 하면 내장 메모리에 할당이 된다. 물론 할당이 되면 내장 메모리의 주소가 생성이 될것이다. 예를 들어 a라는 클래스에 b라는 변수에 인스턴스를 생성/할당하고 인스턴스의 주소를 4321999라고하자.
그러면 클래스 a에 대한 인스턴스는 이주소에 할당되어있고 b는 주소 4321999를 알고 있다.
자 여기까지 이해했다면 반 이상 온것이다.
그 다음부터는 self는 위에서 클래스 인스턴스라고 하였다. 그러면 self는 해당 주솟값을 알고 있으다는 의미이다. 사실 인스턴스명.메서드는() self가 주소를 알고 있기 때문에 실행이 가능한것이다.
왜냐하면 파이썬의 인터프리터가 자동으로 self를 인자로 받은 것이기 때문이다. 이를 토하여 클래스 내에 정의한 멤버에 접근할 수 있는 것이기 때문이다. 위와 같은 이유로 클래스.메서드(인스턴스)를 진행하면 실행이 되는것이다.
이런 유용한 정보를 나눠주셔서 감사합니다.