Kursus Pembangunan Python Lanjutan
Bab
>
Tahap
Modul Matematik
Pengenalan Modul Matematik
Objektif
Periksa geran tanah dan had harta di ladang, sahkan dan hitung nombor dengan menggunakan fungsi Modul Math.
Di pejabat yang terletak di hujung bangunan utama terdapat arkib pelan biru lama untuk bangunan dan geran tanah. Terdapat rancangan untuk mengembangkan ladang ke arah timur tetapi adalah penting untuk mengatur semua dokumen sebelum anda memutuskan untuk melihat mana-mana pelan pembinaan. Ini akan dilakukan dengan menggunakan modul math python.
import math
Seperti modul statistik sebelum ini, modul math mempunyai koleksi fungsi matematik yang boleh kita gunakan untuk meluaskan perpustakaan binaan python:
-
math.isnan(): Memeriksa jika nilai input bukan nombor -
math.isinf(): Memeriksa jika nilai input adalah nombor tak terhingga -
math.isfinite(): Memeriksa jika nilai input adalah terhingga -
math.prod(): Mendarabkan semua argumen yang ditambah -
math.pow(): Mengambil dua argumen dan memulangkan nilai argumen pertama yang dipangkatkan dengan argumen kedua. -
math.trunc(): Mengeluarkan bahagian perpuluhan daripada nombor titik apung, menjadikannya nombor bulat. (Tidak membundarkan, hanya mengeluarkan) -
math.copysign(): Mengambil dua argumen, menyalin tanda (-,+) dari argumen kedua dan mengenakannya kepada yang pertama. -
math.factorial(): Mengambil satu argumen dan mengira hasil darab bagi nombor tersebut dari nilai itu ke 1. Sebagai contoh, jika nilainya5ia akan menjadi:5x4x3x2x1dan menghasilkan satu keputusan.
Kita akan menggunakan fungsi-fungsi ini untuk menyemak dan mencatat beberapa data bagi menyediakan projek pembangunan. Terdapat tiga pemalar senarai yang menyimpan skema bagi ladang, yang dinamakan: red_schematics, green_schematics, blue_schematics. Skema-skema ini mempunyai nilai-nilai bukan numerik dan tidak boleh digunakan, gunakan fungsi-fungsi matematik untuk mengenal pasti elemen, cari data yang boleh digunakan supaya kita boleh mencatatkannya.
Pertama, bergerak ke tanda X gelap di atas karpet merah, dan gunakan gelung untuk melayari elemen-elemen dalam pemalar senarai red_schematics bagi mengenal pasti elemen yang boleh digunakan.
for x in red_schematics: y = math.isnan (float(x)) if y == True: player.speak("Not a Number") else: y = math.isinf(float(x)) if y == True: player.speak("Is infinite") else: player.speak(x)
Gelung akan melalui semua elemen dalam senarai, fungsi math.isnan() akan mengenal pasti entri bukan numerik, dan math.isinf() akan mengenal pasti nilai tak terhingga yang tidak boleh digunakan untuk tujuan pengumpulan data. Buat senarai baru bernama red_values dan gunakan pemahaman senarai untuk mengeluarkan elemen yang tidak diingini dengan menggunakan math.isfinite() untuk menapisnya, seperti berikut: red_values = [x for x in red_schematics if math.isfinite(float(x))] .
Seterusnya, jumlahkan semua nombor dengan menggunakan fungsi math.prod() untuk menambah semua item dalam senarai, seperti berikut: red_values = math.prod(red_values) .
Lakukan proses penapisan yang sama pada tanda X gelap di atas karpet hijau dan biru, menggunakan pemalar senarai green_schematics dan blue_schematics serta mengumpulkan elemen-elemen dalam senarai bernama green_values dan blue_values.
Bergerak ke tanda X emas, hadapi meja dan gunakan fungsi write() yang telah ditulis dalam editor untuk mencatat data skema yang boleh digunakan. Setelah anda mengumpulkan semuanya, bergerak ke tanda X cerah dan gunakan fungsi open() untuk mengakses bilik seterusnya.
Setibanya di bilik seterusnya, terdapat beberapa meja dengan beberapa geran tanah dan koordinat. Adalah idea yang baik untuk mencatat beberapa data sebelum meneruskan pemeriksaan penambahan baru ke ladang di kawasan seterusnya seberang jambatan. Bergerak ke tanda X cerah di hadapan peti yang mengandungi peta di sebelah meja pertama, gunakan fungsi read() untuk mendapatkan data indeks bagi geran tanah.
Bergerak ke tanda X gelap di atas karpet ungu, cipta pembolehubah bernama purple_data dan gunakan fungsi math.pow() untuk mendarab data yang anda perolehi bagi mendapatkan maklumat koordinat. Kuasakan indeks tersebut sebanyak 3, seperti berikut: purple_data = math.pow( -index data- , 3 ), pastikan anda menambahkan data indeks yang telah anda baca sebelum ini. Gunakan math.trunc() untuk mengeluarkan data perpuluhan dari pembolehubah, seperti berikut: purple_data = math.trunc(purple_data) . Setelah selesai, di tanda X, gunakan fungsi write() yang telah ditulis dalam editor dengan purple_data untuk mencatat data yang disimpan dalam pembolehubah.
Untuk menyimpulkan, bergerak ke tanda X cerah di hadapan kabinet fail yang terletak di sebelah meja atas. Gunakan fungsi read() untuk mendapatkan data indeks sekali lagi, data ini perlu dibuka untuk mendedahkan lebih banyak maklumat koordinat bagi tanah. Cipta pembolehubah bernama white_data untuk menyimpan nilai data yang ditemui dalam fail dan pembolehubah bernama sign untuk menyimpan nombor tanda yang ditemui dalam fail. Bergerak ke tanda X gelap di atas karpet putih dan gunakan fungsi math.copysign() dengan menggunakan dua pembolehubah yang telah anda cipta sebagai argumen dan tetapkan nilainya kepada white_data, seperti berikut: white_data = math.copysign(white_data,sign) .
Setelah selesai, dengan white_data, gunakan math.factorial() untuk mengira hasil darab indeks, tukarkan white_data kepada integer dan gunakannya dengan fungsi, seperti berikut: white_data = math.factorial(int(white_data)) . Gunakan fungsi write() yang telah ditulis pada editor untuk mencatat white_data bagi melengkapkan tahap tersebut.