파이썬 소개 및 개발 환경 구성, 기초학습
- 파이썬 소개
1. 특징
- 가독성 -> 문법이 간결 & 들여쓰기
- 풍부한 라이브러리 -> 확장성이 좋음
- 접착성 -> C로 구현된 모듈을 쉽게 사용가능
- 유니코드 -> 문자열이 모두 유니코드
- 동적 타이핑 -> Interpreted Language
- 플랫폼 립적 언어 -> 모든 OS에서 동일하게 작용
2. 장점
- 사용이 쉽다
- 빠른 개발 속도
- 높은 확장성 및 이식성
- 활발한 생태계
3. 단점
- 느림 -> 요즘엔 많이 보완됨
- GIL(Global Interpreter Lock)
: 하나의 스레드에 모든 자원을 허락하고 나머지 스레드에 lock를 걸어 다른 스레드가 실행되지 않도록 막아버리는 기능
- 개발환경
1. PyCharm : 유료 버전이라 그런지 개발시엔 제일 유용할거 같음
2. VScode : 개발 환경을 만들기 위해서는 별도의 프로그램을 설치 해야하지만 무료이여서 접근성이 젤 좋은거 같음
3. Jupyter Notebook : 셀 단위로 run 가능해서 데이터 분석이나 혼자 독학 할때 유용한거 같음
확장자가 .ipynb인 파일을 VScode나 PyCharm에서 열면 셀단위로 사용가능 - 기초학습
1. 변수- 카멜 표기법 : 첫글자 대문자로 하지만 맨 앞에 오는 글자는 소문자 ex> totalNumber
- 스네이크 표기법 : 단어사이에 언더바로 연결 ex> total_number
- 지역 변수 : 특정 함수나 블록 내에서 정의되고 사용되는 변수 -> 해당 함수나 블록 실행 완료되면 메모리에서 제거
- 전역 변수 : 프로그램 전체에서 접근 가능한 변수 -> 프로그램이 실행되는 동안 메모리에 유지\
# 지역변수 & 전역변수
global_val = 10
def my_fun():
local_val = 5
global global_val
global_val = 25
print('local : %s / global : %s'%(local_val,global_val)) # local : 5 / global : 25
my_fun()
# print('local : %s '%(local_val)) # 에러
print('global : %s '%(global_val)) # global : 25
2. 타입
- 소수점 없으면 int, 있으면 float -> 파이썬 3에선 long타입 없어짐
- 주석 -> # : 싱글 라인 주석 / """ 주석 처리 할 내용 """ : 멀티 라인 주석 (docstring)
3. 기본 함수
- print()
- input() : 사용자가 입력할 수 있게 해줌
- len() : 문자 갯수
- str() / int() / float() : 형변환해줌
4. 코드 블록
- 들여쓰기를 기준으로 구분
- 들여쓰기 코드 블록을 시작할 때 콜론 사용
- 모든 코드 블록의 들여쓰기는 일관 되어야함
5. 기본 문법
- if / elif / else
- while -> break / continue
- for -> "for 변수 in 리스트/튜플/문자열 :" 형태
6. 함수
- def를 이용하여 함수 선의
- 함수의 시작과 끝운 들여쓰기로 구분
- 시작과 끝은 명시 하지 않음
- 함수 이름 뒤에 오는 ()안에 함수로 전달하는 파라미터를 적음
def grade(score):
if score>=90 and score<=100:
return 'A'
elif score>=80 :
return 'B'
else :
return 'C'
- return : 함수를 종료하고 해당 함수를 호출한 곳으로 되돌아감 -> 다중 값 리턴 가능
# 다중 return
def swap (a,b):
return b,a
print(swap(3,15))
7. 파라미터
- call by reference : 전달되는 변수가 값이 아닌 객체의 참조를 복사 -> 추후 자세히 설명
- 종류
# 위치기반 파라미터 : 함수를 호출할 때 기본 파라미터 위치에 바로 전달
def print_num(a, b, c):
print(a, b, c)
print_num(10, 20, 30) # 10 20 30 -> 변수를 넣은 순서대로 출력됨
# 키워드 파라미터 : 함수를 호출할 때 인자의 값 뿐만 아니라 그 이름까지 명시적으로 지정해서 전달
def personal_info(name, age, gender):
print(f"이름 : {name} / 나이 : {age} / 성별 : {gender}")
personal_info(name = "홍길동", age = "30", gender = "남자") # 이름 : 홍길동 / 나이 : 30 / 성별 : 남자
# 튜플 가변 파라미터 (*args) : 여러 개의 인수를 듀플로 받음
def var_param(*args):
print(f'result : {args} / type : {type(args)}')
var_param(1,2,3,4,5) # result : (1, 2, 3, 4, 5) / type : <class 'tuple'>
var_param('hi','hello','bye') # result : ('hi', 'hello', 'bye') / type : <class 'tuple'>
# 딕셔너리 가변 파라미터 (**kwargs) : 키워드 인수를 딕셔너리로 받음
def var_param(**kwargs):
for i,v in kwargs.items():
print(f'result : ({i},{v}) / type : {type(kwargs)}')
var_param(a=1, b=2, c=3, d=4, e=5) # result : (a,1) / type : <class 'dict'> ~~
var_param(a='hi', b='hello', c='bye') # result : (a,hi) / type : <class 'dict'>
8. 관계
- 함수 => 모듈 => 패키지 => 라이브러리
- 모듈 : 프로그램의 기능 단위
- 패키지 : 스크립트를 디렉터리로 구분해 놓은 것 -> cmd에 "pip install 모듈명" 형태로 설치
- from & import
-> from : 모듈 안의 특정 함수만 사용하고 싶을때 이용 "from 모듈명 import 함수 형태"
-> import : 모듈 전체 함수 가져옴 "import 함수 형태"
* 함수 사용시 import 일땐 모듈.함수명() / from ~ import 사용시엔 함수명()으로 사용
'rookies > 애플리케이션' 카테고리의 다른 글
sk shieldus rookies 16기 클라우드기반 스마트 융합보안 (인프라를 위한 파이썬 6일차) (0) | 2023.11.03 |
---|---|
sk shieldus rookies 16기 클라우드기반 스마트 융합보안 (인프라를 위한 파이썬 5일차) (0) | 2023.11.03 |
sk shieldus rookies 16기 클라우드기반 스마트 융합보안 (인프라를 위한 파이썬 4일차) (1) | 2023.11.02 |
sk shieldus rookies 16기 클라우드기반 스마트 융합보안 (인프라를 위한 파이썬 3일차) (1) | 2023.11.02 |
sk shieldus rookies 16기 클라우드기반 스마트 융합보안 (인프라를 위한 파이썬 2일차) (0) | 2023.11.02 |