네트워크 해킹 공부 전에
파이썬 공부를 시작한다.
* 파이썬은 인터프리터 언어이다.
+ 프로그램 실행 방법에 따라 프로그램언어를 크게 두가지로 나눌 수 있다.
1. 컴파일 언어
2. 인터프리터 언어
컴파일 언어
- 번역기가 필요한 언어이다. 컴파일(번역)을 하고 나서야 .exe 실행파일이 생기고 프로그램을 실행 시킬 수 있다. (ex. C, C++, Java, ASM, ...)
인터프리터 언어
- 컴파일 언어와는 다르게 컴파일이 필요없다. 다만 실행기가 필요하다. 실행을 하기 위해서는 실행기가 필요한다. 이 실행기는 코드를 한 줄 한 줄 읽으면서 해석하면서 실행한다. 보통 대형 프로그램에서는 적합하지 않은데 이유는 안전성이 떨어지기 때문이다. 한 줄 한 줄 해석하기 때문에 뒤에 어떤 영향이 있는지 고려가 잘 안되기 때문에 안전성이 떨어진다. 하지만 작은 프로그램들에서는 강력한 언어이다. 바로바로 코드를 실행시킬 수 있고 많은 API를 통해 다양한 일을 할 수 있기 때문이다.
(파이썬 IDLE 화면 )
>>> 표시는 프롬프트다. 이 프롬프트에 입력을 하면 바로바로 대답이 온다.
(대화식언어. 파이썬)
* 파이썬의 데이터 타입
- 정수형(음수, 0, 양수), 실수형, 문자
- 정수(10진수, 8진수, 16진수)
ex)
10(10) -> 1010(2)
-> 0o12(8) (8진수는 앞에 0을씀. 앞에 0은 8진수를 나타내는 의미)
-> 0xA(16) (16진수는 0x를 앞에씀, 앞에 0x는 16진수를 나타내는 의미)
네트워크에서는 보통 16진수의 데이터를 다룬다.
컴퓨터에서는 16진수가 다루기 쉽기 때문이다.
(다양한 데이터 타입 표현)
* 파이썬에서 사용가능한 수식.(연산자)
1. 사칙연산
그 중에 나눗셈은 기본적으로 실수형으로 표현된다. (여기서 실수연산은 정확하지 않고 어느정도의 오차가 있게 나온다. 그 이유는 세밀한 연산이 불가능 해서 근사값을 이용해 계산하기 때문이다.)
2. 그 외 연산자
**(지수연산), %(나머지연산), //(몫연산), -(부호변경)
+ 수식을 사용할 때 주의점. (우선순위)
- 좌결합 우선순위 :
- 지수연산자는 우결합 우선순위
- 연산자 우선순위.
지수연산 > 부호 > *,/,%, // > +,-
- 우선순위를 변경할 때는 () 괄호 사용.
( 그렇기 때문에 () 괄호를 쓰는 습관을 들여야한다.)
(연산자 결과 모습)
* 파이썬에서의 문자
- 문자열
- '' or "" : 작은따옴표 혹은 큰따옴표를 사용한다. 그리고 이 둘의 차이는 없다.
ex)
10 : 정수 십
'10' : 문자열 '일공' (십이라고 읽을 수 없다.)
-> 똑같은 모양이지만 하나는 숫자 십 이고 하나는 문자 일공 이다.
문자열 표시 예. 'hello, world'
출력에 작은 따옴표가 나오는데, 문자열이라는 뜻이다. (출력할 때 나오는 따옴표는 문자열이라는 뜻)
큰따옴표와 작은 따옴표는 섞어서 쓸 수 있다.
hello, "world" 이렇게 출력하고 싶으면 섞어서 써야하는데
예를 들면
'hello, "world"' 이 런식으로 쓰면 된다.
* 파이썬에서의 문자 연산자: +, *
- 문자를 더하거나, 곱할수는 없다. (즉, 문자열에서의 +, * 는 의미가 다르다.)
- + : 문자와 문자를 연결한다.
- * : 문자를 반복한다.
(문자열 표현, 문자열 연산)
* 문자를 다룰때의 주의할 점
- 빈문자와 공백문자를 구분해야한다.
- 공백문자도 문자이기 때문이다.
ex)
'' <- 빈 문자
' ' <- 공백문자 위 화면을 보면 맨 아래코드 예시를 보면 이해가 된다.
- 피연산자의 타입은 하나로 통일되어야한다.
: 만약 피연산자의 타입이 다를 경우에는 연산을 할 수 없다.
ex) 10 + '10' <- 불가능 (통일해줘야한다.)
(다른 타입의 연산은 안된다.)
타입이 다르다면 데이터 타입을 통일 시켜주면 연산이 가능하다.
타입을 맞추는 방법은 타입 변환이다.
* 타입 변환 (형변환)
- 내장 함수(built-in function)를 이용해서 타입 변환(형변환)을 한다.
-int(), str(), float() 이런 함수들이 내장 함수이다.
주의할점 : int() 로 형변환 할 때 실수에서 손실이 있을 수 있다.
ex int(12.34) -> 12
(형변환을 하여 연산을 한 경우)
위 화면을 보면 형 변환을 하였고 또 그를 이용해 연산도 가능하였다.
* expression( 표현식 )
- 지금까지 살펴본 내용들을 표현식이라고 한다. 표현식이란 연산이 가능한 문장이다.
비교하자면
expression -> (수식들) : 연산이 가능함을 뜻한다.
value -> (값) : 연산이 가능하지 않음을 뜻한다.
* 파이썬의 변수
사용 이유 : 값을 저장하는 용도로 사용된다.
- 필요할 때 꺼내서 사용한다.
- 반복적으로 사용되는 값들은 변수를 사용하여 더 효율적으로 관리하기 위해서다.
* 지정문, 할당문, 배정문 ( assignment )
- 사용 연산자 : =(equal, assign)
- 수학적 기호로는 같다라는 의미이지만 프로그래밍에서는 assignment의 의미로 사용된다.
- 우결합을 사용한다. (오른쪽에서 왼쪽으로 연산이 이루어진다.)
- 모든 연산자 중에 우선순위가 가장 낮다.
ex) (지정문)
var = 10
var = 1 + 2 + 3 -> assign 연산자와 + 연산자가 같이 사용된다. (assign 연산자가 우선순위가 가장 낮음)
var = 10 -> 10이라는 정수가 들어갔기 때문에 var가 int 형으로 설정된다.
var = 'a' -> 문자열로 설정된다.
* 재지정 : 다시 지정하는 것. 이전에 저장됬던 값은 사라진다.
- 어떠한 값이 입력됨에 따라 type이 계속 바뀔 수 있다.
(변수 사용, 지정문 사용)
* 동시 지정문
- var1 = var2 = var3 = 10
- var1, var2 = 10, 20 (파이썬에서만 볼 수 있는 문법이다.)
* 변수의 이름
- 숫자로 시작할 수 없다. (숫자 뒤에 오는건 가능하다.)
- 특수문자는 사용할 수 없다. (예외 : _ (언더바))
- 파이썬3에서는 한글 변수 가능하다.
- 예약된 문자도 사용할 수 없다. (ex. if, while, list, ...) -> 검은색으로 나오는 변수만 쓸수 있다. (보라색이나 다른 색으로 표시되는 단어는 쓸수없다.)
ex)
numOfApple = 10
num_of_apple = 10 (변수의 이름을 잘 정해야. 나중에 읽기 쉽다.)
a = 10 (이런식으로 쓰면 나중에 뭔지 모르기 쉽다.)
i, j, k, n -> 반복하는 인덱스로 많이 사용된다.
(변수 지정문)
'Programing > Python' 카테고리의 다른 글
Python - 모듈, 프로그램 작성 (0) | 2016.12.14 |
---|---|
Python - 리스트, 튜플, 문자열, 함수, 프로시져, 메소드 (0) | 2016.12.13 |
Python - 비교연산자, 흐름제어, 온도 변환 프로그램 (0) | 2016.12.10 |