Hướng dẫn dùng math trunc python - sử dụng tốt thân cây trăn

Dẫn nhập

Trong các bài trước, bạn đã làm quen với khái niệm BIẾN TRONG PYTHON.

Nội dung chính

  • Dẫn nhập
  • Nội dung chính
  • Số là gì?
  • Một số kiểu dữ liệu số cơ bản trong Python
  • Số nguyên
  • Số thực
  • Số phức
  • Các toán tử cơ bản với kiểu dữ liệu số trong Python
  • Tránh nhầm lẫn khi thực hiện các phép tính với số thực (float)
  • Mức độ ưu tiên của các toán tử
  • Toán tử := (Assignment expression)
  • So sánh giữa số với số trong Python
  • Thư viện math trong Python
  • Câu hỏi củng cố
  • Bài tập trắc nghiệm rèn luyện Kquiz
  • Kết luận
  • Thảo luận

Ở bài này Kteam sẽ đề cập đến các bạn KIỂU DỮ LIỆU SỐ.  Một trong những kiểu dữ liệu cực kì quan trọng của Python!Kteam sẽ đề cập đến các bạn KIỂU DỮ LIỆU SỐ.  Một trong những kiểu dữ liệu cực kì quan trọng của Python!


Nội dung chính

Số là gì?

  • Một số kiểu dữ liệu số cơ bản trong Python
  • Số nguyên
  • Số thực

Số phức

  • Các toán tử cơ bản với kiểu dữ liệu số trong Python
  • Tránh nhầm lẫn khi thực hiện các phép tính với số thực (float)
  • Mức độ ưu tiên của các toán tử
  • Toán tử := (Assignment expression)

Số là gì?

Một số kiểu dữ liệu số cơ bản trong Python

Số nguyên

Số thực


Một số kiểu dữ liệu số cơ bản trong Python

Số nguyên

Số thực bao gồm các số nguyên dương (1, 2, 3, ..), các số nguyên âm (-1, -2, -3) và số 0. Trong Python, kiểu dữ liệu số nguyên cũng không có gì khác biệt.

Số phứcGán giá trị cho một biến a là 4 và xuất ra kiểu dữ liệu của a.

>>> a = 4    # gán giá giá trị của biến a là số 4, là một số nguyên
>>> a
4
>>> type(a)  # số nguyên thuộc lớp ‘int’ trong Python

Các toán tử cơ bản với kiểu dữ liệu số trong PythonKHÔNG THỂ.


Số thực

Số phứcsố thực, thì đây là tập hợp các số nguyên và số thập phân 1, 1.4, -123, 69.96,…

Các toán tử cơ bản với kiểu dữ liệu số trong PythonGán giá trị của biến f là 1.23 và xuất ra kiểu dữ liệu của f.

>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

Tránh nhầm lẫn khi thực hiện các phép tính với số thực (float)Thường khi chúng ta viết số thực, phần nguyên và phần thập phân được tách nhau bởi dấu phẩy ( , ). Thế nhưng trong Python, dấu phẩy ( , ) này được thay thế thành dấu chấm ( . )

Mức độ ưu tiên của các toán tử

Toán tử := (Assignment expression)Số thực 10/3

>>> 10 / 3   # đây là một số vô hạn tuần hoàn 3.3333333333333333333..
3.3333333333333335

So sánh giữa số với số trong Python Decimal

>>> from fractions import Fraction   # lấy toàn bộ nội dung của thư viện Decimal,khuyến khích dùng: from fractions import Fraction trong việc học để tạo thói quen trong công việc sau này.
>>> getcontext().prec = 30   # lấy tối đa 30 chữ số phần nguyên và phần thập phân Decimal
>>> Decimal(10) / Decimal(3)
Decimal(‘3. 33333333333333333333333333333’)
>>> Decimal(100) / Decimal(3)
Decimal(’33.3333333333333333333333333333’)
>>> type(Decimal(5))   # các số Decimal thuộc lớp Decimal

Thư viện math trong PythonDecimal có độ chính xác cao hơn so với float tuy nhiên nó lại khá rườm rà so với float. Do đó, hãy cân bằng sự tiện lợi và chính xác để chọn kiểu dữ liệu phù hợp.


Câu hỏi củng cố

Bài tập trắc nghiệm rèn luyện Kquiztử sốmẫu số.

Kết luận

Thảo luậnFraction với cú pháp sau

Ở bài này Kteam sẽ đề cập đến các bạn KIỂU DỮ LIỆU SỐ.  Một trong những kiểu dữ liệu cực kì quan trọng của Python!(, )

Để đọc hiểu bài này tốt nhất bạn cần: Nhập phân số ¼, 3/9, ¾,

>>> from fractions import * # lấy toàn bộ nội dung của thư viện decimal
>>> Fraction(1, 4)   # phân số với tử số là 1, mẫu số là 4.
Fraction(1, 4)
>>> Fraction(3, 9)  # phân số sẽ được tối giản nếu có thể
Fraction(1, 3)
>>> type(Fraction(3, 4))  # các phân số thuộc lớp Fraction

Cài đặt sẵn MÔI TRƯỜNG PHÁT TRIỂN CỦA PYTHON.

>>> from fractions import *
>>> Fraction(1, 0)
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Users\PC\AppData\Local\Programs\Python\Python310\lib\fractions.py", line 156, in __new__
    raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
ZeroDivisionError: Fraction(1, 0)
>>> Fraction(1.55, 0)
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Users\PC\AppData\Local\Programs\Python\Python310\lib\fractions.py", line 152, in __new__
    raise TypeError("both arguments should be "
TypeError: both arguments should be Rational instances

Số phức

Các toán tử cơ bản với kiểu dữ liệu số trong PythonSố Phức, Kteam khuyên bạn nên bỏ qua phần này.

Tránh nhầm lẫn khi thực hiện các phép tính với số thực (float)

Mức độ ưu tiên của các toán tử

Toán tử := (Assignment expression)

  • So sánh giữa số với số trong Python
  • Thư viện math trong Python

Câu hỏi củng cố

Bài tập trắc nghiệm rèn luyện Kquizcomplex với cú pháp sau

Kết luận(,)

Thảo luận

Ở bài này Kteam sẽ đề cập đến các bạn KIỂU DỮ LIỆU SỐ.  Một trong những kiểu dữ liệu cực kì quan trọng của Python!


Để đọc hiểu bài này tốt nhất bạn cần:

Cài đặt sẵn MÔI TRƯỜNG PHÁT TRIỂN CỦA PYTHON.

.realreal

Xem qua bài CÁCH CHẠY CHƯƠNG TRÌNH PYTHON.

.imagimag

Nắm CÁCH GHI CHÚ và BIẾN TRONG PYTHON.  Nhập một số số phức sau

  1. Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:
  2. Số là gì?
  3. Một số kiểu dữ liệu số cơ bản trong Python.
  4. Các toán tử cơ bản với kiểu dữ liệu số trong Python.
  5. Thư viện math trong Python.
  6. Con số ở khắp nơi trong cuộc sống chúng ta. Bất cứ lúc nào bạn cũng có thể bắt gặp con số trong cuộc sống.
>>> 3j + 1  # phần thực là 1, phần ảo là 3
(1 + 3j)
>>> c = 2 + 1j  # gán giá trị cho biến c là một số phức với phần thực là 2 còn phần ảo là 1
>>> c
(2 + 1j)
>>> 4 + j   # phần ảo là 1, tuy vậy chúng ta không được phép bỏ số 1 như trong toán
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'j' is not defined
>>> 4 + 1j
(4 + 1j)
>>> c.imag  # lấy phần ảo của số phức 2 + 1j mà ta đã gán cho biến c
1.0
>>> c.real  # lấy phần thực
2.0
>>> complex(3, 1)  # dùng hàm complex để tạo một số phức với phần thực là 3, ảo là 1
(3 + 1j)
>>> complex(2)      # chỉ có phần thực, phần ảo được mặc định là 0
(2 + 0j)
>>> type(3 + 1j)   # các số phức thuộc lớp complex


Các toán tử cơ bản với kiểu dữ liệu số trong Python

Tránh nhầm lẫn khi thực hiện các phép tính với số thực (float)thực thể toán học. Nói cách khác, nó là một sự kết hợp giữa 2 thành phần:

  • Mức độ ưu tiên của các toán tử: có thể là một hằng số, biến số (X , Y)
  • Toán tử := (Assignment expression): xác định cách thức làm việc giữa các toán hạng (+,-,*,/)

So sánh giữa số với số trong Python

Hướng dẫn dùng math trunc python - sử dụng tốt thân cây trăn

Thư viện math trong Python Cho 2 biến a,b lần lượt bằng 8 và 3. Thực hiện các biểu thức toán học với a,b.

>>> a = 8
>>> b = 3
>>> a + b   # tương đương 8 cộng 3
11
>>> a – b    # tương đương 8 trừ 3
5
>>> a * b   # tương đương 8 nhân 3
24
>>> a / b   # tương đương 8 chia 3
2.6666666666666665
>>> a // b  # tương đương với 8 chia nguyên 3
2
>>> a % b   # tương đương với 8 chia dư 3
2
>>> a ** b   # tương đương 8 mũ 3
512

Tránh nhầm lẫn khi thực hiện các phép tính với số thực (float)

Mức độ ưu tiên của các toán tử

>>> 0.1 + 0.2
0.30000000000000004
>>> 0.20 - 0.15
0.05000000000000002
>>> 0.05 * 0.2
0.010000000000000002

Toán tử := (Assignment expression)

Máy tính lưu trữ các số dưới dạng các dãy nhị phân. Do đó nên khi muốn lưu trữ bất kì một số nào đó, máy tính sẽ phải chuyển số đó về dạng nhị phân. Nhưng có nhiều số không thể được chuyển một cách chính xác hoàn toàn, và xuất hiện sai số.

Khi học tập cũng như khi làm việc, các bạn cần chú ý đến những lỗi như thế này để tránh nhầm lẫn.


Mức độ ưu tiên của các toán tử

Kteam xin lưu ý cho các bạn khi sử dụng toán tử: Các phép toán được thực hiện từ bên trái sang phải của biểu thức, đồng thời có độ ưu tiên thực hiện khác nhau (giống như khi ta thực hiện các phép tính bình thường) Bảng sau sẽ đề cập đến một số toán tử với độ ưu tiên thực hiện từ trên xuống dưới (các biểu thức được đặt trong cặp ngoặc đơn được tính toán đầu tiên):
Bảng sau sẽ đề cập đến một số toán tử với độ ưu tiên thực hiện từ trên xuống dưới (các biểu thức được đặt trong cặp ngoặc đơn được tính toán đầu tiên):

Hãy cùng xem xét các ví dụ sau:

>>> 2 + 3 * 4 # Bằng 14 do phép nhân được thực hiện trước
14
>>> 2 * 3**2 # Bằng 18 do phép lũy thừa được thực hiện trước
18
>>> 2 * (2 + 3) – 3 # Bằng 7
7
>>> 2**3 * (1 + 3 % 2) # Bằng 16
16

Toán tử := (Assignment expression)

Nếu bạn để ý kĩ bảng trên, thì các bạn sẽ thấy một toán tử được gọi là Assignment expression (kí hiệu :=) ở hàng cuối cùng. Tại sao nó lại được gọi với cái tên như vậy ? Công dụng của nó là gì ? Kteam sẽ giúp các bạn hiểu rõ hơn về toán tử này.Assignment expression (kí hiệu :=) ở hàng cuối cùng. Tại sao nó lại được gọi với cái tên như vậy ? Công dụng của nó là gì ? Kteam sẽ giúp các bạn hiểu rõ hơn về toán tử này.

Thông thường, để gán giá trị cho một biến nào đó, ta dùng toán tử “=” (phép gán). Nhưng việc sử dụng nó cũng có những hạn chế. Hãy xem xét ví dụ sau:gán). Nhưng việc sử dụng nó cũng có những hạn chế. Hãy xem xét ví dụ sau:

>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

0

Ta có thể thấy rằng, đối với toán tử “=”, việc gán các giá trị chỉ được thực hiện khi bản thân lệnh gán đó được dùng trên một dòng. Việc thực hiện phép gán trong khi đang thực hiện các lệnh khác là không được cho phép.một dòng. Việc thực hiện phép gán trong khi đang thực hiện các lệnh khác là không được cho phép.

Toán tử “:=” được sinh ra là vì lí do đó. Nó giúp khắc phục được điểm yếu của toán tử “=”.

Mời các bạn cùng Kteam xem các ví dụ để hiểu rõ hơn:

>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

1

So sánh giữa số với số trong Python

Bạn chắc biết so sánh là gì nhờ các tiết học toán ở trường. Ví dụ như

  • 3 > 1 là đúng
  • 69 < 10 là sai
  • 241 = 141 + 100 là đúng
  • (5 x 0) ≠ 0 là sai.

Trong Python cũng có các toán tử như vậy. Tuy nhiên kí hiệu của chúng thì có khác đôi chút.

Bảng sau đây sẽ cho các bạn thông tin về những toán tử so sánh trong Python

Hãy xem ví dụ minh họa trong Python:

>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

2

Ngoài kiểu dữ liệu số, các toán tử so sánh còn có thể được thực hiện trên các kiểu dữ liệu khác – điều mà các bạn sẽ được tìm hiểu trong các bài tiếp theo


Thư viện math trong Python

Thư viện math trong Python hỗ trợ rất nhiều hàm tính toán liên quan đến toán học.

Để sử dụng một thư viện nào đó, ta dùng lệnh

import

Muốn sử dụng một hàm nào đó của thư viện, ta sử dụng cú pháp

.

Dưới đây là một số hàm thường được dùng trong việc tính toán cơ bản.

Ví dụ:

>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

3

Câu hỏi củng cố

  1. Kiểu dữ liệu số nguyên thuộc lớp nào?
  2. Sự khác nhau giữa hai biến a và b dưới đây là gì?
>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

4
  1. Tại sao lại có sự khác nhau khi sử dụng hàm `trunc` ở thư viện math so với toán tử `//`
>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

5

Trong khi chúng lại có trùng kết quả ở phép tính này. 

>>> f = 1.23   # gán giá trị của biến f là số 1.23, là một số thực
>>> f
1.23
>>> type(f)    # số thực trong Python thuộc lớp ‘float’

>>> q = 1.0   # đây là số thực, không phải số nguyên
>>> q
1.0
>>> type(q)

6

Đáp án của phần này sẽ được trình bày ở bài tiếp theo. Tuy nhiên, Kteam khuyến khích bạn tự trả lời các câu hỏi để củng cố kiến thức cũng như thực hành một cách tốt nhất!  


Bài tập trắc nghiệm rèn luyện Kquiz

Các bạn làm bài tập trắc nghiệm tại đây hoặc nhấn vào ảnh để giải đề.


Kết luận

Bài viết này đã giới thiệu cho các bạn một số KIỂU DỮ LIỆU SỐ trong Python.

Ở bài sau, Kteam sẽ nói về KIỂU DỮ LIỆU CHUỖI TRONG PYTHON - một kiểu dữ liệu cũng cực kì quan trọng.

Cảm ơn bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.Luyện tập – Thử thách – Không ngại khó”.


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.