3 กุมภาพันธ์ 2559

Published 2/03/2559 by with 0 comment

ค่า NaN ในภาษาไพทอน Python

ค่า NaN ในภาษาไพทอน Python

สวัสดีผู้อ่านทุกท่านครับ บทความเป็นเรื่องเกี่ยวกับค่า NaN ในภาษาไพทอน Python ครับ
ค่า NaN คือ ค่าอะไร ?
จากโจทย์ทางคณิตศาสตร์

ตัวอย่างเช่น 1/0 ทางหลักคณิตศาสตร์ไม่มีนิยาม (อ่านรายละเอียดได้จาก - วิกิพีเดีย https://en.wikipedia.org/wiki/Division_by_zero) แต่ในทางการเขียนโปรแกรมคอมพิวเตอร์มีการกำหนดให้ค่านั้นเป็นค่า NaN ตามมาตรฐาน IEEE 754 (https://en.wikipedia.org/wiki/NaN)
ดังนั้น ค่า NaN คือ ค่าที่ผิดพลาดทางหลักคณิตศาสตร์ ไม่ใช่ตัวเลข และค่า NaN ไม่มีค่าเท่ากับค่าใดเลย แม้แต่ค่า NaN ของตัวมันเอง

ในภาษาไพทอน (Python) ภาษาไพทอนเองไม่ยอมให้เกิดค่า NaN ขึ้นได้จากการ / ในโค้ด ตัวอย่างเช่น

[python]
>>> 1/0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
[/python]

ภาษาไพทอนจะขึ้นข้อผิดพลาดว่าไม่สามารถหารด้วยศูนย์ได้ ภาษาไพทอนจึงไม่ยอมให้มีค่า NaN เกิดขึ้นมาได้ ยกเว้น เรากำหนดตัวแปรให้มีค่า NaN ขึ้นมา

[python]
a = float('NaN')
print(a) #แสดงค่า nan ของตัวแปร
print(a == a) # ตรวจสอบการเท่ากันของค่า nan กับค่า nan ของตัวมันเอง
[/python]

ผลลัพธ์
nan
False

จะเห็นได้ว่า ค่า NaN ในภาษาไพทอน ไม่เท่ากับค่าใดแม้แต่ตัวมันเอง

การตรวจสอบว่าเป็นค่า NaN หรือไม่ในภาษาไพทอน


สามารถใช้ไลบรารี math (รองรับตั้งแต่ Python 2.6 ขึ้นไป) ในภาษาไพทอนตรวจสอบว่าค่าหรือตัวแปรนั้นเป็นค่า NaN หรือไม่ ได้โดยใช้คำสั่ง math.isnan() ถ้าเป็นค่า NaN จะคืนค่า True
ตัวอย่างเช่น

[python]
import math
x=float('nan')
print(math.isnan(x))
[/python]

ผลลัพธ์
True

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)