# 수치연산 함수
a = abs(-5) #절댓값 반환
b = divmod(a, 3) # (몫, 나머지) 로 반환
#정수일 때 (a // b, a & b)
#부동 소수점 숫자일 때 (q, a % b) q= math.floor(a/b)
c = divmod(3.9, 2)
import math
d = math.floor(3.9 / 2)
e = pow (2, 4) # 2의 4제곱
print(a) #5
print(b) #(1, 2)
print(c) #(1.0, 1.9)
print(d) # 1
print(e) #16
# iterable 요소를 다루는 함수
#list, Tuples, Set, Dictionary, 문자열을 인자로 받는다
# 1. all = 하나라도 false면 false 를 반환 모든 요소가 참이면 (또는 iterable 이 비어있으면) true 를 반환
exList = []
print(exList)
print(all(exList)) #True
exList.append("")
print(exList)
print(all(exList)) #False
del exList[0]
exList.append(0)
print(exList)
print(all(exList)) #False
del exList[0]
exList.append(None)
print(exList)
print(all(exList)) #False
del exList[0]
exList.append("None")
print(exList)
print(all(exList)) #True
a = str("문자열")
print(all(a))
# 2. any = 요소 중 하나라도 참이면 true, 비어있으면 fasle 반환
#모든 요소가 false면 false 반환
ex2list = []
print(ex2list)
print(any(ex2list)) #False
ex2list.append("")
print(ex2list)
print(any(ex2list)) #False
ex2list.append(0)
print(ex2list)
print(any(ex2list)) #False
ex2list.append("문자열")
print(ex2list)
print(any(ex2list)) #True
# 3. 다른 데이터 구조?로 변환
ex2tuple = tuple(ex2list) #ex2list는 계속 list로 남아있음. 다른 변수에 할당해주어야 튜플형태를 출력 가능
print(ex2tuple)
ex2set = set(ex2tuple)
print(ex2set)
ex3list = [(1, "value1"), (2, "value2"), (3, "value3"), (0, "value0"), (6, "value6")]
print(ex3list)
ex3dict = dict(ex3list)
# 4. 최대/최소/오름차순 정렬
a = max(ex3dict)
b = min(ex3dict)
c = sorted(ex3dict)
print(a) #6
print(b) #0
print(c) # [0, 1, 2, 3, 6]
#변환 함수
a = "A"
b = (ord(a)) #문자 -> 유니코드(10진)
print(b)
print(chr(b)) #유니코드 정수 -> 문자
print(hex(20)) #0x14 : 10진수 -> 16진수
print(bin(20)) #0b10100 : 10진수 -> 2진수
print(oct(20)) #0o24 : 10진수 -> 8진수
print(int('0o24', 8)) # 20 : (n진수, n) -> 10진수
#객체 조사를 위한 함수
# 정수형/문자열/리스트 객체의 속성과 메서드 출력
print(dir(5))
print(dir("hello"))
print(dir([1,2,3]))
# import math
# #모듈에 대한 속성과 메서드 출력
print(dir(math))
#사용자 정의 클래스의 속성과 메서드 출력
class MyClass:
def __init__(self):
self.var = 10
def method(self):
pass
# MyClass의 인스턴스의 속성과 메서드
obj = MyClass()
print(dir(obj))
# globals() & locals()
# 전역 변수 정의
a = 10
b = 20
def func():
# 지역 변수 정의
x = 5
y = 10
# 전역 변수와 지역 변수 출력
print("Inside func() - Globals:")
print(globals()) ## 여전히 전역 변수를 포함하는 딕셔너리 반환
print("Inside func() - Locals:")
print(locals()) #해당 함수의 지역변수를 포함하는 딕셔너리 반환
# 함수 호출
func()
# 전역 변수 딕셔너리 출력
print("Outside func()")
print(globals()) # 현재 모듈의 모든 전역 변수를 포함하는 딕셔너리를 반환
class Car:
pass
my_car = Car()
print(isinstance(my_car, Car)) #True
print(isinstance(my_car, object)) #True : 모든 클래스는 object클래스의 하위 클래스이다
#기본 데이터 타입
print(isinstance(5, int)) #True
print(isinstance("hello", str)) #True
print(isinstance([1,2,3], list)) # True
상속받는 class 일 경우
class Vehicle:
pass
class Car (Vehicle): #Vehicle 을 상속받는 Car class생성
pass
my_car = Car()
print(isinstance(my_car, Car))# True
print(isinstance(my_car, Vehicle))# True : 상속받은 class 의 instance가 되
print(isinstance(my_car, object))# True
print(isinstance(my_car, str))# False
class Vehicle:
pass
class Car (Vehicle): #Vehicle 을 상속받는 Car class생성
pass
class Bicycle:
pass
print(issubclass(Car, Vehicle))#True
print(issubclass(Vehicle, object))#True
print(issubclass(Car, Car))#True
print(issubclass(Bicycle, Vehicle))# False
서브클래스: 다른 클래스(상위 클래스)로부터 속성과 메서드를 상속받은 클래스.
user_input = input("계산식을 입력하세요 : ") # 3 * 2 + 1
result = user_input
print(result)# 3 * 2 + 1 : 문자열 그대로 출력함
result = eval(user_input)
print(result)# 7 : 문자열 안의 계산값을 출력함
람다함수란? lambda
파이썬에서 함수를 간결하게 정의하는 방법
한 줄로 표현되는 익명 함수로 주로 간단한 연산을 수행하는 함수를 정의할때 사용한다 .
lambda parameter : expression
(인자) (반환할 식)
add = lambda x, y: x + y
result = add(3, 5)
print(result)
* 자바스크립트의 화살표 함수랑 유사
지피티가 말아주는 파이썬 주요 내장함수
1. print()
2. input()
3. len() : 길이 반환 함수
4. range()
for i in range (1, 5) :
print(i) # 1~ 4 를 각각 출력
5. type()
6. str(), int(), float()
7. max(), min()
8. sum()
numbers = [1, 2, 3, 4, 5]
print("Sum of numbers:", sum(numbers)) # Sum of numbers: 15
9. sorted() : 오름차순 정렬
** 내림차순은? reverse?
1) sorted(numbers, reverse = True)
2) reverse(sorted(numbers))
10. map() : 함수를 각 요소에 적용
map(적용할 함수, 적용할 대상)
def square(x):
return x ** 2
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(square, numbers))
11. filter()
def is_even(x):
return x % 2 == 0 2로 나눈 나머지= 0인 x만 반환한다.는 조건문 역할
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(is_even, numbers))
12. enumerate() : 인덱스를 함께 알려주는 !!! 이런 함수가 있었다니
numbers = [10, 20, 30, 40, 50]
for index, value in enumerate(numbers):
print( f "{index}: {value}")
또는 아래와 같이
for index, value in enumerate(numbers):
# print(f"{index}: {value}")
print("{}: {}".format(index, value))
13. zip() : 여러 개의 시퀀스를 병렬로 묶어 튜플로 반환하는 함수
names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(f"Name: {name}, Age: {age}")
14. slice() :
1) 리스트 슬라이스
my_list = [1, 2, 3, 4, 5]
my_slice = slice(1, 4) # 인덱스 1부터 3까지의 슬라이스 객체 생성
# 슬라이스 객체를 사용하여 리스트 슬라이싱
print(my_list[my_slice]) # 출력: [2, 3, 4]
2) 문자열 슬라이스
my_string = "Hello, World!"
my_slice_str = slice(7, None, -1) # 인덱스 7부터 끝까지 역순으로 슬라이스 객체 생성
print(my_string[my_slice_str]) # 출력: "dlroW ,olleH"
step (간격) 지정 가능, 음수 값 넣으면 역순으로 슬라이스해서 요소를 가져옴
+
.split 메서드() : 문자열을 특정 구분자로 나누어 리스트로 반환
메서드는 객체에 속한 함수를 말하며, 해당 객체의 상태(속성)을 변경하거나 활용.
클래스의 인스턴스를 통해 호출된다. * 인스턴스란 특정 클래스로부터 생성된 실제 객체를 말한다.
split 은 string class에 속한 메서드임. my_string 은 string class로부터 생성된 인스턴스.