Lesson 01: 파이썬의 자료형 I (int, float, bool, str)
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
아래와 같은 문자열이 있다고 하자.
1. 적당한 인덱싱을 통하여 출력결과가 아래와 같도록 하라.
hint: University는 10글자이다.
2. 출력결과가 아래와 같도록 하는 코드를 작성하라. (lower 함수를 이용할 것)
3. 아래의 코드를 관찰하고 isupper()의 기능이 무엇인지 스스로 정리해보라.
유추한 기능이 맞는지 ChatGPT를 통하여 확인하라.
4. 다음중 실행 불가능한 코드를 모두 골라라.
5. 아래의 예제를 관찰하라.
이 예제를 바탕으로 문자열에 포함된 .format()함수의 기능을 유추하라. 그리고 아래의 결과를 확인하라.
string = '전북대학교 학생엠티가 {}월{}일-{}월{}일 완주 곶감펜션에서 있다고 합니다. 자세한 일정 등은 다시 공지하겠습니다.'
string.format(3,24,3,25)ChatGPT를 활용하여 .format()함수의 기능을 학습하라.
6. 아래의 예제를 관찰하라.
이 예제를 바탕으로 문자열의 .replace() 기능을 유추하라. 유추한 기능을 chatGPT로 확인하라.
7. 아래의 코드를 관찰하라.
이 코드를 바탕으로 split의 기능을 유추하라. 유추한 기능을 chatGPT로 확인하라.
8. 아래의 코드를 관찰하라.
이 코드를 바탕으로 in 의 사용방법을 유추하라. 유추한 기능을 chatGPT로 확인하라.