SymPy - ตัวเลข
โมดูลหลักในแพ็คเกจ SymPy ประกอบด้วยคลาส Number ซึ่งแสดงถึงเลขอะตอม คลาสนี้มีคลาสย่อยสองคลาสคือคลาส Float และ Rational คลาสเหตุผลถูกขยายเพิ่มเติมโดยคลาสจำนวนเต็ม
ชั้นลอยแสดงถึงจำนวนจุดลอยตัวของความแม่นยำโดยพลการ
>>> from sympy import Float
>>> Float(6.32)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
6.32
SymPy สามารถแปลงจำนวนเต็มหรือสตริงให้ลอยได้
>>> Float(10)
10.0
Float('1.33E5')# scientific notation
133000.0
ในขณะที่แปลงเป็น float คุณสามารถระบุจำนวนหลักเพื่อความแม่นยำได้ตามที่ระบุด้านล่าง -
>>> Float(1.33333,2)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
1.3
การแทนค่าจำนวน (p / q) จะแสดงเป็นอ็อบเจ็กต์ของคลาส Rational โดย q เป็นจำนวนที่ไม่ใช่ศูนย์
>>> Rational(3/4)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\frac{3}{4}$
ถ้าตัวเลขทศนิยมถูกส่งผ่านไปยังตัวสร้าง Rational () จะส่งคืนค่าพื้นฐานของการแทนค่าฐานสอง
>>> Rational(0.2)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\frac{3602879701896397}{18014398509481984}$
สำหรับการแทนค่าที่ง่ายขึ้นให้ระบุข้อ จำกัด ตัวส่วน
>>> Rational(0.2).limit_denominator(100)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\frac{1}{5}$
เมื่อสตริงถูกส่งไปยังตัวสร้าง Rational () จำนวนเหตุผลของความแม่นยำโดยพลการจะถูกส่งกลับ
>>> Rational("3.65")
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\frac{73}{20}$
นอกจากนี้ยังสามารถรับวัตถุที่มีเหตุผลได้หากมีการส่งผ่านอาร์กิวเมนต์ตัวเลขสองตัว ส่วนเลขและตัวส่วนมีให้เป็นคุณสมบัติ
>>> a=Rational(3,5)
>>> print (a)
>>> print ("numerator:{}, denominator:{}".format(a.p, a.q))
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
3/5
numerator:3, denominator:5
>>> a
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\frac{3}{5}$
คลาสจำนวนเต็มใน SymPy แทนจำนวนเต็มขนาดใดก็ได้ ตัวสร้างสามารถรับ Float หรือ Rational number ได้ แต่ส่วนที่เป็นเศษส่วนจะถูกทิ้งไป
>>> Integer(10)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
10
>>> Integer(3.4)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
3
>>> Integer(2/7)
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
0
SymPy มีไฟล์ RealNumberคลาสที่ทำหน้าที่เป็นนามแฝงสำหรับ Float SymPy ยังกำหนด Zero และ One เป็นคลาสเดี่ยวที่สามารถเข้าถึงได้ด้วย S.Zero และ S.One ตามลำดับดังที่แสดงด้านล่าง -
>>> S.Zero
ผลลัพธ์มีดังนี้ -
0
>>> S.One
ผลลัพธ์มีดังนี้ -
1
อ็อบเจ็กต์จำนวน Singleton ที่กำหนดไว้ล่วงหน้าอื่น ๆ ได้แก่ Half, NaN, Infinity และ ImaginaryUnit
>>> from sympy import S
>>> print (S.Half)
ผลลัพธ์มีดังนี้ -
½
>>> print (S.NaN)
ผลลัพธ์มีดังนี้ -
nan
Infinity สามารถใช้ได้เป็นวัตถุสัญลักษณ์ oo หรือ S. Infinity
>>> from sympy import oo
>>> oo
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\infty$
>>> S.Infinity
ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -
$\infty$
หมายเลข ImaginaryUnit สามารถนำเข้าเป็นสัญลักษณ์ I หรือเข้าถึงเป็น S.ImaginaryUnit และแทนค่ารากที่สองของ -1
>>> from sympy import I
>>> I
เมื่อคุณเรียกใช้ข้อมูลโค้ดด้านบนคุณจะได้รับผลลัพธ์ต่อไปนี้ -
i
>>> S.ImaginaryUnit
ผลลัพธ์ของตัวอย่างข้อมูลข้างต้นมีดังนี้ -
i
>>> from sympy import sqrt
>>> i=sqrt(-1)
>>> i*i
เมื่อคุณเรียกใช้ข้อมูลโค้ดด้านบนคุณจะได้รับผลลัพธ์ต่อไปนี้ -
-1