python 언어 특징.
- 인터프리터 언어
전통적인 프로그래밍 언어는 이 과정을 거침.
프로그래밍 언어 => 기계어
컴파일해야됨!
소스코드 => 프로그램
여기서 인터프리터 언어?
소스코드를 첫번째 줄부터 하나씩 실행함.
인터프리터 언어 | 컴파일 언어 | |
실행속도 | 상대적으로 느림. 한줄씩 실행하기 때문 | 프로그램으로 컴파일되는 시간이 걸리지만 컴파일이 완료된 프로그램은 속도빠름. |
스크립트 | 가능 | 불가능 |
==> 해커입장에선 스크립트로 편하게 작성하면 최고!! 그래서 파이썬 많이씀.
*파이썬에서 주석
한 줄 ==> # 을 사용.
여러줄 ==> """ """ (큰따옴표 3개 사용)
입출력
print()
print 에서 문자열을 연결해서 사용할 때
1. ',' ==> 띄어쓰기 적용
2. '+' ==> 띄어쓰기 적용X
.format()
print(" {} {} ").format(1,2) ==> 인덱스 입력 없으면 앞에서부터 순서대로.
>>> 1 2
print(" {1} {0} ").format(1,2)
>>> 2 1
f-string
print(f'(the value is {10 + 2}.)')
>>> the value is 12
- format
1. {@@@:.2f} => 소숫점 2자리까지 반올림.
2. {@@@:, .3f} ==> ,은 $달러 표기법 3자리씩 자름.
3. {@@@: %} ==> 소숫점 6자리까지 나옴. float이기 때문.
{@@@:.0%} ==> 소숫점 없이 출력
4. {@@@:e} ==> 과학적 표기법(scientific notation)
{@@@:.2e} ==> 소숫점 2자리까지 과학적표기 ㄱㄱ.
5. {@@@:d} ==> 정수형 출력
6. < , > ,^ ==> 왼쪽, 오른쪽, 중앙으로 맞춰서 출력. (뒤에 숫자는 칸수 공간을 의미)
input()
==> input은 기본적으로 스트링으로 입력받음.
==> 값을 바꾸려면 int, float 등 타입을 바꿔줘야함.
변수
[변수명] = 데이터
==> 데이터를 해당 변수에 넣어라!
***중요
파이썬은 변수는 symbolic name 즉, 객체에 대한 포인터 또는 참조를 의미한다.
==> 따라서 a = 300 이라는 변수가 선언되면?
==> a는 해당 데이터의 주소를 갖고 300의 포인터처럼 동작한다!
==>> 만약 여기서 b=a라는 변수가 선언되면?
==>> 새로운 데이터를 만드는게 아닌 a와 b는 같은 300을 참조하게 된다!
==>>> 여기서 b=200으로 바꾸면?
==>>> b는 200이 저장된 주소를 갖고 데이터를 참조한다. 즉, a가 참조하는 300은 변하지 않음!
연산자
1.산술 연산자
2.대입 연산자
3.비교 연산자
4.논리 연산자
데이터 타입
type()으로 확인.
파이썬에는 Numeric (int , float, complex), String, Boolean, Set, Dictionary
데이터 타입은 int(), float(), str(), char() 등 바꿀 데이터를 인자로 넣어서 사용한다.
boolean 타입을 만든 이유. ==> 가독성도 안좋고 1,0 정수타입과 구분하기위해.
리스트(LIST)
튜플이란게 있긴한데 잘안씀. () 소괄호로 묶음.
Dictionary 사전
key - value 구조.
data = { key : value, ...}
print(data[key])
>>>value
데이터 추가할때는 data[key1] = value1 (수정도 동일)
제거할때는 del(data[key1])
조건문
if(조건):
명령줄...
elif(조건):
명령줄...
else:
명령줄...
===> INDENT 코드. 블럭으로 묶는다고 생각하면됨.
***예외 처리
try:
오류가 생길 수 있는 명령문..
except 오류명:
오류 발생시 수행하는 명령.
exit() ==> 프로그램 강제 종료.
반복문
for 카운터 변수 in 대입할 데이터가 저장된 리스트:
반복 실행할 명령...
*range => 기본적으로 list임.
range(10) ==> 0~9까지
range(1,11) ==> 1~ 10까지
while(조건):
반복 실행할 명령...
여기서 중요한거!
break ==> 반복문 종료
continue ==> 해당 명령까지 수행후 다시 조건으로 돌아감.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
함수(Function)
1) 반복되는 코드를 쓰지 않기 위해!
2) 코드 가독성을 위해!
3) 다른사람들이 만든 함수를 이용할 수 있다! (ex. print, input 등등 도 함수임!)
함수의 기본
함수명( 전달인자(=argument) ) ==> 결과를 반환
파이썬에서 함수
def 함수명( 전달인자 ):
return 반환값
***중요***
1. 함수 위치는 앞에서 미리 정의 되어야 사용가능! 즉, 정의 먼저. 호출은 뒤에서.
2. 만약 함수에서 함수를 부르면 순서에 관계없이 전체 스크립트를 확인.
즉, main함수를 정의하면 함수를 뒤에서 정의해도 상관없음.
라이브러리.
import 모듈명
모듈명.묘둘함수() ==> 이렇게 모듈에 있는 함수 사용가능!
좀더 쉽게 하고싶다!
import 모듈명 as 모
모.모듈함수() ==> 모듈명을 짧게 내맘대로 지정가능!
from 모듈명 import 함수
함수() ==> 이렇게 모듈명을 생략하고 함수만 사용가능!
from 모듈명 import *
==> *을 사용하면 모듈 아래에 있는 모든 함수 모듈명 생략하고 사용가능!