


Modul matematik di Python: perpuluhan dan pecahan
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
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')
menentukan ketepatan pengiraan, peraturan pembulatan, dan kelakuan pengumpulan pengecualian. getcontext()
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
, 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
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
, hasil pembahagian untuk 0 adalah ExtendedContext
. Infinity
Banyak fungsi dalam decimal
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
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
Buat skor
Modul fractions
Fraction
membolehkan anda membuat contoh decimal
dari nombor, nombor titik terapung, nombor perpuluhan dan juga rentetan. Seperti modul
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)
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')
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
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
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!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

Cara mengelakkan dikesan semasa menggunakan fiddlerevery di mana untuk bacaan lelaki-dalam-pertengahan apabila anda menggunakan fiddlerevery di mana ...

Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

Bagaimana Mengajar Asas Pengaturcaraan Pemula Komputer Dalam masa 10 jam? Sekiranya anda hanya mempunyai 10 jam untuk mengajar pemula komputer beberapa pengetahuan pengaturcaraan, apa yang akan anda pilih untuk mengajar ...

Bagaimanakah Uvicorn terus mendengar permintaan HTTP? Uvicorn adalah pelayan web ringan berdasarkan ASGI. Salah satu fungsi terasnya ialah mendengar permintaan HTTP dan teruskan ...

Menggunakan Python di Terminal Linux ...

Fastapi ...

Memahami Strategi Anti-Crawling of Investing.com Ramai orang sering cuba merangkak data berita dari Investing.com (https://cn.investing.com/news/latest-news) ...
