ref
https://guebin.github.io/IP2022/2022/03/07/(1주차)-3월7일.html#자료형
Intro
- 파이썬의 기본자료형은 int, float, bool, str, list, tuple, dict, set 등이 있다.
- 0차원 자료형: int, float, bool
- 1차원 자료형: str, list, tuple, dict, set
int, float, bool
- int형
- float형
Type: float String form: 3.5999999999999996 Docstring: Convert a string or number to a floating point number, if possible.
- bool형
Type: bool String form: True Docstring: bool(x) -> bool Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
Type: bool String form: False Docstring: bool(x) -> bool Returns True when the argument x is true, False otherwise. The builtins True and False are the only two instances of the class bool. The class bool is a subclass of the class int, and cannot be subclassed.
- bool형의 연산
- complex형
Type: complex String form: (1+2j) Docstring: Create a complex number from a real part and an optional imaginary part. This is equivalent to (real + imag*1j) where imag defaults to 0.
Type: complex String form: (2-2j) Docstring: Create a complex number from a real part and an optional imaginary part. This is equivalent to (real + imag*1j) where imag defaults to 0.
- 형태변환: float \(\to\) int
(예시1)
(예시2) 이경우는 정보의 손실이 발생
- 형태변환: int \(\to\) float
- 형태변환: bool \(\to\) int/float, int/float \(\to\) bool
(예시1)
(예시2)
(예시3)
- 이상한 형태변환도 가능하다. (이런것도 바꿔주나 싶은것도 바꿔줌)
- 저는 이런 코드를 의도적으로 사용하지 않아요..
- 형태변환이 항상가능한것도 아님
TypeError: can't convert complex to float
- 암묵적형변환 (implicit)
(예비학습) implicit의 의미 - 추운날씨 -> 보일러좀 틀자! (explicit) / 오늘 날씨 좀 추운 것 같지 않아? (implicit) - 짜장면 먹을래? -> 싫어! (explicit) / 난 어제 짜장면 먹었는데.. (implicit)
(예제)
str
선언
연산
- 더하기(+)연산
- 빼기(-)연산
- 이런건 없다.
- 곱하기(*)연산
아래도 가능하다.
그리고 아래도 가능하다.
대신에 의미상 맞지 않는 것은 수행되지 않고 에러가 난다.
- 나눗셈(/)연산
- 이런건 없다..
인덱싱
- str은 하나의 벡터 문자가 여러개 있는 형태라고 생각하면 된다.
- 6개의 칸에 글씨가 하나씩 들어가 있음.
- 대괄호 []안에 숫자를 넣는 방식으로 벡터의 원소를 호출할 수 있다. (주의: 인덱스가 0부터 시작함)
마지막원소는 -1로 호출할 수도 있다.
마지막에서 2번째 원소는 -2로 호출가능하다.
- 요약하면 아래와 같은 방식으로 호출가능함.
| g | u | e | b | i | n |
|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | 5 |
| 0 | -5 | -4 | -3 | -2 | -1 |
- :을 이용하여 여러개의 원소를 호출할 수 있음.
index=1부터 시작해서 마지막원소까지 호출하려면?
안 헷갈리는 방법은 없을까?
해결책? 생략한다!!
- 생략의 응용1
- 생략의 응용2
- 생략의 응용3
str 특수기능
- 파이썬의 변수는 단순히 정보를 담는 그릇이 아니다. 유용한 기능을 제공하는 경우가 있다.
여기에서 lower()는 문자열에 특화된 기능임. 따라서 당연히 아래는 불가능
- 자료형에 특화된 기능(=함수)을 확인하는 방법? a.+ tab 으로 목록 확인 가능
Signature: a.upper() Docstring: Return a copy of the string converted to uppercase. Type: builtin_function_or_method
- 문자열에 대한 다른 내용들은 추후에 다루겠음.
- 마음의눈: a.f() 형태를 읽는 팁 - a.f()는 f(a)로 생각하면 편리함. - a.f(2)는 f(a,2)로 생각하면 편리함. - 이런점에서 R %>% 연산자와 비슷하다고 생각할 수 있다. (약간 다르긴함)
- 사실 .은 좀 더 다양한 상황에서 쓰일 수 있다. 변수이름.함수이름() 의 형태가 아니라 - 패지키이름.함수이름() - 패키지이름.변수이름 - 패키지이름.패키지이름.함수이름() - …
와 같이 다양한 형태가 가능하다. 근본적인 공통점은 .을 기준으로 상위개념.하위개념 으로 이해하는 것이 좋다.
0차원 vs 1차원
- len함수 소개: 원소의 갯수를 알려주는 함수.
(0차원) len 함수가 동작하지 않음.
(1차원) len 함수가 잘 동작함.
Quiz
본인이름으로 str을 생성
- 성만 출력
- 이름만 출력
(예시)