Python basic
python 기초 개념 및 문법
I. Python?
- 다른 언어보다 간결하다.
- 생산성이 높다.
- 다양한 라이브러리
(1) 저장
1. 개념
파이썬은 dynamic typing language -> 자료형을 정의할 필요가 없다!
-
숫자
-
글자
-
Boolean
파이썬은 {}를 쓰지 않고 : 와 indentation을 사용
- indentation은 4 space 기준(1 tab)
변수 활용하기
greeting = "안녕하십니까!!" #변수에 데이터가 저장, 변경이 편하다
print("greeting")
print("greeting")
print("greeting")
print("greeting")
print("greeting")
변수를 저장하면 변경이 편하다
리스트 저장
menu = ["짜장면", "카레", "돈가스"]
박스를 여러개 만들어 이어 붙인 자료형
딕셔너리 저장
dust = {"강남구" : 10, "서초구" : 20}
자료 박스에 이름을 붙인 자료형
반복문 for in(iteration)
dust = [59, 24, 102]
for i in dust :
print(i)
#딱 3번만 돌면서 요소를 1번씩만 접근
#i는 해당 하는 값을 저장
iteration은 정해진 범위 안에서만 한번씩 반복
while은 조건을 충족시킬 동안 계속 반복
(2) 기본 개념
1. keyword
- keyword.kwlist : python에서 기본적으로 사용되는 식별자를 출력
2. 식별자
- 임의로 정한 이름에 변수를 할당
- 내장 함수를 식별자로 사용하면 안된다
- del ‘변수’ : 혹여나 사용했을 경우 메모리 할당을 해제
3. 내장 함수
- str(i) : i를 string형식으로 변환
- type(i) : i의 자료형 출력
- id(i) : i의 메모리 주소를 출력
이 외에도 여러가지 내장함수가 존재
4. 인코딩 선언
- *# -- coding: <인코딩 이름=""> -\*-** : python parser가 알아서 인코딩 수행인코딩>
5. 가독성
- ””” “”“ : 모두 주석처리
- ‘함수’__doc__ : 함수의 주석만 출력
- **\ **: 코드를 개행해서 작성 가능
6. 변수 할당
- a = b = 1 : 동시 할당
- x, y = 1, 2 : 부분 할당
- swap : x, y = y, x
- 미리 구현된 함수이기 때문에 사용 가능
- 현재 컴퓨터의 메모리는 0, 1이 들어가는 칸이 64개(64 bit 체제)
- 현재 운영체제의 bit를 넘어가는 숫자는 표현이 불가
- 2^64 개의 숫자를 표현 가능
- 넘어가면 overflow 발생
- python은 arbitrary-precision arithmetic을 사용하여 이를 방지
- 0b2진수숫자 : 2진수 할당
- 0o8진수숫자 : 8진수 할당
- 0x16진수 숫자 : 16진수 할당
(3) 자료형 표현
1. 부동 소수점
- 소수점은 2진법을 통해 근사값으로 구현
- 따라서 정확한 수의 표현이 불가능 하다
- round(숫자, 반올림 수) : 반올림을 통해 정확한값 추출 가능
0.1 + 0.2 == 0.3
>> False
round(0.1) + round(0.2) == 0.3
>> True
두 수가 같은지 처리 방법
- 절대값으로 허용 오차범위 설정
- sys.float_info.epsilon으로 절대값의 허용 오차범위 설정
- math.isclose(a, b) : 두 수가 같은지(가까운지) 판별
# python 내장 모듈 불러오기
import math, sys
# 1. 절대값 사용
def isSame(a, b):
# 임의의 숫자 범위 이내
if abs(a-b) < 0.0001:
return True
return False
# 2. sys.float_info.epsilon
def isSame(a, b):
if abs(a-b) < sys.float_info.epsilon:
return True
return False
# 3. math.isclose(a,b)
def isSame(a, b):
return math.isclose(a, b)
3. 복소수 표현
- j로 허수 부분 표현
- a.real = 실수부
- a.imag = 허수부
- a.conjugate = 복소수 표현
a = 3 - 4j
4. None
- 값이 없음을 의미하는 자료형. null
III. 문자형 조작
- + : 문자열 끼리 덧셈하여 이어붙이기 가능
- f’’’ {i} ‘’‘ : i를 string과 함께 출력
- ””” “”“ : 개행 문자 없이 여러줄 출력
- ””“{변수}””“ : String interpolation 가능
- print(‘문자열’, end = ‘something’) : 뒤에 오는 print()문과 연결하여 표현
- “%s” %문자열 : 문자열을 s에 출력
- “%d” : 정수형 출력
- %(int, ‘string’)으로 2개 출력
- %% : ‘%’ 출력
- %10s : 앞에서 10칸 띄고 출력
- %-10s : 뒤에서 10칸 띄고 출력
- %0.5f : 소수점 5자리 까지 반올림 해서 출력
- f”{변수}” : 변수를 출력
- fstring안에서 연산도 가능
- ‘some’*50 : 곱셈기호 사용해서 여러번도 출력 가능
- .count(‘a’) : 문자열에서 ‘a’의 갯수를 출력
- .find(‘a’) : 최초의 ‘a’가 몇번째에 있는지 출력
- .upper() : 소문자를 대문자로 출력
print("good "*5)
>> good good good good good
print("good ", end="language")
>> good language
1. Slicing
- 문자열의 원하는 부분만 출력
- str[i] : i번째 문자 출력. 음수도 가능. 0을 첫번째 문자 기준으로.
- str[i:] : i 부터 문자열 끝까지
- str[:i] : 문자열 처음부터 i까지
2. datetime
- 날짜 관련 라이브러리
- datetime.datetime.now() : 현재 날짜 시간 출력
- f’오늘은 {today:%y} 년 {today:%m}월 {today:%d}일 {today:%A}’ 으로도 표현 가능
III. 연산자
1. 기본 연산자
- divmod(5, 2)** : 몫과 나머지 출력
- 정수 : 0이 아니면 모두 참
- 정수의 and, or 연산자 : 연산이 참이면 앞 숫자, 거짓이면 뒷 숫자를 반환
2. 기타 연산자
- Concatenation : 숫자가 아닌 자료형을 ’+’ 연산자로 합칠 수 있다
- list나 string을 합칠수도 있다
- Containment test : in 연산자로 속해있는지 여부를 판단할 수 있다
- 문장 판단도 가능
- Identity : is 연산자로 동일한 object인지 판달할 수 있다
- is : 객체가 저장된 reference에 접근하여 동일한 값인지 판단
3. 연산자 우선순위
()을 통한 grouping- Slicing
- Indexing
- 제곱연산자 **
- 단항연산자 +, - (음수/양수 부호)
- 산술연산자 *, /, %
- 산술연산자 +, -
- 비교연산자,
in,is notandor
IV. 기초 형변환
1. 암시적 형변환
- 연산에 따라 python 내부에서 자동으로 자료형 변환이 발생
- bool, int = int
True + 3
>> 4
- int, float = float
3 + 4.5
>> 7.5
- int, complex = complex
3 + (3 + 4j)
>> 6 + 4j
2. 명시적 형변환
- 사용자가 직접 자료형 변환을 명시
int(3.5)
# 데이터를 버리기 때문에 내림처리
>> 3