Python 기본 문법 (1)

Suhyeon Lee·2024년 9월 14일
0

시작하기 전에

Python, Pycharm 설치

Python 설치 옵션

  • Use admin privileges when installing py.exe
    • py.exe(Python 버전 3.3부터 제공되는 간단한 코드 실행기) 설치할 때 관리자 권한을 사용할 것인지 묻는 옵션
  • Add python.exe to PATH
    • 시스템 PATH 환경 변수에 python을 추가할 것인지 묻는 옵션
    • 이걸 선택하면 Python 실행파일의 전체 경로를 지정하지 않아도 모든 디렉터리의 cmd에서 Python을 실행할 수 있음

PyCharm 설치 옵션

  • Update Context Menu
    • 마우스 우클릭 시 'Open Folder as Project' 메뉴가 생기고 이를 통해 파이썬 프로젝트 폴더를 파이참에서 열 수 있음
  • Create Associations
    • 확장자가 .py인 파일과 연결
  • Update PATH Variable
    • bin 폴더를 환경 변수에 등록

가상환경(virtual environment)이란

  • 같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
  • 프로젝트별로 패키지들을 담을 공구함이라 생각하면 됨
    -프로젝트마다 필요로 하는 패키지의 버전이 다를 때 각 프로젝트마다 가상환경을 만들고 그 안에 필요한 패키지를 설치하는 것

디렉토리 관리하기

  • 파일/폴더 이름 짓기(naming) 기본 규칙
    • 폴더/파일이 어떤 내용인지 파악할 수 있게 적기
    • 파일과 폴더 이름은 영어로
    • 특수문자는 _만 사용

MISSION 1

  • 파이썬이 어떤 언어인지 검색하고, 요약해보기(300자 내외)
    • KeyWords : web development, data analysis, scientific computing, artificial intelligence, machine learning, and automation
    • 파이썬의 특성을 파악하고 내가 왜 이것을 배우면 좋은지에 대해서 기술

다양한 프로그래밍 언어 중 사람이 사용하는 언어에 가까운 언어를 하이레벨 언어라고 하는데, 파이썬은 하이레벨 언어 가운데서도 비전공자가 가장 쉽게 접근할 수 있을 정도로 이해하기 쉽고 직관적인 언어라 배우기도 쉽다는 장점이 있다.
예를 들어 다른 언어는 {}나 <> 같은 괄호로 코드 블록의 시작과 끝을 알리고 자동으로 들여쓰기(indentation)를 지원하지 않아 읽기가 힘든데 파이썬은 함수나 조건문을 선언하면 자동으로 코드가 들여쓰기가 되어 사용자가 읽기 편하게 해 준다. 또, 다른 언어들과 달리 변수 선언과 변수에 오는 값을 입력할 때 데이터 타입을 미리 지정해야 하는 것도 없고 기초 지식 없이도 어느 정도 내용을 이해할 수 있을 정도로 코드가 사람의 언어에 가깝게 작성되어 있다.
또 파이썬은 대량의 데이터를 빠르게 처리할 수 있다는 장점이 있다. 데이터 분석 측면에서 일반적인 수준의 데이터 분석은 엑셀로 충분히 처리할 수 있지만 지속적으로 발생하는 대량의 데이터를 처리할 때에는 엑셀만으로는 부족하다. 이 때 파이썬을 사용하면 엑셀과 비슷한 수식 계산, 함수, 그래프 등의 시각화뿐만 아니라 향후 예측까지 가능하고 반복되는 작업은 프로그래밍으로 처리할 수 있고 머신러닝, 딥려닝 등 다양한 분석이 가능하며 데이터 호환성도 좋아 분석 결과를 공유할 때도 좋다.
마지막으로 파이썬은 다양한 라이브러리를 지원하며 머신러닝, 딥려닝과 관련한 알고리즘을 불러와 적용해 실행하기만 하면 되서 편리하다.
위와 같은 이유로 좋은 데이터 분석가가 되기 위해서 파이썬을 배우면 좋다고 생각한다.

기본 데이터 유형

숫자형(numbers)

  • 숫자 형태를 가진 자료형
    • 정수형(class 'int')
    • 실수형(class 'float')

사칙연산

x = 2
y = 4

print(x+y) # 6

print(x-y) # -2

print(x*y) # 8

print(x/y) # 0.5

print(x**y) # 제곱 16

# 나눗셈 몫, 나머지
print(x//y) # 0

print(x%y) # 2

문자열(string)과 문자열 연산

문자열(class 'str')

  • 문자, 단어들의 '집합'
  • 문자열 안에서 따옴표, 쌍따옴표 사용
print("문자열은 문자, 단어들의 '집합'입니다.")
# 문자열은 문자, 단어들의 '집합'입니다.

print('문자열은 문자, 단어들의 "집합"입니다.')
# 문자열은 문자, 단어들의 "집합"입니다.
  • 이스케이프 문자 \\
print("\\'이스케이프\\"")
# '이스케이프"

print("\\'이스케이프\\"\\\\")
# '이스케이프"\\
  • 줄바꿈
print("백문이불여일견\\n백견이불여일타")
# 백문이불여일견
# 백견이불여일타
  • 이스케이프 문자 무시
print(r"백문이불여일견\\n백견이불여일타")
# "백문이불여일견\\n백견이불여일타"

문자열 연산

hi = "안녕"

more_politely = "하세요"

print(hi + more_politely) # 안녕하세요

print(hi*10) # 안녕안녕안녕안녕안녕안녕안녕안녕안녕안녕

# 문자열의 길이
print(len(hi)) # 2

# 문자열의 인덱싱과 슬라이싱
print(hi[0]) # 안
print(hi[-1]) # 녕
print(more_politely[:2]) # 하세
print(more_politely[2]) # 요

# 문자열 바꾸기
# 문자열.replace(타겟문자, 바꿀문자)
print(more_politely.replace("하세요", "요세하")) # 요세하

# 문자열 포멧팅
age = 10

print("%s%s, 저는 누구누구입니다" %(hi, more_politely))

print("%s%s, 저는 누구누구입니다. %d살이에요" %(hi, more_politely, age))

# format 함수를 이용한 포멧팅
print("{0}{1}, 저는 누구누구입니다".format(hi, more_politely))

# f-string
print(f"{hi}{more_politely}, 저는 누구누구입니다.")

# 소수점 표현 f-string
pi = 3.1415926535

# f"{실수:몇번째자리까지}" 
print(f"{pi:0.2f}") # 소수점 3번째 자리에서 반올림됩니다. 3.14
print(f"{pi:0.3f}") # 소수점 4번째 자리에서 반올림됩니다. 3.142

# 문자열 관련 함수들
string = "aabbaeda"

# 개수 세기
print(string.count("a")) # 4

# 위치 찾기
print(string.find("e")) # 5
print(string.find("b")) # 찾는 문자가 여러개라면 가장 첫번째자리를 반환합니다. 2
print(string.find("z")) # -1 존재하지 않으면 -1을 반환합니다.

# index라는 함수도 위치를 찾는데 사용되나
# 차이로는 존재하지 않을시 에러를 발생시킵니다.
print(string.index("z")) # ValueError: substring not found

# 문자열 삽입 
print(".".join(string)) # 각각 문자 사이에 "."을 삽입 a.a.b.b.a.e.d.a

# 대문자 소문자 변환
print(string.upper()) # AABBAEDA
print("AABBAEDA".lower()) # aabbaeda

# 공백 지우기
blank_string = "    blank string   "

# 오른쪽 공백 지우기
print(blank_string.rstrip()) # "   blank string"
# 왼쪽 공백 지우기
print(blank_string.lstrip()) # "blank string   "
# 양쪽 공백 지우기
print(blank_string.strip()) # "blank string"

# 문자열 나누기
split_string = "this : split string"

# split(기준으로나눌문자)
# split() 공백을 기준으로 나누겠다.
# split(":") : 을 기준으로 나누겠다
print(split_string.split()) # ['this', ':', 'split', 'string']
print(split_string.split(":")) # ['this ', ' split string']
profile
2 B R 0 2 B

0개의 댓글