웹사이트 검색

숫자 작업을 위한 내장 Python 3 함수


소개

Python 3에는 작업 중인 모든 프로그램에서 쉽게 사용할 수 있는 많은 내장 함수가 있습니다. 일부 함수를 사용하면 문자열을 사용할 수 있습니다.

이 튜토리얼에서는 Python 3에서 숫자 데이터 유형과 함께 사용할 수 있는 몇 가지 기본 제공 함수를 살펴봅니다. 다음 함수를 살펴보겠습니다.

  • abs() 절대값
  • divmod()는 몫과 나머지를 동시에 찾습니다.
  • pow() 숫자를 특정 거듭제곱으로 올리기
  • round()는 숫자를 특정 소수점으로 반올림합니다.
  • sum() 반복 가능한 데이터 유형의 항목 합계를 계산합니다.

이러한 방법에 익숙해지면 프로그래밍할 때 더 많은 유연성을 얻을 수 있으므로 사용할 연산자와 함수를 결정할 때 정보에 입각한 결정을 내릴 수 있습니다. 이 자습서 전체에서 예제와 함께 이러한 기능 중 일부를 살펴보겠습니다.

전제 조건

컴퓨터나 서버에 Python 3가 설치되어 있고 프로그래밍 환경이 설정되어 있어야 합니다. 프로그래밍 환경이 설정되지 않은 경우 운영 체제(Ubuntu, CentOS, Debian 등)에 적합한 서버의 프로그래밍 환경에 대한 설치 및 설정 가이드를 참조할 수 있습니다.

절대값

내장 함수 abs()는 전달한 숫자의 절대값을 반환합니다. 수학에서 절대값은 숫자가 0부터 수직선에 있는 거리를 말합니다. 절대값은 숫자가 0에서 어느 방향에 있는지 고려하지 않으므로 음수는 양수로 표시됩니다.

몇 가지 예를 들면 15의 절대값은 15이고 -74의 절대값은 74입니다. 0의 절대값은 0입니다.

절대값은 미적분학 및 실제 분석에서 중요한 개념이지만 이동 거리와 같은 일상적인 상황을 생각할 때도 의미가 있습니다. 예를 들어, 58마일 떨어진 곳으로 이동하려고 하지만 대신 93마일을 여행하는 경우 원래 목적지를 초과했습니다. 이제 의도한 목적지에 도달하기까지 남은 마일 수를 계산하려면 음수로 끝나겠지만 음수 마일을 여행할 수는 없습니다.

이 문제를 해결하기 위해 abs()를 사용합시다:

정보: 이 자습서의 예제 코드를 따라하려면 python3 명령을 실행하여 로컬 시스템에서 Python 대화형 셸을 엽니다. 그런 다음 >>> 프롬프트 뒤에 추가하여 예제를 복사, 붙여넣기 또는 편집할 수 있습니다.

miles_from_origin = 58	# Miles destination is from origin
miles_travelled = 93	# Miles travelled from origin to destination (too many)

# Calculate how many miles destination is from current location:
miles_to_go = miles_from_origin - miles_travelled	

print(miles_to_go)		# Print how many miles left (a negative number)
print(abs(miles_to_go))	# Use absolute value to account for negative number
Output
-35 35

출력에서 abs() 함수를 사용하지 않으면 이 경우 음수가 -35임을 알 수 있습니다. miles_travelledmiles_from_origin보다 작은 위치에 있을 수 있지만 abs() 함수를 포함하여 음수 가능성을 고려합니다. .

음수인 경우 abs()는 절대값이 항상 양수이거나 0이므로 양수를 반환합니다.

양수와 0으로 abs()를 사용하여 살펴보겠습니다.

print(abs(89.9))
print(abs(0))
Output
89.9 0

양수만 찾는 인스턴스에서 양수 또는 음수일 수 있는 변수와 함께 abs()를 사용할 가능성이 가장 높습니다. 음수 입력 또는 결과를 설명하기 위해 abs()를 사용하여 반환되는 값을 양수로 수정합니다.

하나의 함수에서 몫과 나머지 찾기

바닥 나눗셈(몫을 반환)과 모듈로 나눗셈(나머지를 반환)은 모두 밀접하게 관련되어 있으므로 두 연산을 한 번에 결합하는 함수를 사용하는 것이 유용할 수 있습니다.

Python 내장 함수 divmod()는 두 가지를 결합하여 바닥 나누기에서 나온 몫을 먼저 반환한 다음 나머지를 반환합니다.

divmod()는 두 개의 숫자로 작동하기 때문에 두 개의 숫자를 전달해야 합니다.

divmod(a,b)

이 기능을 사용하여 기본적으로 다음을 수행합니다.

a // b
a & b

8만 단어 길이의 책을 썼다고 가정해 봅시다. 게시자와 함께 페이지당 300단어 또는 250단어를 선택할 수 있으며 각 경우에 페이지 수를 파악하고 싶습니다. divmod()를 사용하면 페이지 수와 추가 페이지에 추가되는 단어 수를 즉시 확인할 수 있습니다.

words = 80000		# How many words in our book
per_page_A = 300	# Option A, 300 words per page
per_page_B = 250	# Option B, 25- words per page

print(divmod(words,per_page_A))	# Calculate Option A
print(divmod(words,per_page_B))	# Calculate Option B
Output
(266, 200) (320, 0)

옵션 A에는 단어로 채워진 266페이지와 남은 200단어(페이지의 ⅔)가 있어 총 267페이지가 되고 옵션 B에는 320페이지의 책이 있습니다. 환경을 생각하고 싶다면 옵션 A를 선택할 수 있지만 더 큰 크기의 책으로 더 인상적으로 보이고 싶다면 옵션 B를 선택할 수 있습니다.

divmod() 함수는 정수와 부동 소수점을 모두 사용할 수 있으므로 부동 소수점을 사용하는 예제도 살펴보겠습니다.

a = 985.5
b = 115.25

print(divmod(a,b))
Output
(8.0, 63.5)

이 예에서 8.0은 985.5를 115.25로 나눈 바닥 몫이고 63.5는 나머지입니다.

바닥 나누기 연산자 //와 모듈로 연산자 %를 사용하여 divmod()가 수행한 작업을 확인할 수 있습니다.

print(a//b)
print(a%b)
Output
8.0 63.5

파이썬에서 divmod() 함수를 사용할 때. 나눗셈이 발생한 전체 횟수와 나머지가 모두 반환됩니다.

Python에서는 ** 연산자를 사용하여 숫자를 지수만큼 올리거나 두 개의 숫자를 받는 내장 함수 pow()를 사용할 수 있습니다.

pow() 함수가 어떻게 작동하는지 알아보기 위해 박테리아에 대한 연구를 하고 있고 1부터 시작하면 하루가 끝날 때 얼마나 많은 박테리아가 있는지 확인하고 싶다고 가정해 보겠습니다. 우리가 작업하는 박테리아는 매 시간 두 배가 되므로 총 시간(이 경우 24)의 제곱인 2(배)를 계산할 것입니다.

hours = 24
total_bacteria = pow(2,hours)

print(total_bacteria)
Output
16777216

우리는 두 개의 정수를 pow() 함수에 전달했고 이 24시간이 끝날 때까지 1,600만 개가 넘는 박테리아를 갖게 될 것이라고 결정했습니다.

수학에서 3의 3제곱을 계산하려면 일반적으로 다음과 같이 씁니다.

우리가 완성하고 있는 계산은 3 x 3 x 3이며 이는 27과 같습니다.

Python에서 3³를 계산하려면 pow(3,3)를 입력합니다.

함수 pow()는 정수와 부동 소수점을 모두 사용하며 숫자를 특정 거듭제곱으로 올리려는 경우 ** 연산자를 사용하는 대신 사용할 수 있습니다.

반올림 숫자

소수 자릿수가 많은 부동 소수점으로 작업할 때 빠르고 쉽게 숫자를 반올림할 수 있는 것이 중요해집니다. 내장 Python 함수 round()는 두 개의 숫자를 받습니다. 하나는 반올림할 숫자이고 다른 하나는 포함할 소수 자릿수를 지정하는 숫자입니다.

이 함수를 사용하여 소수점 이하 자릿수가 10개 이상인 실수를 취하고 round() 함수를 사용하여 소수점 이하 자릿수를 4로 줄입니다.

i = 17.34989436516001
print(round(i,4))
Output
17.3499

위의 예에서 float 17.34989436516001은 소수 자릿수가 4로 제한되도록 지정했기 때문에 17.3499로 반올림됩니다.

또한 round() 함수는 숫자를 반올림하므로 17.3498을 출력으로 제공하는 대신 17.3499를 제공합니다. 십진수 8은 숫자 9입니다. 숫자 5 이상이 뒤에 오는 숫자는 다음 정수로 반올림됩니다.

round()의 구문을 분석해 보겠습니다.

round(number to round,number of decimal places)

일상 생활에서 반올림 숫자는 특히 돈으로 일할 때 자주 발생합니다. 우리는 여러 친구들에게 한 푼도 균등하게 나눌 수 없습니다.

팁을 계산할 수 있는 프로그램의 예를 살펴보겠습니다. 여기서 우리는 숫자를 제공할 것이지만 대신 사용자가 제공한 숫자를 가져오도록 프로그램을 다시 작성할 수 있습니다. 이 예에서 3명의 친구는 20%의 팁을 추가하는 것과 함께 $87.93의 청구서를 균등하게 나누기를 원하는 식당에 갔다.

bill = 87.93				# Total bill
tip = 0.2					# 20% tip
split = 3					# Number of people splitting the bill

total = bill + (bill * tip)	# Calculate the total bill

each_pay = total / split	# Calculate what each person pays

print(each_pay)				# What each person pays before rounded

print(round(each_pay,2))	# Round the number — we can’t split pennies
Output
35.172000000000004 35.17

이 프로그램에서는 총 청구서와 팁을 3으로 나눈 값을 계산한 후 숫자의 출력을 먼저 요청합니다. 이 값은 35.172000000000004와 같이 소수점 이하 자릿수가 많은 숫자로 평가됩니다. 이 숫자는 금전적 수치로 이해가 되지 않기 때문에 round() 함수를 사용하고 소수점 이하 자릿수를 2로 제한하여 세 친구가 실제로 작업할 수 있는 출력을 제공할 수 있습니다. : 35.17.

소수점 값이 0인 숫자로 반올림하려면 round() 함수에서 두 번째 매개변수로 0을 사용하면 됩니다.

round(345.9874590348545304636,0)

이는 346.0으로 평가됩니다.

실수가 아닌 정수 형식으로 사용자 입력을 받는 경우 오류를 수신하지 않고 round()에 정수를 전달할 수도 있습니다. 정수가 첫 번째 매개변수로 전달되면 정수가 반환됩니다.

합계 계산

sum() 함수는 사전을 포함하여 숫자 복합 데이터 유형의 합계를 계산하는 데 사용됩니다.

목록을 sum() 함수에 전달하여 목록의 모든 항목을 왼쪽에서 오른쪽 순서로 함께 추가할 수 있습니다.

some_floats = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9]
print(sum(some_floats))
Output
49.5

이것은 튜플 및 사전과 유사하게 작동합니다.

print(sum((8,16,64,512)))	# Calculate sum of numbers in tuple
print(sum({-10: 'x', -20: 'y', -30: 'z'}))	# Calculate sum of numbers in dictionary 
Output
600 # Sum of numbers in tuple -60 # Sum of numbers in dictionary

sum() 함수는 최대 2개의 인수를 사용할 수 있으므로 정수 또는 부동 소수점 형식의 추가 숫자를 추가하여 첫 번째 위치에서 인수를 구성하는 숫자에 추가할 수 있습니다.

some_floats = [1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.8, 9.9]

print(sum(some_floats, 0.5))
print(sum({-10: 'x', -20: 'y', -30: 'z'},60))
Output
50.0 0

두 번째 인수를 포함하지 않으면 sum() 함수는 기본적으로 반복 가능한 복합 데이터 유형에 0을 추가합니다.

결론

이 자습서에서는 Python 프로그래밍 언어에서 숫자 데이터 유형과 함께 사용할 수 있는 몇 가지 기본 제공 방법을 다뤘습니다.

숫자로 작업하는 방법에 대해 자세히 알아보려면 "Python 3의 목록 이해하기\를 참조하세요.