Python - 수치 연산 함수(3)

Code_Alpacat·2021년 12월 30일

abs()

  • 수를 절대값으로 바꿔주는 함수

divmod()

  • 첫 인자와 두 번째 인자로 나눴을때, 몫과 나머지를 튜플 객체로 반환하는 함수
val1, val2 = 9, 5
result_tuple = divmod(val1, val2)

print("divmod({0}, {1} => 몫: {2}, 나머지: {3}".format(val1, val2, *result_tuple))
  • 여기서 *result_tuple에는 몫과 나머지가 저장된다.

pow()

  • 파라미터1을 파라미터2만큼 제곱하는 함수

ex)

pow(3, 2) = 3^2 = 9
num_list = [1, 3, 5 ,7, 9]
list(map(lambda x: pow(x, 3), num_list))
  • 위와 같이 람다로 함수를 구현하고, map으로 num_list의 튜플값들을 모두 제곱해서 리스트에 다시 저장하는게 가능하다.

all()

  • 반복 가능한 자료형(list, tuple, set, dictionary, 문자열)을 파라미터로 모두가 True면 True를 리턴, 그 외엔 False를 리턴하는 함수
value = [1, 3, 5]
print(all(value))
value = [0, 3, 5]
print(all(value))

1번 예제는 모두 1 이상이므로 1과 같이 True를 반환하고 2번 예제는 0이 존재하므로 False를 반환한다.

any()

  • all()함수와 비슷하지만 모두가 False면 false를 반환하고 그 외에 하나라도 True이면 True를 반환하는 함수
value = [0, 0, 1]
print(all(value))
value = [0, 0, 0]
print(all(value))

위의 예제 1은 1이 포함되어 모두 False가 아니므로 True, 예제 2는 False를 반환한다.

enumerate

List, Tuple, 문자열과 같은 시퀀스형을 입력받아 인덱스를 포함하는 튜플 객체를 항목으로 구성하는 enumerate 객체를 반환하는 함수

num_list = [1, 2, 3, 4, 5]

for idx, val in enumerate(num_list):
	print("num_list[{0}]: {1}".format(idx, val))
for object in enumearate(num_list):
	print("object : {0}, {1}".format(object[0], object[1]))

위와 같이 enumerate로 튜플의 index, value를 저장해 각각 출력도 가능하고,
2번 예제처럼 object[0] = 인덱스, object[1] = 인자를 넣어 모든 튜플값을 출력할 수 있다.

filter()

조건에 해당하는 항목을 걸러내는 함수

def iseven(num):
	return num % 2 == 0
   # 짝수면 true
  
numbers = [1, 2, 3, 4, 5]

ret_val = filter(iseven, numbers)
# ret_val = filter(lambda n: n % 2 ==0, numbers)
print("{0}".format(type(ret_val)))
print("{0}".format(list(ret_val)))
  • type으로 반환한 객체는 filter 객체다.
    filter객체를 list로 바꿔 출력한다.
  • 결론적으로, 함수식에서 true를 반환하게 만든 num값을 filter로 가져오는 함수인 것이다.

list(), tuple(), set(), dict()

  • 이 함수들은 앞선 게시물에 정리가 되어있으니 짧게 요점만 정리하겠다.
  • list() : 리스트로 변환
  • tuple() : 튜플로 변환
  • set() : 셋으로 변환(중복x)
  • dict(): 딕셔너리로 변환. (key, value)를 가짐.
  • 추가적으로, 딕셔너리는 enumerate()를 dict()로 변환하면 각 인덱스와 인자값이 key와 value로 바뀌게 된다.
data_str = "Hello"
data_list = list(data_str)
data_tuple = tuple(data_list)
data_set = set(data_tuple)
data_dict = dict(enumerate(data_set))

print("dict({0}) => {1} {2}".format(data_set, type(data_dict), data_dict))

map()

  • 두 번째 인자로 반복 가능한 자료형을 받아와 자료형의 각 항목에 대해 첫 번째 인자로 전달 받은 함수를 적용한 결과를 맵 객체로 변환하는 함수
data_list = list("abcdefghi")

result = list(map(lambda x: x.upper(), data_list))
  • 위와 같이 적용할 식과, 리스트를 map으로 적용하면, 모든 리스트의 인자가 대문자로 바뀐다.

max(), min(), range(), sorted(), reversed()

  • max()는 리스트, 튜플 등에서 최대값, min은 최소값을 구하는 함수이다.
  • range(시작, 종료, 증감치)로 범위를 나타내는 함수다.
  • sorted 함수는 기본적으로 객체를 오름차순으로 정렬해준다. 그리고 reversed()함수로 순서를 바꿔 내림차순으로 정렬도 가능하다.

zip()

  • 둘 이상의 반복 가능한 자료형을 파라미터로 해서, 동일 위치의 항목을 묶어 튜플로 구성하는 zip객체를 생성하는 함수
  • 단, 인자는 동일 자료형, 같은 항목의 갯수가 필수다.
data_list1 = [1, 2, 3]
data_list2 = [4, 5, 6]
data_list3 = ["a", "b", "c"]

print("list(zip({0}, {1})) => {2}".format(data_list1, data_list2, list(zip(data_list1, data_list2))))

결과 : list(zip([1, 2, 3], [4, 5, 6])) => [(1,4), (2, 5), (3, 6)]

  • 결과에서 알 수있듯 같은 인덱스에 해당하는 인자가 묶인다.

chr(), ord(), hex()

  • chr() : 정수에 해당하는 유니코드를 문자로 반환.
  • ord() : 문자를 정수에 해당하는 정수로 반환
  • hex() : 정수를 16진수로 반환

dir()

  • 인자로 전달된 객체가 가진 변수, 메소드와 같은 속성 정보를 리스트 객체로 반환해줌. 인자를 전달하지 않고 호출하면 지역 스코프에 대한 정보를 리스트 객체로 반환.

globals()

  • 현재의 전역 심볼 테이블을 보여주는 딕셔너리를 반환
    -> 전역변수와 함수, 클래스의 정보 포함

locals()

  • 현재의 지역 심볼 테이블을 보여주는 딕셔너리를 반환
    -> 매개변수를 포함한 지역변수와 중첩함수의 정보 포함

id()

  • 인자를 가진 객체의 주소값(참조값)을 반환

isinstance(), issubclass()

-1. 첫 인자가, 두 번째 인자의 클래스의 인스턴스인지를 true/false로 반환

    1. 첫 인자가, 두 번째 인자의 클래스의 서브클래스인지를 true/false로 반환

실행관련함수

eval()

  • 문자열을 인자로 받아 문자열의 표현식을 실행한 경과값 반환.
express = "2 + 5 * 10"

print(eval(express))

2.

express = "hello, ssafy".upper()"

print(eval(express))


> - 이 경우에는 문자열로 표현되어있지만, 1은 52를 반환하고 2는 모두 대문자로 바꿔준다.





profile
In the future, I'm never gonna regret, cuz I've been trying my best for every single moment.

0개의 댓글