Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 백준
- eslint
- jQuery
- vscode
- 메모이제이션
- state
- 평범한배낭
- python
- Snippet
- 다이나믹프로그래밍
- COPY
- props
- Prettier
- react자동완성
- dp
- JSX
- javascript
- ReactError
- react태그
- React
- 동적계획법
- component
- 분할정복
Archives
- Today
- Total
개발새발개발
리스트, 튜플, Range, dict, set, bool, None, 연산자, 형변환, 단축평가 본문
Sequence Type
- 문자열, 리스트, 튜플, range
[ 리스트 ]
- 여러 개의 값을 순서대로 저장하는 변경 가능한 시퀀스 자료형
- 0개 이상의 객체를 포함하며 데이터 목록을 저장
- 모든 자료형 저장 가능
- 시퀀스이기 때문에 시퀀스의 특성 5가지를 모두 대입 가능!(인덱싱, 슬라이싱, 길이)
- 단계적 접근
ex_list = [1,a,2,'study',['hello', 'world','happy']]
print(ex_list[4][0]) #hello
print(ex_list[4][0][-1]) #o - 가변성을 가지고 있다
'ex_list[0] = z' 라고 하면 0번째 값이 z로 바뀜 - val1 = [1,2,3]의 뜻 : val1이 1,2,3이 저장된 집합체의 주소를 값
val2 = val1의 뜻 : val1이 가르키는 집합체를 가르킴
( 튜플 )
- 여러 개의 값을 순서대로 저장하는 변경 불가능한 시퀀스 자료형
- 모든 자료형 저장 가능
- 불변의 특성이 있어 여러개의 값을 안전하게 전달하거나 그룹화, 다중 할당할 때 사용
- 개발자가 사용하기보단 파이썬 내부 동작에서 주로 사용함 (잘안씀!)
- ※ 하나의 데이터만 저장할 땐 `tuple = (1,) ` 처럼 뒤에 ','를 넣어줘야 함
콤마 없이 1만 적으면 그냥 int 1 이 됨 - 시퀀스이기 때문에 인덱스, 슬라이싱, 길이 모두 가능함
- 단, 튜플은 불변임!
`tuple[0] = 'z'` #error - 재할당은 가능함
a = 100
a = 99 - 다중 할당
x,y = (1,2) / x,y = 1,2 둘 다 작동되지만 튜플은 불변이라는 특징이 있음
Range
- 연속된 정수 시퀀스를 생성하는 변경 불가능한 자료형
- range(시작 값, 끝 값, 증가 값)
- range(n) : 0부터 시작하기 때문에 n-1까지 출력함
- range(n,m) : n 이상, m 미만
- 증가 값이 음수인 경우 : 감소, 시작값이 끝 값보다 커야함
- print(list(ex_range)) 이렇게 형변환 하면 내부 데이터 확인 가능
Non-Sequence Type
{ dictionary }
- 특징
1. 순서와 중복이 없음(Non 시퀀스)
ex) 2번째 요소는? 없음! 순서가 없으니까! index 사용도 불가능함
2. key-value 쌍으로 구성
3. 변경 가능한 자료형 - 표현
1. key 는 변경 불가능한 자료형만 사용 가능
: str, int, float, tuple, range 등
2. value는 모든 자료형 사용 가능
3. 키를 사용해 값을 얻어냄
ex) print(ex_dict['key1']) #value1 - 값 추가 가능
ex_dict['key2'] = 'value2'
# {key1 : value1, key2 : value2} - value 값은 변경 가능
ex_dict['key2'] = 'hello'
# {key1 : value1, key2 : hello}
set
- 집합
- 순서와 중복이 없는 변경 가능한 자료형
- 수학에서의 집합과 동일한 연산 처리 가능
- 합집합(|), 차집합(-), 교집합(&) 가능
- ex) print(set1 | set2)
- 중복 제거, 집합 연산 시 사용함 - 표현
set_1= set() #빈세트일 땐 딕셔너리와 혼동될 수 있어 set()로 표현
set_2= {1,2,2} #{1,2} 중복이 없으니까!
Other Types
None
- '값이 없음'을 표현하는 자료형 (≠無)
a = None (N은 대문자) - ex) a = None
print(a) #None
Boolean
- 참(True) 과 거짓(False) ※첫 글자 대문자
- 비교(참/거짓), 논리 연산에 사용
- 주로 조건, 반복문과 함께 사용
- print(5>10) #False
print('3' != 3) #True
Collection
- 여러 개의 항목 또는 요소를 담는 자료 구조 총칭
- Str, list, tuple, / set, dict
시퀀스 / 논시퀀스 - mutable (가변) : list, set, dict
- immutable (불변) : Str, tuple
형변환 Type Conversion
- 형변환 : 데이터 타입 변환
- 암시적 형변환 / 명시적 형변환
- 암시적 형변환 : 파이썬이 자동으로 수행
- 정수와 실수의 연산에서 실수로 암시적 형변환 나타남
ex) print(5+2.0) #7.0
- Bool과 Numeric 에서도 가능 (True : 1, False : 0)
ex) print(True + 3) #4 - 명시적 형변환 : 암시적을 제외한 모든 경우, 개발자가 직접 지정
- str → int : 형식 맞아야 가능
ex) print(int('4.7')) #error #float로 하면 가능
ex) print(int(3.5)) #3 #.5를 버림
- int → str : 모두 가능
ex) print(str(100) + '점') #100점
- dict 에서 형변환하고 더하기
ex) abc['이름'] = str(abc['이름']) + '입력하세요.' #변수에 할당해주기!
연산자
연산자
- 나누기의 경우 실수, 정수 상관없이 결과값은 실수로 나온다
ex) 10 / 5 #2.0
비교 연산자
- >=, <=
- == 같음 != 같지 않음
- 문자열 비교도 가능함
ex) 'a' < 'b' #True #사전순(아스키코드)으로 비교
ex) 'hello' < 'ssafy' #True # 첫글자부터 순서를 비교
ex) 'a' > 'A' #True #소문자가 더 큼 - is 비교 연산자(식별연산자)
- 메모리 내에서 같은 객체를 참조하는 지 확인!
- ==는 동등성(단순 값) , is는 식별성
ex) 1 == True #True
1 is True #False
ex) 2 == 2.0 #True
2 is 2.0 #False
- is 같음, is not 같지 않음
- None, Bool에 사용함
논리연산자
- and (둘다), or(하나라도), not(반대)
ex) not False / not 0 # True
and의 경우 둘다 참이어야 참이기 때문에 앞에 값이 false면 뒷 값은 확인 안함 - 0, 0.0, None, 빈리스트 같은 것은 False
- 사용 예시
if val() :
print(val)
else :
print('비어있습니다.')
#비어있습니다
멤버십 연산자
- 특정 값이 시퀀스나 다른 컬렉션에 포함되는지 확인
- 값 in / not in 컬렉션이름
딕셔너리의 경우 값에 key가 들어감 - 한 글자가 아닌 연속적인 문자도 가능
'soft' in 'samsung software'
시퀀스형 연산자
- + 더하기 ex) [1,2] + [3,4] # [1,2,3,4]
- * 반복하기
단축평가
- 논리 연산에서 두번째 피연산자를 평가하지 않고 결과를 결정하는 동작
- 중간에 이미 결정나버리면 그 뒤에는 계산 안함
- 코드 실행 최적화 및 불필요한 연산을 피하기 위해 시행
- ex)
print (4 and 6) #6 #평가가 6까지 감
print (2 and 0) #0 #평가가 2까지 감
print (0 and 3) #0 #0이 False라서 뒤 안봄! 3까지 안감
print (0 and 0) #0 # 앞의 0 (0이 거짓이라 뒤까지 안봄)
plate = 'agwds'
print(('a' and 'b') in plate) # False #1. ()먼저 계산 str 이라 무조건 true, a 다음 계산인 b로 넘어감, 값 : b
#2. b는 plate 안에 없으니 False
print(('b' and 'a') in plate) # True #1. a 2. True
print (5 or 3) #5 #5가 참이라서 3까지 안 봄
print (0 or 3) #3 #0이 거짓이라 뒤에 3까지 봄
print (0 or 0) #0 #뒤에있는 0이 나옴
'개발새발개발' 카테고리의 다른 글
모듈, 제어문(반복문, 조건문), List comprehension, enumerate (6) | 2024.07.24 |
---|---|
float 소수점 설정, 문자열 슬라이싱, 깊은 복사와 얕은 복사 (5) | 2024.07.23 |
파이썬 기초(연산자, 진수, 변수, 데이터 타입, 시퀀스 타입, 스타일 가이드) (0) | 2024.07.18 |
GIT 원격저장소 gitignore Git revert reset (0) | 2024.07.15 |
Markdown CLI GIT (0) | 2024.07.12 |