Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Nomor Python, Konversi Jenis dan Matematika

Bilangan Python, Konversi Jenis, dan Matematika

Dalam artikel ini, Anda akan mempelajari tentang berbagai angka yang digunakan dalam Python, cara mengonversi dari satu tipe data ke tipe data lainnya, dan operasi matematika yang didukung dalam Python.

Tipe Data Angka dengan Python

Python mendukung bilangan bulat, bilangan floating-point, dan bilangan kompleks. Mereka didefinisikan sebagai int , float , dan complex kelas dengan Python.

Integer dan floating point dipisahkan oleh ada atau tidaknya titik desimal. Misalnya, 5 adalah bilangan bulat sedangkan 5.0 adalah bilangan floating-point.

Bilangan kompleks ditulis dalam bentuk, x + yj , di mana x adalah bagian nyata dan y adalah bagian imajiner.

Kita dapat menggunakan type() berfungsi untuk mengetahui kelas mana yang dimiliki variabel atau nilai dan isinstance() berfungsi untuk memeriksa apakah itu milik kelas tertentu.

Mari kita lihat contohnya:

a = 5

print(type(a))

print(type(5.0))

c = 5 + 3j
print(c + 3)

print(isinstance(c, complex))

Ketika kita menjalankan program di atas, kita mendapatkan output sebagai berikut:

<class 'int'>
<class 'float'>
(8+3j)
True

Meskipun bilangan bulat dapat memiliki panjang berapa pun, angka floating-point hanya akurat hingga 15 tempat desimal (tempat ke-16 tidak akurat).

Angka-angka yang kita tangani setiap hari adalah dari sistem angka desimal (basis 10). Tetapi pemrogram komputer (umumnya pemrogram tertanam) perlu bekerja dengan sistem bilangan biner (basis 2), heksadesimal (basis 16) dan oktal (basis 8).

Dalam Python, kita dapat merepresentasikan angka-angka ini dengan menempatkan awalan yang tepat sebelum angka itu. Tabel berikut mencantumkan awalan ini.

Sistem Angka Awalan
Biner '0b' atau '0B'
Oktal '0o' atau '0O'
Heksadesimal '0x' atau '0X'

Berikut beberapa contohnya

# Output: 107
print(0b1101011)

# Output: 253 (251 + 2)
print(0xFB + 0b10)

# Output: 13
print(0o15)

Saat Anda menjalankan program, outputnya adalah:

107
253
13

Konversi Jenis

Kita dapat mengubah satu jenis angka menjadi yang lain. Ini juga dikenal sebagai paksaan.

Operasi seperti penambahan, pengurangan memaksa integer untuk mengapung secara implisit (otomatis), jika salah satu operan adalah float.

>>> 1 + 2.0
3.0

Kita bisa lihat di atas bahwa 1 (bilangan bulat) dipaksa menjadi 1,0 (float) untuk penjumlahan dan hasilnya juga bilangan floating point.

Kami juga dapat menggunakan fungsi bawaan seperti int() , float() dan complex() untuk mengkonversi antara jenis secara eksplisit. Fungsi-fungsi ini bahkan dapat mengonversi dari string.

>>> int(2.3)
2
>>> int(-2.8)
-2
>>> float(5)
5.0
>>> complex('3+5j')
(3+5j)

Saat mengonversi dari float ke integer, angka akan terpotong (bagian desimal dihilangkan).


Desimal Python

Float kelas bawaan Python melakukan beberapa perhitungan yang mungkin membuat kita takjub. Kita semua tahu bahwa jumlah 1.1 dan 2.2 adalah 3.3, tetapi Python tampaknya tidak setuju.

>>> (1.1 + 2.2) == 3.3
False

Apa yang terjadi?

Ternyata bilangan floating-point diimplementasikan pada perangkat keras komputer sebagai pecahan biner karena komputer hanya memahami biner (0 dan 1). Karena alasan ini, sebagian besar pecahan desimal yang kita ketahui, tidak dapat disimpan secara akurat di komputer kita.

Mari kita ambil contoh. Kita tidak dapat menyatakan pecahan 1/3 sebagai bilangan desimal. Ini akan menghasilkan 0,33333333... yang panjangnya tak terhingga, dan kita hanya bisa memperkirakannya.

Ternyata pecahan desimal 0,1 akan menghasilkan pecahan biner yang panjangnya tak terhingga dari 0,000110011001100110011... dan komputer kita hanya menyimpannya dalam jumlah terbatas.

Ini hanya akan mendekati 0,1 tetapi tidak pernah sama. Oleh karena itu, ini adalah keterbatasan perangkat keras komputer kami dan bukan kesalahan dalam Python.

>>> 1.1 + 2.2
3.3000000000000003

Untuk mengatasi masalah ini, kita dapat menggunakan modul desimal yang disertakan dengan Python. Sementara angka floating-point memiliki presisi hingga 15 tempat desimal, modul desimal memiliki presisi yang dapat diatur pengguna.

Mari kita lihat perbedaannya:

import decimal

print(0.1)

print(decimal.Decimal(0.1))

Keluaran

0.1
0.1000000000000000055511151231257827021181583404541015625

Modul ini digunakan ketika kita ingin melakukan perhitungan desimal seperti yang kita pelajari di sekolah.

Ini juga mempertahankan signifikansi. Kita tahu 25,50 kg lebih akurat daripada 25,5 kg karena memiliki dua tempat desimal yang signifikan dibandingkan dengan satu.

from decimal import Decimal as D

print(D('1.1') + D('2.2'))

print(D('1.2') * D('2.50'))

Keluaran

3.3
3.000

Perhatikan angka nol pada contoh di atas.

Kami mungkin bertanya, mengapa tidak menerapkan Decimal setiap kali, bukannya mengapung? Alasan utamanya adalah efisiensi. Operasi floating point yang dilakukan harus lebih cepat dari Decimal operasi.

Kapan menggunakan Desimal daripada float?

Kami biasanya menggunakan Desimal dalam kasus berikut.


Pecahan Python

Python menyediakan operasi yang melibatkan bilangan pecahan melalui fractions modul.

Pecahan memiliki pembilang dan penyebut, keduanya bilangan bulat. Modul ini memiliki dukungan untuk aritmatika bilangan rasional.

Kita dapat membuat objek Pecahan dengan berbagai cara. Mari kita lihat mereka.

import fractions

print(fractions.Fraction(1.5))

print(fractions.Fraction(5))

print(fractions.Fraction(1,3))

Keluaran

3/2
5
1/3

Saat membuat Fraction dari float , kita mungkin mendapatkan beberapa hasil yang tidak biasa. Hal ini disebabkan oleh representasi bilangan floating point biner yang tidak sempurna seperti yang telah dibahas pada bagian sebelumnya.

Untungnya, Fraction memungkinkan kita untuk membuat instance dengan string juga. Ini adalah pilihan yang lebih disukai saat menggunakan angka desimal.

import fractions

# As float
# Output: 2476979795053773/2251799813685248
print(fractions.Fraction(1.1))

# As string
# Output: 11/10
print(fractions.Fraction('1.1'))

Keluaran

2476979795053773/2251799813685248
11/10

Tipe data ini mendukung semua operasi dasar. Berikut beberapa contohnya.

from fractions import Fraction as F

print(F(1, 3) + F(1, 3))

print(1 / F(5, 6))

print(F(-3, 10) > 0)

print(F(-3, 10) < 0)

Keluaran

2/3
6/5
False
True

Matematika Python

Python menawarkan modul seperti math dan random untuk melakukan berbagai matematika seperti trigonometri, logaritma, probabilitas dan statistik, dll.

import math

print(math.pi)

print(math.cos(math.pi))

print(math.exp(10))

print(math.log10(1000))

print(math.sinh(1))

print(math.factorial(6))

Keluaran

3.141592653589793
-1.0
22026.465794806718
3.0
1.1752011936438014
720

Berikut adalah daftar lengkap fungsi dan atribut yang tersedia di modul matematika Python.

import random

print(random.randrange(10, 20))

x = ['a', 'b', 'c', 'd', 'e']

# Get random choice
print(random.choice(x))

# Shuffle x
random.shuffle(x)

# Print the shuffled x
print(x)

# Print random element
print(random.random())

Ketika kita menjalankan program di atas kita mendapatkan output sebagai berikut. (Nilai mungkin berbeda karena perilaku acak)

18
e
['c', 'e', 'd', 'b', 'a']
0.5682821194654443

Berikut adalah daftar lengkap fungsi dan atribut yang tersedia di modul acak Python.


Python

  1. Konversi Tipe C#
  2. Kata Kunci dan Pengidentifikasi Python
  3. Pernyataan Python, Indentasi dan Komentar
  4. Variabel Python, Konstanta dan Literal
  5. Konversi Jenis Python dan Pengecoran Jenis
  6. Masukan, Keluaran, dan Impor Python
  7. Variabel Python Global, Lokal dan Nonlokal
  8. Direktori Python dan Manajemen File
  9. Kesalahan Python dan Pengecualian Bawaan
  10. Bagaimana cara mendapatkan tanggal dan waktu saat ini dengan Python?