본문 바로가기
개발 공부 일지/Python

파이썬 내장함수 실습하기

by yelimu 2024. 6. 20.
# 수치연산 함수
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로부터 생성된 인스턴스.