Sự khác biệt giữa một biểu thức và một câu lệnh trong python là gì?

Mỗi biểu thức là một câu lệnh, nhưng không phải mọi câu lệnh đều là một biểu thức. Điều gì làm cho biểu hiện khác nhau?

Mục lục

Sự khác biệt giữa một biểu thức và một câu lệnh trong python là gì?

một tuyên bố là gì?

Một tuyên bố là một đoạn mã làm một cái gì đó

Nó thực hiện (các) hành động hoặc (các) chỉ dẫn có tác dụng

Ví dụ, gán giá trị cho một biến là một câu lệnh

x = 5

Nó thực hiện một phép gán, và kết quả là bây giờ biến x có giá trị là 5

Cũng như định nghĩa lớp, vòng lặp for hoặc if. khác

# definition of a class
class MyClass:
    pass

# for loop
for n in [1,2,3]:
    print(str(n))

if x == 6:
    print('it is six')
else:
    print('it is not six')
  • Định nghĩa lớp ở trên định nghĩa một lớp mới và kết quả là chúng ta có một lớp mới mà chúng ta có thể sử dụng
  • vòng lặp for phía trên lặp qua danh sách các số và kết quả là nó in ra chúng
  • nếu như. câu lệnh khác ở trên kiểm tra giá trị của x và in chuỗi tùy thuộc vào giá trị

một biểu thức là gì?

Một biểu thức là một đoạn mã tạo ra một giá trị. Chúng ta thường nói rằng biểu thức có thể được đánh giá (hoặc giảm) thành một giá trị

Vì vậy, một biểu thức là bất cứ điều gì dẫn đến một giá trị

Ví dụ: phép cộng đơn giản này là một biểu thức, vì nó đánh giá giá trị là 5

1 + 3
# evaluates to 5

Toán tử logic cũng là biểu thức vì chúng luôn tạo ra giá trị bool (Đúng hoặc Sai)

True and False
# evaluates to False

Một ví dụ khác là toán tử so sánh;

4 == 5
# evaluates to False

Một biểu thức có thể là một phần của biểu thức khác để chúng ta có thể xây dựng các biểu thức phức tạp hơn

4 == 5 or 2 == 2
# evaluaates to True

Một biểu thức có thể là một phần của một tuyên bố. ví dụ nếu. câu lệnh khác sử dụng biểu thức trong phần if vì nó cần giá trị bool để biết phải thực thi cái gì

x = 5
if x == 2:
    print('True branch')
else:
    print('False branch')

Sự khác biệt

Một tuyên bố là một đoạn mã làm một cái gì đó

Một biểu thức là một đoạn mã đánh giá một giá trị

Vì vậy, sự khác biệt giữa câu lệnh và biểu thức là biểu thức luôn tạo ra (đánh giá) một giá trị

Mỗi biểu thức cũng là một câu lệnh - nó làm một cái gì đó. nó trả về một giá trị

Nhưng không phải mọi câu lệnh đều là một biểu thức trừ khi nó tạo ra giá trị

Vì vậy, một biểu thức là một câu lệnh tạo ra (đánh giá) một giá trị

Biểu thức luôn có một kết quả có thể được gán cho một biến. Câu lệnh không phải là biểu thức sẽ không có kết quả và do đó không thể gán cho biến

Chung ta co thể lam được việc nay

# assign expression to a variable
x = 2 * 2
print(x)
# outputs 4

Nhưng chúng ta không thể làm điều này

________số 8_______

Cố gắng gán một câu lệnh cho biến x là không hợp lệ;

Vì vậy, một vài năm trước, tôi đang dạy phát triển web tại một bootcamp mã hóa địa phương và một sinh viên đã hỏi tôi câu hỏi này

Sự khác biệt giữa “câu lệnh” và “biểu thức” trong JavaScript là gì?

Tôi cảm thấy như tôi biết câu trả lời cho câu hỏi này, nhưng khi tôi cố gắng giải thích nó, tôi không thể diễn đạt thành lời. Tôi đã có cảm giác về nó, nhưng kiến ​​thức thực tế của tôi lại mơ hồ một cách đáng ngạc nhiên

Không có gì khiêm tốn hơn giảng dạy 😅. Học sinh có một sở trường để xác định "điểm mờ" trong sự hiểu biết của chúng tôi

Tôi đã nhận ra rằng câu hỏi này cực kỳ quan trọng. Đó là một cột bê tông chịu lực sẽ giúp hỗ trợ rất nhiều kiến ​​thức về JavaScript

Điều này đặc biệt đúng với các nhà phát triển React. Hầu hết các quy tắc JSX mà bạn phải ghi nhớ và luôn quên tuân theo, là kết quả của tính hai mặt của câu lệnh/biểu thức này

Trong bài đăng trên blog này, tôi sẽ chia sẻ một số điều hiển nhiên mà tôi đã có về sự khác biệt này và cách chúng ta có thể sử dụng thông tin này trong công việc hàng ngày của mình

Đối tượng dự định

Hướng dẫn này giả định rằng bạn cảm thấy thoải mái với cú pháp JavaScript cơ bản, nhưng nếu không thì nó được viết để thân thiện với người mới bắt đầu

Ở phần cuối của hướng dẫn, chúng ta xem xét một số ý nghĩa của React và phần này yêu cầu một số kinh nghiệm về React. Nếu bạn không phải là nhà phát triển React, vui lòng bỏ qua phần này;

Biểu thức

Về cốt lõi, một biểu thức là một đoạn mã JavaScript tạo ra một giá trị

Ví dụ, đây là tất cả các biểu thức

  • js

    4 → tạo ra

    js

    4

  • js

    6 → tạo ra

    js

    6

  • js

    8 → tạo ra

    js

    9

  • js

    0 → tạo ra hoặc là

    js

    1 hoặc là

    js

    2

  • js

    3 → tạo biểu tượng cảm xúc

  • js

    4 → tạo ra số

    js

    5

Biểu thức có thể chứa biểu thức. Ví dụ: bạn đếm được bao nhiêu biểu thức trong đoạn mã JS này?

Các câu lệnh

Một chương trình JavaScript là một chuỗi các câu lệnh. Mỗi câu lệnh là một hướng dẫn để máy tính làm một việc gì đó

Dưới đây là một số ví dụ về câu lệnh trong JavaScript

js

js

js

Đây là cách tôi muốn nghĩ về điều này. các câu lệnh là cấu trúc cứng nhắc giữ chương trình của chúng ta lại với nhau, trong khi các biểu thức điền vào các chi tiết

Các câu lệnh thường có "khe" cho các biểu thức. Chúng tôi có thể đặt bất kỳ biểu thức nào chúng tôi thích vào các vị trí đó

Ví dụ khai báo biến có ô biểu thức

js

Chúng tôi có thể sử dụng bất kỳ biểu thức nào chúng tôi đã thấy trước đó trong vị trí đó

js

Về mặt cú pháp hợp lệ, các biểu thức có thể hoán đổi cho nhau. Nếu một câu lệnh có một vị trí biểu thức, chúng ta có thể đặt bất kỳ biểu thức nào ở đó và mã sẽ chạy. Chúng tôi sẽ không gặp lỗi cú pháp

Điều đó nói rằng, chúng ta vẫn có thể gặp phải các vấn đề khác. Ví dụ: đoạn mã sau hợp lệ về mặt cú pháp, nhưng chúng tôi sẽ làm hỏng tab trình duyệt nếu chúng tôi cố chạy nó, vì nó gây ra một vòng lặp vô hạn

js

Một thủ thuật hữu ích

Bạn muốn biết liệu một đoạn JS là một biểu thức hay một câu lệnh?

js

Nếu nó chạy, mã là một biểu thức. Nếu bạn gặp lỗi, đó là một câu lệnh (hoặc có thể là JS không hợp lệ)

Như một phần thưởng, chúng ta thậm chí có thể xem biểu thức phân giải thành gì, vì nó sẽ được in trong bảng điều khiển trình duyệt

Điều này hoạt động vì tất cả các đối số chức năng phải là biểu thức. Biểu thức tạo ra một giá trị và giá trị đó sẽ được chuyển vào hàm. Các câu lệnh không tạo ra giá trị và vì vậy chúng không thể được sử dụng làm đối số của hàm

Ngay cả khi là một nhà phát triển có kinh nghiệm, tôi vẫn dựa rất nhiều vào

js

6. Đó là một công cụ linh hoạt tuyệt vời

Biểu thức dưới dạng câu lệnh

Đây là một biểu thức.

js

7

Điều gì xảy ra nếu chúng ta tạo một tệp JS chỉ bao gồm biểu thức này?

js

Tập tin này có bao nhiêu câu lệnh?

Đây là thỏa thuận. biểu thức không thể tồn tại một mình. Họ luôn luôn là một phần của một tuyên bố. Và vì vậy trong trường hợp này, chúng tôi có một tuyên bố giống như thế này

js

Tuyên bố về cơ bản là trống ngoài vị trí biểu thức của nó. Biểu thức của chúng tôi

js

7 điền vào chỗ trống này và tuyên bố của chúng tôi đã hoàn thành

Nói cách khác, tất cả các dòng sau đây là câu lệnh hợp lệ

js

Thông thường, các hướng dẫn sẽ nói sai rằng biểu thức là câu lệnh, nhưng điều này không hoàn toàn đúng. Biểu thức và tuyên bố là những điều khác biệt. Nhưng có thể một câu lệnh bao quanh một biểu thức mà không cung cấp bất kỳ ký tự bổ sung nào. Hãy nghĩ về nó giống như gói một chiếc bánh sandwich trong màng bọc trong suốt

Các câu lệnh thường kết thúc bằng dấu chấm phẩy, đánh dấu sự kết thúc của câu lệnh. Dấu chấm phẩy không cần thiết đối với một số câu lệnh nhất định, chẳng hạn như câu lệnh

js

0, vòng lặp

js

1 và khai báo hàm

Ý nghĩa thực tế trong React

Nếu bạn đã từng làm việc với React trước đây, bạn có thể biết rằng các dấu ngoặc ngoằn ngoèo (

js

2 và

js

3) cho phép chúng ta nhúng các bit JavaScript vào trong JSX của mình, như thế này

js

0

Đây là một phần khiến React trở nên kỳ diệu;

Nhưng có một nhược điểm - chúng tôi không thể đặt bất kỳ JavaScript nào bên trong dấu ngoặc nhọn. Cụ thể, chúng tôi chỉ có thể bao gồm các biểu thức, không phải câu lệnh. Các dấu ngoặc nguệch ngoạc về cơ bản tạo ra một vùng biểu thức trong JSX của chúng ta

Nếu chúng ta cố gắng nhúng một câu lệnh ở đây, chẳng hạn như câu lệnh if/else, chúng ta sẽ gặp lỗi

js

0

Điều này nổi lên vì các câu lệnh không tạo ra giá trị, chỉ các biểu thức mới tạo ra giá trị. Nếu chúng ta muốn nhúng logic if/else vào JSX của mình, chúng ta cần sử dụng biểu thức toán tử bậc ba

js

0

Điều này có vẻ giống như một giới hạn JSX/React kỳ lạ, nhưng thực ra đó là một giới hạn JavaScript

Tôi nghĩ rằng chúng ta thường đổ lỗi cho React về các quy tắc có vẻ tùy tiện, chẳng hạn như cách các thành phần phải trả về một phần tử cấp cao nhất. Nhưng thường xuyên hơn không, React chỉ cảnh báo chúng tôi về giới hạn JavaScript

Hiểu được sự khác biệt giữa câu lệnh và biểu thức là bước đầu tiên quan trọng để làm sáng tỏ toàn bộ danh mục cảnh báo và lỗi React. Chúng ta cũng cần tìm hiểu về cách JSX biên dịch thành JavaScript và cách hoạt động của chu trình đối chiếu và kết xuất của React… nhưng than ôi, những chủ đề đó nằm ngoài phạm vi của bài đăng trên blog này

Nhân tiện, tôi đang trong quá trình tạo một khóa học React toàn diện, tài nguyên mà tôi ước có khi tôi học React. Nó được gọi là The Joy of React, và bạn có thể đăng ký để cập nhật ngay hôm nay

Tóm tắt

Một chương trình JavaScript bao gồm một chuỗi các câu lệnh. Mỗi câu lệnh là một hướng dẫn để làm một việc gì đó, chẳng hạn như tạo một biến, chạy một điều kiện if/else hoặc bắt đầu một vòng lặp

Các biểu thức tạo ra một giá trị và các giá trị này được đưa vào các câu lệnh, giống như hộp mực Super Nintendo thay đổi những gì Super Nintendo thực hiện

Biểu thức luôn là một phần của câu lệnh, ngay cả khi câu lệnh đó trống. Ví dụ: mã bên dưới chạy một vòng lặp mà không sử dụng câu lệnh

js

4, nhưng nó vẫn bao gồm câu lệnh "trình bao bọc trống"

js

Có thể mất một lúc để sự khác biệt này trở nên trực quan, nhưng hy vọng bài đăng trên blog này đã làm rõ một số điều

Sự khác biệt giữa một biểu thức và một tuyên bố là gì?

Các biểu thức có ý nghĩa duy nhất, trong khi các câu lệnh có hai mặt khi thực thi . Ví dụ: 1 có giá trị nhất định trong khi go() có thể được thực thi hoặc không. Các câu lệnh là toàn bộ cấu trúc, trong khi các biểu thức là các khối xây dựng. Ví dụ, một dòng hoặc một khối mã là một câu lệnh.

Sự khác biệt giữa một câu lệnh và một biểu thức trong lập trình là gì?

các câu lệnh. Trong thuật ngữ ngôn ngữ lập trình, một “biểu thức” là sự kết hợp của các giá trị và hàm được trình biên dịch kết hợp và giải thích để tạo ra một giá trị mới, trái ngược với “câu lệnh” chỉ là một đơn vị thực thi độc lập và không trả về

Câu lệnh trong Python là gì?

Một câu lệnh là một lệnh mà trình thông dịch Python có thể thực thi . Chúng ta đã thấy hai loại tuyên bố. in ấn và phân công. Khi bạn gõ một câu lệnh trên dòng lệnh, Python sẽ thực thi nó và hiển thị kết quả, nếu có. Kết quả của câu lệnh in là một giá trị.

Biểu thức trong Python là gì?

Biểu thức Python. Biểu thức là đại diện của giá trị. Chúng khác với câu lệnh ở chỗ các câu lệnh làm một việc gì đó trong khi các biểu thức biểu thị giá trị. Ví dụ: bất kỳ chuỗi nào cũng là một biểu thức vì nó cũng đại diện cho giá trị của chuỗi