Python 기초(1)

soyoung·2022년 12월 21일
0

Python

목록 보기
1/3

특징

  • 인터프리터
  • 동적 타이핑
  • 객체 지향 프로그래밍

장점

  • 간결하고 쉬운 문법
  • 다양한 라이브러리 제공(selenium, flask, pymssql 등)

설치 프로그램(무료)

  • Miniconda: 가상 실행 환경(Python이 자동으로 같이 설치됨)
  • Pycharm: 개발 통합 환경(...)
  • Jupyter: 개발 통합 환경(cell 단위 실행 및 결과 확인)

Colab

  • 구글에서 제공하는 웹형 Python 개발 환경

Miniconda

  • 가상 실행 환경으로 base가 기본 가상환경
  • 가상 실행 환경이 필요한 이유:
    ex) 각각의 버전에 맞춰 개발 구현을 위한 가상 환경
    - pandas: 1.0.0, numpy: 2.1.0, selenium: 1.3.4
    - pandas: 1.0.1, numpy: 1.1.1, tensorflow: 1.5.5

Jupyter

Anaconda Prompt에서 jupyter 설치 방법

  pip install jupyter notebook

Anaconda Prompt에서 jupyter 구동 방법

  jupyter notebook

잘안된다면 pip 버전 업그레이드 후 재설치 필요

  python -m pip install --upgrade pip

기초 문법

print('a') #a
print('a'+'b') #ab
print('a','b') #a b
print('a'*10) #aaaaaaaaaa
print('a'+1) #TypeError: must be str, not int

print(100+5) #105
print(100-5) #95
print(100/5) #20.0
print(100*5) #500
print(100**2) #10000
print(100%3) #1

print("'hello world'") #'hello world'
print('"hello world"') #"hello world"
print('he\'s') #he's

print(len('ssssss')) #6


# \n 줄바꿈
# \t 탭

print('a \n b')
#a 
# b

-------------------------------------------------------------------------------

# 데이터 형식: 숫자형(정수/실수), 문자형 
# 데이터 데이터(자료)구조: 리스트, 딕셔너리, 튜플, 데이터프레임 

# 데이터 형식 확인 방법
type(1) #int
type(-0.02) #float

-------------------------------------------------------------------------------

# 변수.매쏘드
# 객체는 기능 + 구성요소
# 매쏘드는 객체에서 실행할 수 있는 기능

# count: 해당 문자가 문자열에 몇개 있는지 확인
# find: 문자 위치 찾기
# upper: 대문자로 변경
# lower: 소문자로 변경
# strip: 양쪽 공백 제거
# rstrip: 오른쪽 공백 제거
# lstrip: 왼쪽 공백 제거
# split : 구분자 기호로 문자 나누기

# len은 python에서 제공하는 순수 함수


a = 'asdfasdfasbbfasfd'
a.count('b') #2

a = 'python is the best'
a.find('b') #14

a = '2022-02-16'
a.split('-') #['2022', '02', '16']

-------------------------------------------------------------------------------

# 군집 자료형
## list[]: 순서O, 중복O, 수정O
## tuple(): 순서O, 중복O, 수정X ~ 속도가 빠르기에 Python Native 함수 내부에서 많이 사용
## dictionary{}: 순서X, 중복X, 수정O ~ {key: value, key2: value, ...}, 키 중복이 불가능하다.
## set{}: 순서X, 중복X, 수정O ~ 수학의 집합과 비슷한 개념

### 순서O란? 인덱스 기반 접근

-------------------------------------------------------------------------------

## list 리스트[]
a = []
print(a) #[]

a = [1,2,3]
print(a) #[1, 2, 3]

a = [[1,2,3], ['a'], 'B']
print(a) #[[1, 2, 3], ['a'], 'B']

a = [1,2,33]
b = [3,4,5]
c = [['cc','dd']]
print(a+b) #[1, 2, 33, 3, 4, 5]
print(a*3) #[1, 2, 33, 1, 2, 33, 1, 2, 33]
print(len(a)) #3
print(a+b+c) #[1, 2, 33, 3, 4, 5, ['cc', 'dd']]

# 변수.매쏘드
# append: 리스트 요소 추가하기
# extend: 리스트 확장하기
# sort: 리스트 정렬하기 (숫자,알파벳은 가능하나, None은 정렬 불가능)
# reverse: 리스트 요소 뒤집기

a = [1,2,3]
a.append(4)
print(a) #[1, 2, 3, 4]

a = [1,2,3]
a.append([4,5])
print(a) #[1, 2, 3, [4, 5]]

a = [1,2,3]
a.extend([4,5])
print(a) #[1, 2, 3, 4, 5]

a = [10,1,2,3,4]
a.sort()
print(a.sort())#None

a = [10,1,2,3,4]
a.sort()
print(a) #[1, 2, 3, 4, 10]

a = [10,1,2,3,None]
a.sort() #TypeError: '<' not supported between instances of 'NoneType' and 'int'

a = [10,1,2,3,[1,2]]
a.sort() #TypeError: '<' not supported between instances of 'list' and 'int'

a = [1,2,3,'z']
a.reverse()

a = [1,2,3,'z']
print(a.reverse()) #None

a = [1,2,3,'z']
a.reverse()
print(a) #['z', 3, 2, 1]


## 리스트 값 입력, 값 삭제, 값 카운트
a = [1,2,3,'z']
print(a) #[1, 2, 3, 'z']

a.insert(0,'A')
print(a) #['A', 1, 2, 3, 'z']

a.insert(1,'z')
print(a) #['A', 'z', 1, 2, 3, 'z']

a.remove('z')
print(a) #['A', 1, 2, 3, 'z']

a.count('A') #1

-------------------------------------------------------------------------------

## tuple 튜플()
a = (1)
type(a) #int

a = (1,)
type(a) #tuple

a = 1,
type(a) #tuple

a = 1,2,'aa','A'
type(a) #tuple
print(a) #(1, 2, 'aa', 'A')

b = a + a
print(b) #(1, 2, 'aa', 'A', 1, 2, 'aa', 'A')

b = a * a #TypeError: can't multiply sequence by non-int of type 'tuple'

a = 1,2,'aa','A'
b = a*3

print(b) #(1, 2, 'aa', 'A', 1, 2, 'aa', 'A', 1, 2, 'aa', 'A')
len(b) #12

-------------------------------------------------------------------------------

## dictionary 닥셔너리{}
dic = {'name': '소영', 'age': 93, 'birth': 93}
type(dic) # dict
print(dic) #{'name': '소영', 'age': 93, 'birth': 93}

dic = [{'name': '소영', 'age': 93, 'birth': 93}]
type(dic) #list
print(dic) #[{'name': '소영', 'age': 93, 'birth': 93}]

dic = {'name': '소영', 'age': 93, 'birth': 93}
print(dic['name']) #소영
type(print(dic['name'])) #NoneType

dic['address'] = '마포구 상암동'
print(dic) #{'name': '소영', 'age': 93, 'birth': 93, 'address': '마포구 상암동'}

del dic['age']
print(dic) #{'name': '소영', 'birth': 93, 'address': '마포구 상암동'}


# 딕셔너리{} 함수
# 변수.매쏘드
print(dic.keys()) #dict_keys(['name', 'birth', 'address'])
print(dic.values()) #dict_values(['소영', 93, '마포구 상암동'])
print(dic.items()) #dict_items([('name', '소영'), ('birth', 93), ('address', '마포구 상암동')])

-------------------------------------------------------------------------------

# Bool
## True 참
## False 거짓

1 == 1 #True
1 != 1 #False

# 자료형의 참과 거짓
a = 'python'
b = ''
print(bool(a)) #True
print(bool(b)) #False

a = 1254
b = -1254
c = 0
print(bool(a)) #True
print(bool(b)) #True
print(bool(c)) #False

참고자료

https://velog.io/@yejin20/Python-%ED%95%A8%EC%88%98%EC%99%80-%EB%A9%94%EC%86%8C%EB%93%9C%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

https://artist-developer.tistory.com/22

0개의 댓글