Python ฟังก์ชัน abs(): ตัวอย่างค่าสัมบูรณ์
⚡ สรุปอย่างชาญฉลาด
Python abs() เป็นฟังก์ชันในตัวที่ส่งคืนค่าสัมบูรณ์ของจำนวน ซึ่งก็คือระยะห่างจากศูนย์โดยไม่ระบุเครื่องหมาย ฟังก์ชันนี้รับค่าจำนวนเต็ม จำนวนทศนิยม และจำนวนเชิงซ้อน โดยจะส่งคืนค่าขนาดสำหรับค่าเชิงซ้อนที่ป้อนเข้ามา

Python เอบีเอส ()
Python เอบีเอส () เป็นฟังก์ชันในตัวที่มีอยู่ในไลบรารีมาตรฐานของ Pythonฟังก์ชันนี้จะคืนค่าสัมบูรณ์ของจำนวนที่กำหนด ค่าสัมบูรณ์ของจำนวนคือค่าโดยไม่คำนึงถึงเครื่องหมาย จำนวนนั้นอาจเป็นจำนวนเต็ม จำนวนทศนิยม หรือจำนวนเชิงซ้อน หากจำนวนที่กำหนดเป็นจำนวนเชิงซ้อน ฟังก์ชันจะคืนค่าขนาดของจำนวนนั้น
วากยสัมพันธ์
ไวยากรณ์ของฟังก์ชัน abs() แสดงไว้ด้านล่าง:
abs(value)
พารามิเตอร์ (ค่า)
ค่าอินพุตที่ต้องให้กับ abs() เพื่อรับค่าสัมบูรณ์ อาจเป็นจำนวนเต็ม จำนวนทศนิยม หรือจำนวนเชิงซ้อน
ผลตอบแทน:
ฟังก์ชัน abs() จะส่งคืนค่าสัมบูรณ์ของตัวเลขที่กำหนด
- ถ้าค่าที่ป้อนเข้ามาเป็นจำนวนเต็ม ค่าที่ส่งกลับก็จะเป็นจำนวนเต็มเช่นกัน
- ถ้าค่าที่ป้อนเข้ามาเป็นจำนวนทศนิยม ค่าที่ส่งกลับก็จะเป็นจำนวนทศนิยมเช่นกัน
- หากอินพุตเป็นตัวเลขเชิงซ้อน ค่าส่งคืนจะเป็นขนาดของอินพุต
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงการใช้ฟังก์ชัน abs() กับค่าจำนวนเต็ม ค่าทศนิยม และค่าเชิงซ้อน
Code ตัวอย่างที่ 1: จำนวนเต็มและจำนวนทศนิยม
หากต้องการหาค่าสัมบูรณ์ของจำนวนเต็มและจำนวนทศนิยม ให้ดูโค้ดต่อไปนี้:
# testing abs() for an integer and float int_num = -25 float_num = -10.50 print("The absolute value of an integer number is:", abs(int_num)) print("The absolute value of a float number is:", abs(float_num))
Output:
The absolute value of an integer number is: 25 The absolute value of a float number is: 10.5
ตัวอย่างที่ 2: จำนวนเชิงซ้อน
ในการหาค่าสัมบูรณ์ของจำนวนเชิงซ้อน ให้ใช้โค้ดต่อไปนี้:
# testing abs() for a complex number complex_num = (3+10j) print("The magnitude of the complex number is:", abs(complex_num))
Output:
The magnitude of the complex number is: 10.44030650891055
วิธีค้นหาค่าสัมบูรณ์ของรายการใน Python
ฟังก์ชัน abs() ทำงานกับตัวเลขตัวเดียว ดังนั้นการส่งลิสต์ทั้งหมดเข้าไปจะทำให้เกิดข้อผิดพลาด TypeError หากต้องการใช้กับทุกรายการในลิสต์ ให้ใช้ list comprehension ที่เรียกใช้ abs() กับแต่ละองค์ประกอบ:
numbers = [12, 30, -33, -22, 77, -100] abs_numbers = [abs(num) for num in numbers] print(abs_numbers)
Output:
[12, 30, 33, 22, 77, 100]
คำสั่ง comprehension จะคงลำดับเดิมไว้และส่งคืนรายการค่าบวกใหม่ คุณสามารถได้ผลลัพธ์เดียวกันโดยใช้ฟังก์ชัน map() ที่มีอยู่แล้วในตัวได้เช่นกัน list(map(abs, numbers))ซึ่งจะใช้ abs() กับแต่ละองค์ประกอบโดยไม่ต้องเขียนลูปอย่างชัดเจน
- ใช้ list comprehension เมื่อต้องการกรองหรือแปลงค่าต่างๆ ด้วย
- ใช้ map() เพื่อการเรียกใช้ที่สั้นและอ่านง่าย ซึ่งจะนำ abs() มาใช้โดยตรง
- สำหรับชุดข้อมูลตัวเลขขนาดใหญ่ การใช้ NumPy array ร่วมกับ np.abs() จะเร็วกว่าการใช้ `np.abs()` Python ห่วง
Python abs() เทียบกับ math.fabs()
Python มีสองวิธีในการหาค่าสัมบูรณ์: ฟังก์ชัน abs() ที่มีอยู่แล้วในตัว และฟังก์ชัน fabs() จากโมดูล math ทั้งสองฟังก์ชันดูคล้ายกัน แต่ทำงานแตกต่างกัน:
import math print(abs(-7)) # 7 (int is unchanged) print(math.fabs(-7)) # 7.0 (float result)
Output:
7 7.0
ความแตกต่างที่สำคัญระหว่างฟังก์ชันทั้งสองมีดังนี้:
- ประเภทการส่งคืน: abs() จะรักษารูปแบบข้อมูลขาเข้าและส่งคืนค่าจำนวนเต็มสำหรับข้อมูลจำนวนเต็ม ในขณะที่ math.fabs() จะส่งคืนค่าทศนิยมเสมอ
- นำเข้า: abs() พร้อมใช้งานเสมอ แต่ math.fabs() ต้องการ
import math. - จำนวนเชิงซ้อน: abs() ส่งคืนค่าขนาดของจำนวนเชิงซ้อน ในขณะที่ math.fabs() จะทำให้เกิดข้อผิดพลาด TypeError สำหรับอินพุตที่เป็นจำนวนเชิงซ้อน
การประยุกต์ใช้งานจริงของ Python เอบีเอส () ฟังก์ชั่น
เนื่องจากฟังก์ชัน abs() ไม่คำนึงถึงเครื่องหมาย จึงมีประโยชน์เมื่อพิจารณาเฉพาะขนาดของค่าเท่านั้น ไม่ใช่ทิศทาง ตัวอย่างที่พบได้ทั่วไปคือการหาผลต่างระหว่างค่าสองค่า:
temp_morning = 12 temp_night = -5 print("Temperature change:", abs(temp_morning - temp_night))
Output:
Temperature change: 17
การใช้ค่าสัมบูรณ์ในชีวิตประจำวัน ได้แก่:
- ระยะทางและความแตกต่าง: การวัดช่องว่างระหว่างสองจุด ไม่ว่าจะเป็นอุณหภูมิหรือเวลา โดยไม่คำนึงถึงว่าค่าใดมากกว่ากัน
- ตัวชี้วัดข้อผิดพลาด: คำนวณค่าความคลาดเคลื่อนสัมบูรณ์ระหว่างค่าที่คาดการณ์ไว้กับค่าจริง
- การตรวจสอบค่าความคลาดเคลื่อน: การทดสอบว่าผลลัพธ์นั้นใกล้เคียงกับเป้าหมายมากพอหรือไม่ เช่น ใน
abs(actual - expected) < 0.01. - การเงิน: รายงานขนาดของกำไรหรือขาดทุนโดยไม่ระบุเครื่องหมาย
ชอบ ฟังก์ชัน round()abs() เป็นฟังก์ชันในตัวที่คุณสามารถเรียกใช้ได้โดยตรงโดยไม่ต้องนำเข้าโมดูลใดๆ
