식별자(Identifier)
클래스, 함수, 변수를 구분하거나 지칭하기 위해서 이름을 지정하는 것
1. 키워드를 사용 못함
2. 변수나 함수명 지을 때 특수문자는 _만 허용
3. 변수나 함수명 지을 때 숫자는 2번째 문자부터 허용
4. 변수, 함수, 클래스명 지을 때 공백 허용할 수 없음
import keyword
print(keyword.kwlist)
```
예약어 (고정된 단어)로는 식별자 고를 수 없음
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
```
식별자 규약(Identifier Convention)
1. Camel Case
클래스의 이름을 지정할 때만 사용
클래스 이름은 대문자로 시작
문자와 문자가 조합될 때 2번째 문자 첫 번째 글자는 다시 대문자
ex) CoffeeHouse (O)
ex) coffeeHouse (X)
2. snake_case
변수명과 함수명은 무조건 소문자로 시작
소문자로 시작하는 모든 이름은 snake_case 기법을 따른다.
ex) get_info(), house_name
변수와 데이터 타입
기본형
- int - 정수
- float - 실수
- bool - False, True
- str – 문자열
자료형, 값이 여러 개 있을 때 쓰는 것
- list - 리스트, 순서가 있는 값들의 집합 [ ], 값은 변경 가능 => Ordered
- tuple - 튜플, 순서가 있는 값들의 집합 ( ), 값은 변경 불가 => Ordered
- set - 순서없고 중복 안되는 값들의 집합, { } => Unique
- dic - 키와 값이 쌍으로 저장되는 값들의 집합 {'key':value} => 순서 없음, key는 중복 불가, value는 중복 가능
Type 변경하기 (Type Casting)
문자를 숫자로 변경 : int()
숫자를 문자로 변경 : str()
print(int(True)) # 1
print(int(False)) # 0
#print(int('Hello')) ValueError(변환할 수 없는 값을 변환하려 할 때 발생)
print(int('321')) # 숫자로 캐스팅 가능
print(bool(1))#True
print(bool(0))#False
print(float(77)) # 77.000000
a = "3.140"
float(a)
>> 3.14
a = "3.14O" # 숫자 0 아니고, 영문자 O
float(a)
>> ValueError: could not convert string to float: '3.14O'
문자열
인덱싱 : str[0]
슬라이싱 : str[0:1]
my_str = 'python'
print(my_str[0]) # p
print(my_str[5]) # n
print(my_str[-1]) # n
print(my_str[1:4]) # yth
print(my_str[-5:-2]) # yth
print(my_str[:]) # python
print(my_str[2:]) # thon
print(my_str[:4]) # pyth
print(my_str[-2:]) # on
#print(my_str[-4:1]) # 빈공간 출력됨
print(my_str[0:6:2]) # pto [시작점 : 끝점 : step]
print(my_str[::2]) # pto
print(my_str[-6:-1:2]) # pto
print(my_str[::-1]) # nohtyp -1스텝은 거꾸로 진행
print(my_str[::1]) # python
문자열 주요함수
- split() : 문자열을 쪼갤 때 사용
- join() : 문자열을 붙이기
- len() : 문자열 길이 구하기
- count() : 문자 개수 세기
- find() : 위치 알려주기
- index() : 위치 알려주기
- join() : 문자열 삽입
- upper() :소문자를 대문자로 바꾸기
- lower() :대문자를 소문자로 바꾸기
- replace() : 문자열 바꾸기
- strip() : 양쪽 공백 지우기
a = "Life is too short"
a.split(' ')
>> ['Life', 'is', 'too', 'short']
movies = "미나리, 경계선, 기생충, 학교"
print(movies) # 미나리, 경계선, 기생충, 학교
print(len(movies)) # 19
moviesL = movies.split(",")
print(moviesL) # ['미나리', ' 경계선', ' 기생충', ' 학교']
print(movies.split()) # ['미나리,', '경계선,', '기생충,', '학교']
# join은 str에 적용되는 함수
mov = ''.join(moviesL)
print(mov) # 미나리 경계선 기생충 학교
print(type(mov)) # <class 'str'>
a = "hobby"
a.count('b') #2
len(a) #5
a = "Life is too short"
a.index('t') # 8
# a.index('k')
# ValueError: substring not found
a = "Life is too short"
a.replace("Life", "Your leg") #Your leg is too short
연산자
- == 같다
- = 대입
- // 몫 구하기
- % 나머지 구하기
- ** 거듭제곱
e = 3
f = 3.0
print(e==f) # True
print(e!=f) # false
print(type(e)==type(f)) # false
a,b,c = 13,5,-5
print(a//b) # 몫 구하기 2
print(a%b) # 나머지 구하기 3
print(abs(c)) # 절댓값 취하기 5
# 2의 10승은?
print(2**10) # 1024
print(pow(2,10)) # 1024
객체
파이썬은 모든 변수를 객체 취급한다.
모두 객체로서 메모리가 할당된다.
a = 257
b = 257
print(id(a)) # 주소값 출력
print(id(b))
print(id(a)==id(b)) # False
print(a is b) # 객체가 서로 같지 않다. False
a = 200
b = 200
# 값 비교
print(a==b)
# 객체 비교.. is (주소값)
print(a is b) # True
a와 b 비교하는 같은 문장인데 왜 주소값을 비교했을 때 a와 b가 257일 땐 false이고, 200일 땐 true인가?
int형 변수 범위가 –5 ~ 256 사이에 있으면 메모리를 효율적으로 사용하기 위해서 이 범위에 있는 값들은 한 번만 객체 생성하고, 다른 객체 새로 생성하지 않는다고 한다!
'Python > Python 기초' 카테고리의 다른 글
[Python] 딕셔너리 자료형 (0) | 2022.03.12 |
---|---|
[Python] 튜플 자료형 (0) | 2022.03.12 |
[Python] 리스트 자료형 (0) | 2022.03.12 |
[Python] 파이썬 입문 (0) | 2022.03.12 |
[Python] 아나콘다 설치 / 주피터 노트북 사용하기 (0) | 2022.03.12 |
댓글