Viết các biểu thức toán sau đây dưới dạng biểu thức Python

Bài 3. Chương trình máy tính và dữ liệu – Câu 4 trang 26 SGK Tin học lớp 8. Viết các biểu thức toán dưới đây với các kí hiệu trong Pascal:

Viết các biểu thức toán dưới đây với các kí hiệu trong Pascal:

a. \[{a \over b} + {c \over d}\]

b. \[a{x^2} + bx + c\]

c. \[{1 \over x} – {a \over 5}\left[ {b + 2} \right]\]

d. \[\left[ {{a^2} + b} \right]{\left[ {1 + c} \right]^3}\]

Lời giải : 

Các biểu thức trong Pascal:

a. a/b+c/d.

b. a*x*x+b*x+c.

c. 1/x-a/5*[b+2].

d. [a*a+b]*[1+c]*[1+c]*[1+c] .

a] 1/2-3/4+[6/5]**2-7/2

b] -3-[2/3]*[10/9-5/3]**2-5/6

c] [12/35-6/7+18/4]/[6/7]-[-2/5]**3-1

d] ??? câu này bạn viết dư ngoặc hay thiếu ngoặc gì á :[[

-54/64-[[[1/9]*[8/27]]**2]*[[-1/3]**2]+[-18/128]

e]câu này cũng vậy nè :[[[ mình thêm ngoặc đầu tiên nhé >> a = 3 >>> pi = 3.14 >>> a + pi 6.140000000000000 >>> ho = "Phu" >>> ten = "Ong" >>> ho + ten 'PhuOng'

Chú ý cần phân biệt phép gán = với phép so sánh bằng nhau, so sánh đồng nhất ==.

Về biến số, ta có các khái niệm biến toàn cục và biến địa phương. Phần này sẽ thảo luận sau khi tìm hiểu về hàm function và lớp class.

Chúng ta có thể gán đồng thời nhiều giá trị cho nhiều biến cùng một lúc, ta gọi là phép gán đa biến [multiple assignment], sử dụng cú pháp sau

name1, name2 = value1, value2

Chẳng hạn, hãy xem ví dụ sau

>>> a, b = 10, 5 >>> ten, tuoi, sdt = 'Phu Ong', 31, '0123456789'

Chính nhờ ưu điểm này, mà để hoán đổi giá trị của hai biến, ta có thể chỉ sử dụng một câu lệnh và cũng không cần phải sử dụng thêm các biến trung gian như các ngôn ngữ khác, chỉ đơn giản như sau

>>> a, b = b, a

Chúng ta cũng có thể gán một giá trị cho đồng thời nhiều biến

>>> a = b = c = 300 >>> print[a, b, c] 300 300 300

Kiểu dữ liệu của biến trong Python

Nhiều ngôn ngữ lập trình như C, Dart,…, sử dụng kiểu dữ liệu tĩnh [static], tức là một biến chỉ có thể nhận các giá trị của cùng một kiểu. Python thì trái lại, các biến trong Python có thể nhận mọi giá trị thuộc bất kì kiểu nào.

>>> var = 23.5 >>> print[var] 23.5 >>> var = "Đây là một xâu này" >>> print[var] Đây là một xâu này

Bài tập

Hãy tự đặt 10 tên biến khác nhau và sử dụng trình thông dịch Python để kiểm tra xem tên đó có hợp lệ không.

Gợi ý. Sử dụng phép gán để kiểm tra tên có hợp lệ không, nếu gán thành công là hợp lệ, ngược lại là không hợp lệ.

Ngoài phép gán trực tiếp như trên, chúng ta còn có thể kết hợp phép gán với các phép toán khác như trong bảng dưới đây:

Toán tử Giải thích Ví dụ
+= Cộng giá trị của toán hạng bên trái với toán hạng bên phải và gán kết quả vào toán hạng bên trái. c += a tương đương với c=c+a
-= Trừ giá trị của toán hạng bên trái đi toán hạng bên phải rồi gán kết quả vào toán hạng bên trái. c -= a tương đương với c=c-a
*=  Nhân giá trị của toán hạng bên trái với toán hạng bên phải rồi gán kết quả vào toán hạng bên trái. c *= a tương đương với c=c*a
/= Chia giá trị của toán hạng bên trái cho toán hạng bên phải rồi gán kết quả vào toán hạng bên trái. c /= a tương đương với c=c/a
%= Chia lấy dư toán hạng bên trái cho toán hạng bên phải rồi gán kết quả vào toán hạng bên trái. c %= a tương đương với c=c%a
**= Lũy thừa toán hạng bên trái với số mũ là toán hạng bên phải rồi gán kết quả vào toán hạng bên trái. c **= a tương đương với c=c**a
//= Chia lấy phần nguyên toán hạng bên trái cho toán hạng bên phải rồi gán kết quả vào toán hạng bên trái. c //= a tương đương với c=c//a

2. Phép toán số học trong Python

Python cung cấp các phép toán số học sau:

  • Phép cộng +
    Tùy vào các toán hạng là kiểu số hay xâu mà phép cộng có tác dụng như phép cộng trong toán học, hoặc sẽ có tác dụng nối hai xâu str lại với nhau [phép cộng xâu], hoặc phép lấy hợp hai tập hợp. Ví dụ:

>>> 1 + 2 3 >>> "Phu" + "Ong" 'PhuOng'

  • Phép trừ -
    Phép trừ có tác dụng như phép trừ trong toán học, áp dụng cho kiểu số. Nếu áp dụng phép trừ cho các toán hạng kiểu tập hợp set thì ta có phép lấy hiệu hai tập hợp.

>>> 3 - 6 -3

  • Phép nhân *
    Nếu cả hai toán hạng là kiểu số thì phép nhân có tác dụng như phép nhân trong toán học. Còn nếu một trong hai toán hạng là xâu str, toán hạng còn lại là một số nguyên dương k thì phép nhân sẽ có tác dụng lặp lại xâu str đó thêm k lần.

>>> 2*3 6 >>> "Phu Ong"*3 'Phu OngPhu Ong Phu Ong' >>> 3*"Phu Ong" 'Phu OngPhu Ong Phu Ong'

  • Phép chia /
    Phép chia áp dụng cho kiểu số. Nếu các toán hạng là số thực hoặc số nguyên thì kết quả trả về luôn là số thực. Lưu ý, trong Python 2 thì phép chia này có tác dụng như phép chia lấy phần nguyên. Khi đó, muốn kết quả là một số thực bạn phải ép kiểu một trong hai toán hạng sang kiểu số thực float, chẳng hạn thay vì viết 1/2 bạn phải viết 1/2. hoặc 1./2

>>> 1/2 0.5 >>> 1/7 0.14285714285714285

  • Phép chia lấy phần nguyên //
    Phép chia // này tương ứng với phép toán div trong toán học và các ngôn ngữ khác. Khi chia số nguyên a cho số nguyên b ta được thương là q và số dư là r.

a = b*q + r

Kết quả của phép chia // này chính là thương q trong định nghĩa trên.

>>> 12//4 3 >>> 13//4 3 >>> 15//4 3

Khi chia số nguyên a cho số nguyên b ta được thương là q và số dư là r. Thì kết quả của phép chia lấy dư % chính là số r trong biểu thức đã nêu ở phần trước.

>>> 12 % 4 0 >>> 13 % 4 1 >>> 15 % 4 3

Đây chính là phép tính lũy thừa trong toán học, a**b trả về kết quả là ab.

>>>2**10 1024

Chú ý, a^b trong Python không phải là phép tính lũy thừa hoặc mũ, mà là phép toán dịch chuyển bit, xem phần sau để rõ hơn.

Bài tập

Sử dụng trình thông dịch Python và các phép toán số học để kiểm tra xem năm 2017 có là năm nhuận hay không.

3. Phép toán logic

Phép toán logic làm việc trên các toán tử logic, tức là các biến, biểu thức chỉ có hai khả năng đúng True hoặc sai False. Xin xem kiểu dữ liệu logic bool để hiểu rõ. Python cung cấp các phép toán logic and or not.

  • Phép toán and sẽ trả về kết quả True nếu cả hai toán hạng đều là True. Bảng giá trị chân lý của phép toán and như sau:
A B A and B
True True True
True False False
False True False
False False False
  • Phép toán or sẽ trả về kết quả True nếu một trong hai toán hạng là True. Bảng giá trị chân lý của phép toán or như sau:
A B A or B
True True True
True False True
False True True
False False False
  • Phép toán not được sử dụng để đảo ngược giá trị chân lý của một biểu thức. Bảng giả trị chân lý của phép toán not như sau:
A not A
True False
False True

Sau đây là một vài ví dụ minh họa, tất cả đều chạy trực tiếp trong trình thông dịch của Python.

>>> True and False False >>> True or False True >>> not False True

4. Phép toán so sánh trong Python

Kết quả trả về của một phép toán so sánh là True [đúng] hoặc False [sai], hai giá trị này thuộc kiểu dữ liệu logic bool. Python cung cấp các phép toán so sánh sau đây:

  • So sánh đồng nhất [giống nhau, bằng nhau] == Cần chú ý rằng phép so sánh đồng nhất khác với phép toán is
  • So sánh lớn hơn >
  • So sánh lớn hơn hoặc bằng >=
  • So sánh nhỏ hơn b] có kết quả False = Nếu giá trị của toán hạng bên trái lớn hơn hoặc bằng giá trị của toán hạng bên phải, thì trả về kết quả True [a >= b] có kết quả False > a = 60 >>> b= 13 >>> bin[a] '0b111100' >>> bin[b] '0b1101'

    Chúng ta có các phép toán chuyển đổi bit như sau:

    • Phép nghịch đảo ~ có tác dụng đổi các bit từ 0 sang 1 và ngược lại.

    >>> a = 1988 >>> ~a -1989 >>> bin[a] '0b11111000100' >>> bin[~a] '-0b11111000101'

    • Phép dịch chuyển bit. Xét dãy bit 00110 khi dịch sang trái sẽ được 01100, còn dịch sang phải sẽ được 00011. Phép dịch bit sang trái còn mang ý nghĩa là nhân một số cho 2, còn dịch sang phải mang ý nghĩa chia một số cho 2. 

    >>>a=2021 >>>bin[a] '0b11111100101' >>>bin[a^2] '0b11111100111' >>>bin[a>>1] '0b1111110010' >>>bin[a>>2] '0b111111001' >>>bin[a>a = [1,2,3,4,5,6,7,8,9,10] >>>1 in a True >>>[1,3] in a False >>>[1,2,3] in a False >>>b = [1,2,3,4,5,6,7,8,9,10] >>>1 in b True >>>2 in b True >>>[1,2] in b False >>>c = 'PHUONG' >>>'H' in c True >>>'PH' in c True >>>'UN' in c False

    Phép toán kiểm tra in còn được sử dụng trong vòng lặp for. Xin mời xem chi tiết tại Bài 6. Câu lệnh vòng lặp for trong Python

    Ngoài ra, còn có các phép toán trên tập hợp, xin mời các bạn xem thêm trong bài Kiểu dữ liệu tập hợp set trong Python.

    7. Thứ tự ưu tiên các phép toán

    Khi thực hiện một câu lệnh Python, các phép toán được thực hiện theo một thứ tự nhất định. Thứ tự ưu tiên các phép toán, lần lượt từ ưu tiên cao xuống thấp, trong Python như sau:

    Toán tử Giải thích
    [expressions...],

    [expressions...]{key: value...}{expressions...}

    Các nhóm biểu thức trong ngoặc đơn, biểu thức trong các phần tử của danh sách, từ điển, tập hợp.
    x[index]x[index:index]x[arguments...]x.attribute Phép truy cập phần tư, cắt khoảng phần tử và lời gọi đến các phương thức, thuộc tính
    await x Biểu thức await
    ** Phép lũy thừa
    +x-x~x Phép cộng thêm, trừ bớt, phép lấy số đối và phép toán bitwise NOT
    *@///% Phép nhân, phép nhân ma trận, phép chia, chia lấy phần nguyên, chia lấy phần dư
    +- Phép cộng, phép trừ
    Phép dịch bit
    & Phép toán bitwise AND
    ^ Phép toán bitwise XOR
    | Phép toán bitwise OR
    innot inisis not=!=== Phép toán so sánh, kiểm tra thành viên…
    not x Phép toán logic NOT
    and Phép toán logic AND
    or Phép toán logic OR
    if – else Câu lệnh điều kiện được thực hiện sau khi các biểu thức điều kiện của nó thực hiện xong
    lambda Hàm nặc danh
    := Phép gán

    Trong bảng trên, nằm cùng hàng với nhau có mức độ ưu tiên bằng nhau, khi đó chúng sẽ được thực hiện lần lượt từ trái qua phải.

Chủ Đề