Jadual Kandungan
fungsi portform dan penyebut
skor dan modul matematik
Ringkasan
Rumah pembangunan bahagian belakang Tutorial Python Modul matematik di Python: perpuluhan dan pecahan

Modul matematik di Python: perpuluhan dan pecahan

Mar 09, 2025 am 09:15 AM

Mathematical Modules in Python: Decimal and Fractions

Bahkan operasi matematik yang paling asas kadang -kadang dapat menghasilkan hasil yang salah. Ini disebabkan oleh batasan menyimpan nilai -nilai tepat nombor tertentu. Anda boleh mengatasi batasan ini dengan menggunakan modul

dalam python. Begitu juga, modul decimal dan math yang kami pelajari dalam tutorial sebelumnya akan membantu kami melakukan operasi aritmetik berasaskan pecahan. Walau bagaimanapun, modul cmath dalam python berlaku untuk berbuat demikian. fractions

Tutorial ini akan memperkenalkan kedua -dua modul ini dan fungsi yang berbeza yang mereka sediakan.

menggunakan modul perpuluhan

from decimal import Decimal

Decimal(121)
# 返回 Decimal('121')

Decimal(0.05)
# 返回 Decimal('0.05000000000000000277555756')

Decimal('0.05')
# 返回 Decimal('0.05')

Decimal((0, (8, 3, 2, 4), -3))
# 返回 Decimal('8.324')

Decimal((1, (8, 3, 2, 4), -1))
# 返回 Decimal('-832.4')
Salin selepas log masuk
Salin selepas log masuk
Seperti yang anda lihat, nilai fungsi

menentukan ketepatan pengiraan, peraturan pembulatan, dan kelakuan pengumpulan pengecualian. getcontext()

anda boleh menggunakan fungsi

untuk mendapatkan dan menetapkan konteks semasa pengiraan. Gunakan pernyataan setcontext() untuk mengubah konteks pengiraan buat sementara waktu. with Terdapat tiga konteks terbina dalam dalam modul

yang boleh digunakan untuk pengiraan:

, ROUND_HALF_UP dan ROUND_HALF_EVEN sebagai algoritma pembulatan mereka. Satu lagi perbezaan antara konteks ini adalah tingkah laku yang mendorong pengecualian. ROUND_HALF_EVEN Tiada pengecualian yang berkaitan dengan limpahan berangka, operasi tidak sah, dan pembahagian oleh sifar dinaikkan. DefaultContext membolehkan hampir semua pengecualian, yang bagus untuk debugging, manakala BasicContext digunakan sebagai konteks lalai untuk pengiraan. DefaultContext

Berikut adalah contoh cara menggunakan konteks yang berbeza untuk mendapatkan hasil yang berbeza untuk pembahagian mudah:

import decimal
from decimal import ROUND_DOWN, ROUND_UP, Decimal as D

dec_a = D('0.153')
dec_b = D('0.231')
zero = D('0')

print("无上下文(使用默认值): ", dec_a/dec_b)
# 无上下文(使用默认值):  0.6623376623376623376623376623

decimal.setcontext(decimal.BasicContext)
print("基本上下文: ", dec_a/dec_b)
# 基本上下文:  0.662337662

decimal.setcontext(decimal.ExtendedContext)
print("扩展上下文: ", dec_a/dec_b)
# 扩展上下文:  0.662337662
print("扩展上下文: ", dec_b/zero)
# 扩展上下文:  Infinity

decimal.setcontext(decimal.DefaultContext)
print("默认上下文: ", dec_a/dec_b)
# 默认上下文:  0.6623376623376623376623376623

with decimal.localcontext() as l_ctx:
    l_ctx.prec = 5
    l_ctx.rounding = ROUND_UP

    print("局部上下文: ", dec_a/dec_b)
    # 局部上下文:  0.66234
Salin selepas log masuk
Salin selepas log masuk
Di samping mencatatkan perbezaan dalam algoritma ketepatan dan pembulatan untuk konteks yang berbeza, anda juga boleh memerhatikan bahawa di bawah

, hasil pembahagian untuk 0 adalah ExtendedContext. Infinity

Banyak fungsi dalam decimal

juga menerima objek konteks sebagai parameter untuk melakukan pengiraan mereka. Dengan cara ini, anda boleh mengelakkan sentiasa menetapkan konteks atau nilai ketepatan yang dikira.
import decimal
from decimal import Decimal as D


print(D('22').sqrt(decimal.BasicContext))
# 4.69041576

print(D('22').sqrt(decimal.ExtendedContext))
# 4.69041576

print(D('22').sqrt(decimal.DefaultContext))
# 4.690415759823429554565630114

with decimal.localcontext() as l_ctx:
    l_ctx.prec = 5

    print(D('22').sqrt(l_ctx))
    # 4.6904
Salin selepas log masuk
Salin selepas log masuk

menggunakan modul pecahan

fractions Kadang -kadang, anda mungkin menghadapi situasi di mana anda perlu melakukan pelbagai operasi pada skor atau hasil akhir perlu menjadi skor. Modul

boleh membantu dalam kes ini.

Buat skor

Modul fractions Fraction membolehkan anda membuat contoh decimal dari nombor, nombor titik terapung, nombor perpuluhan dan juga rentetan. Seperti modul

, terdapat beberapa masalah dengan modul ini apabila membuat pecahan dari nombor titik terapung. Berikut adalah beberapa contoh:
from fractions import Fraction
from decimal import Decimal

Fraction(11, 35)
# 返回 Fraction(11, 35)

Fraction(10, 18)
# 返回 Fraction(5, 9)

Fraction('8/25')
# 返回 Fraction(8, 25)

Fraction(1.13)
# 返回 Fraction(1272266894732165, 1125899906842624)

Fraction('1.13')
# 返回 Fraction(113, 100)

Fraction(Decimal('1.13'))
# 返回 Fraction(113, 100)
Salin selepas log masuk

operasi aritmetik pecahan

Anda juga boleh melakukan operasi matematik mudah pada pecahan seperti nombor normal, seperti penambahan dan penolakan.
from decimal import Decimal

Decimal(121)
# 返回 Decimal('121')

Decimal(0.05)
# 返回 Decimal('0.05000000000000000277555756')

Decimal('0.05')
# 返回 Decimal('0.05')

Decimal((0, (8, 3, 2, 4), -3))
# 返回 Decimal('8.324')

Decimal((1, (8, 3, 2, 4), -1))
# 返回 Decimal('-832.4')
Salin selepas log masuk
Salin selepas log masuk

fungsi portform dan penyebut

Modul ini juga mempunyai beberapa kaedah penting, seperti limit_denominator(max_denominator), yang akan menemui dan mengembalikan pecahan yang paling dekat dengan pecahan nilai yang diberikan, dengan penyebut paling banyak max_denominator. Anda juga boleh menggunakan atribut numerator untuk mengembalikan pengangka pecahan yang diberikan (dilambangkan sebagai istilah terendah) dan atribut denominator untuk mengembalikan penyebut.

import decimal
from decimal import ROUND_DOWN, ROUND_UP, Decimal as D

dec_a = D('0.153')
dec_b = D('0.231')
zero = D('0')

print("无上下文(使用默认值): ", dec_a/dec_b)
# 无上下文(使用默认值):  0.6623376623376623376623376623

decimal.setcontext(decimal.BasicContext)
print("基本上下文: ", dec_a/dec_b)
# 基本上下文:  0.662337662

decimal.setcontext(decimal.ExtendedContext)
print("扩展上下文: ", dec_a/dec_b)
# 扩展上下文:  0.662337662
print("扩展上下文: ", dec_b/zero)
# 扩展上下文:  Infinity

decimal.setcontext(decimal.DefaultContext)
print("默认上下文: ", dec_a/dec_b)
# 默认上下文:  0.6623376623376623376623376623

with decimal.localcontext() as l_ctx:
    l_ctx.prec = 5
    l_ctx.rounding = ROUND_UP

    print("局部上下文: ", dec_a/dec_b)
    # 局部上下文:  0.66234
Salin selepas log masuk
Salin selepas log masuk

skor dan modul matematik

Anda juga boleh menggunakan modul ini dengan pelbagai fungsi dalam modul math untuk melakukan pengiraan berasaskan pecahan.

import decimal
from decimal import Decimal as D


print(D('22').sqrt(decimal.BasicContext))
# 4.69041576

print(D('22').sqrt(decimal.ExtendedContext))
# 4.69041576

print(D('22').sqrt(decimal.DefaultContext))
# 4.690415759823429554565630114

with decimal.localcontext() as l_ctx:
    l_ctx.prec = 5

    print(D('22').sqrt(l_ctx))
    # 4.6904
Salin selepas log masuk
Salin selepas log masuk

Ringkasan

Kedua -dua modul ini cukup untuk membantu anda melakukan operasi biasa pada nombor perpuluhan dan pecahan. Seperti yang ditunjukkan dalam bahagian terakhir, anda boleh menggunakan modul ini dengan modul math untuk mengira nilai pelbagai fungsi matematik dalam format yang anda inginkan.

Dalam tutorial seterusnya dalam siri ini, anda akan mempelajari modul random di Python.

Atas ialah kandungan terperinci Modul matematik di Python: perpuluhan dan pecahan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1662
14
Tutorial PHP
1262
29
Tutorial C#
1235
24
Python vs C: Aplikasi dan kes penggunaan dibandingkan Python vs C: Aplikasi dan kes penggunaan dibandingkan Apr 12, 2025 am 12:01 AM

Python sesuai untuk sains data, pembangunan web dan tugas automasi, manakala C sesuai untuk pengaturcaraan sistem, pembangunan permainan dan sistem tertanam. Python terkenal dengan kesederhanaan dan ekosistem yang kuat, manakala C dikenali dengan keupayaan kawalan dan keupayaan kawalan yang mendasari.

Rancangan Python 2 jam: Pendekatan yang realistik Rancangan Python 2 jam: Pendekatan yang realistik Apr 11, 2025 am 12:04 AM

Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python: Permainan, GUI, dan banyak lagi Python: Permainan, GUI, dan banyak lagi Apr 13, 2025 am 12:14 AM

Python cemerlang dalam permainan dan pembangunan GUI. 1) Pembangunan permainan menggunakan pygame, menyediakan lukisan, audio dan fungsi lain, yang sesuai untuk membuat permainan 2D. 2) Pembangunan GUI boleh memilih tkinter atau pyqt. TKInter adalah mudah dan mudah digunakan, PYQT mempunyai fungsi yang kaya dan sesuai untuk pembangunan profesional.

Berapa banyak python yang boleh anda pelajari dalam 2 jam? Berapa banyak python yang boleh anda pelajari dalam 2 jam? Apr 09, 2025 pm 04:33 PM

Anda boleh mempelajari asas -asas Python dalam masa dua jam. 1. Belajar pembolehubah dan jenis data, 2. Struktur kawalan induk seperti jika pernyataan dan gelung, 3 memahami definisi dan penggunaan fungsi. Ini akan membantu anda mula menulis program python mudah.

Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Apr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python dan Masa: Memanfaatkan masa belajar anda Python dan Masa: Memanfaatkan masa belajar anda Apr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python: meneroka aplikasi utamanya Python: meneroka aplikasi utamanya Apr 10, 2025 am 09:41 AM

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

See all articles