객체: 여러 속성과 행동을 가지고 있는 데이터
모든 객체는 identity(객체를 식별하기 위한 ID)와 value(값)를 가지고 있고 type(자료형)에 해당된다.
자료형에 따라 객체가 가지는 속성과 행동이 달라진다.
파이썬은 객체 지향적인 언어로 모든 데이터를 객체로 표현한다.
단순 숫자나 문자가 담긴 변수 뿐만 아니라 print(), input()과 같은 함수도 함수 자료형 객체이다.
<앞으로 나올 내용은 IDE에서 같이 써내려가면서 어떻게 출력되는지 직접 확인하면서 보면 좋다.>
1. 문자열 자료형(string)
## 작은 따옴표나 큰 따옴표로 표현
ex) print("Hello world!") -> "Hello world!"라는 문자열 출력
## 문자열 안에 들어갈 수 있는 특수문자가 여러가지가 있다.
1. \n: 개행문자
ex) print("Hello\nworld") -> Hello (개행) world
2. \t: 탭 문자
ex) print("Hello\tworld") -> Hello (탭) world
3. \\: 백슬래시 이스케이프
ex) print("Last\next")
## 사용자는 Last\next 라는 문자를 입력하고 싶은데 파이썬은 사이에 \n을 인식해서 의도하지 않는 출력이 발생함
ex) print("Last\\next")
# 따라서 \를 특수한 용도로 사용하지 않았다고 알려주기 위해 \를 한번더 써주면 원하는 출력이 나옴
2. 숫자 자료형(int, float)
integer(int) - 정수 자료형
float - 실수 자료형
## 정수 출력
ex) print(3+3)
## 실수 출력
ex) print(17/6)
**반환되는 자료형은 두 연산 중에서 한 숫자라도 실수형이면 실수형으로 반환된다.(나눗셈 제외)**
ex) print(3*5.2)
**단, 나눗셈은 정수로 나누어 떨어지더라도 항상 float형으로 반환된다.**
ex) print(15/3)
3. Boolean 자료형
참/거짓을 표현하는 자료형
Ture or False 두가지 자료형 밖에 없다.
## Boolean 자료형은 비교연산자와 특히 많이 쓰이며, ""를 사용하지 않고 출력할 수 있다.
print(True)
print(False)
4. NoneType 자료형
값이 없다는 것을 의미하는 자료형
NoneType자료형의 객체들은 모두 None을 값으로 가지고 있다.
## 함수가 반환하는 값이 없을 때 파이썬이 반환값을 None으로 설정한다.
이전 시간에 print(print("Hello world!"))의 출력값이 Hello world!와 None인 이유
Type()함수를 통해 인수의 자료형을 알 수 있다.
input()함수는 항상 문자열을 반환한다.
print(type(input())) --> <class 'str'>
# type()
예시로 한번씩 출력해보면 좋다
print(type(1))
print(type(1.0))
print(type(True))
print(type(False))
print(type("hello"))
print(type(None))
print(type("1.0"))
자료형 연산자 및 메소드
메소드(methods): 각 객체 타입을 위해 기본적으로 제공되는 함수
1. 문자열
string 연산자 및 메소드
x in str: x문자열이 str문자열 안에 있는지
Boolean객체 반환
x not in str: x문자열이 str문자열 안에 없는지
Boolean객체 반환
str1 + str2 = str1str2 (두 문자열을 합쳐서 반환)
str * number = strstrstrstr....(str문자열을 number만큼 붙여서 만든 문자열을 반환)
len(s): 문자열 s의 길이를 반환
TypeCasting(형 변환)
str(x): 인수x를 문자열로 바꿔주는 함수
str1.count(str2): str1에 str2가 몇번이나 나오는지
print("abCa ".count("a"))
str.islower(): str에 있는 모든 영문자가 소문자인지
print("abCa ".islower())
str.lower(): str에 있는 모든 문자를 소문자로 바뀐 문자열을 반환
print("abCa ".lower())
str.isupper(): str에 있는 모든 영문자가 대문자인지
print("abCa ".isupper())
str.upper():str에 있는 모든 영문자를 대문자로 바뀐 문자열을 반환
print("abCa ".upper())
str1.endswith(str2): str1이 str2로 끝나는지
print("abCa ".endswith("a"))
str1.startswith(str2): str1이 str2로 시작하는지
print("abCa ".startswith("a"))
str1.replace(str2,str3): str1안에 있는 str2를 str3로 대체한 문자열을 반환
print("abCa ".replace("a", "A"))
str.strip(): 문자열 맨 왼쪽과 맨 오른쪽에 연속으로 나오는 공백을 없앤 문자열을 반환한다.
print("abCa ".strip())
2. 숫자
숫자 자료형 및 메소드
abs(x) - x의 절댓값 반환
print(abs(-5))
pow(x,y) - x의 y제곱 반환(= **)
pow(2, 7)
max(x1,x2,..) - 최댓값 반환
max(-1, 100, 2, 10)
min(x1,x2,...) - 최솟값 반환
min(-1, 100, 2, 10)
flt.is_integer - 실수형 객체가 정수의 값을 가지고 있는지 boolean값을 반환
(5.0).is_integer()
(5.3).is_integer()
Type Casting(형 변환)
int(x): x를 정수형으로 변환
int(4.56)
int("4")
float(x): x를 실수형으로 변환
float("3.45")
float(3)
3. Boolean
Boolean 연산자
bool1 or bool2
bool1이 참이면 bool2를 확인하지 않고 바로 True반환
print(True or False)
bool1 and bool2
bool1이 거짓이면 bool2를 확인하지 않고 바로 False반환
print(False and True)
not: 현재 boolean값을 반대로 적용
우선순위 not > and > or
피연산자가 boolean값이 아니더라도 0인 int나 float, 문자열의 길이가 0, None은 False값을 가진다
반대로 0을 제외한 int나 float, 문자열의 길이가 1이상인 문자열은 True값을 가진다
## Boolean이 아니더라도 진리값을 가지고 있다
print(False or 1)
print(True or 0)
print(5 or "hello")
print(None or 5)
print(5 and "hello")
TypeCasting(형변환)
bool() - 인수를 boolean으로 변형
print(bool(0))
print(bool(1))
print(bool(-1))
print(bool(""))
print(bool("False"))
4. 비교 연산자
비교 연산자: 항상 Boolean을 반환, Boolean연산자 보다 우선순위가 높다
< , <= , >, >=, ==, != 등
비교 연산자 예시
print('a' < 'b')
print('ab' == 'ab')
print('ab ' != ' ab')
print('b' >= 'c')
print(3 > 5)
print(3 <= 3)
print(5 >= 3)
print(3 == 3.0)
print(5 != 3)
변수: 객체에 이름을 붙이는 것
변수를 짓는 규칙
1. 문자, 숫자, _ 사용가능
2. 대소문자 구분
3. 이름의 첫글자로 숫자 사용 불가
4. _외에 특수문자 사용 불가
5. 예약어 사용 불가(ex, True, False, None, and, or ,...)
증분 대입문
## 파이썬 줄임말 같은 거라고 생각하면 된다.
a += b => a = a + b
a -= b => a = a - b
a *= b => a = a * b
a /= b => a = a / b
문자열 형식화(string formating)
f-string: 문자열 안에 중괄호를 넣어 코드의 반환값을 출력할 수 있다.
{출력할 값:출력이 차지할 공간 수}로 출력을 더 균일하게 할 수 있다.
<, >, ^ 로 텍스트 정렬 가능
default: 오른쪽 정렬
< : 왼쪽 정렬
>: 오른쪽 정렬
^: 출력이 차지할 공간 수의 가운데 정렬
float의 경우 소수점 밑으로 몇자리까지 출력할 것인지 조절할 수 있다.
중괄호 안에 중첩된 중괄호로 문자열이 차지하는 공간 수나 소수점 자리를 변수의 값으로 설정할 수 있다.
my_number = 5.342346
print(f"{my_number}") --> 5.342346 출력
print(f"{my_number:<10}") --> 10칸 중에서 왼쪽부터 5.342346를 출력
print(f"{my_number:^10}") --> 10칸의 가운데에 5.342346를 출력
print(f"{my_number:>10}") --> 10칸의 오른쪽부터 5.342346를 출력
print(f"{my_number:10.3f}") --> 10칸을 사용하고 소수점 3자리까지만 출력
**중괄호에 변수를 넣어서 출력을 더 유연하게 할 수 있다.**
width = 10
precision = 3
print(f"{my_number:{width}.{precision}f}")
**문자열 포멧팅 예시(한번 출력해보기)**
## 5개의 문자열을 입력받고 대문자로 만든다.
## 가장 긴 문자열을 기준으로 공간을 설정하여 오른쪽 기준으로 정렬하여 출력하는 코드
word1 = input("What is word 1? ").upper()
word2 = input("What is word 2? ").upper()
word3 = input("What is word 3? ").upper()
word4 = input("What is word 4? ").upper()
word5 = input("What is word 5? ").upper()
arr = [word1, word2, word3, word4, word5]
arr2 = [len(i) for i in arr]
m = max(arr2)
for i in range(5):
print(f"Word {i+1}: {arr[i]:>{m}}")
## 입력예시
Python
is
interesting
and
fun
## 출력예시
Word 1: PYTHON
Word 2: IS
Word 3: INTERESTING
Word 4: AND
Word 5: FUN
'💂군대 > KAIST ICT Academy' 카테고리의 다른 글
MO6 - 함수 매개변수와 반환값 (0) | 2024.09.04 |
---|---|
MO5 - 함수의 정의와 호출 (0) | 2024.08.21 |
MO4 - 조건문 (0) | 2024.08.07 |
MO3 - 반복문 (0) | 2024.08.03 |
MO1 - 파이썬 프로그래밍 개요 (0) | 2024.07.28 |