Bạn có thể lồng các toán tử ternary python không?

10
10
10
1
10
10
10
2_______2_______4
10
7
10
6==
10
10
10
0
10
9 # Program to demonstrate conditional operator1

# Program to demonstrate conditional operator2

10
7 # Program to demonstrate conditional operator4
10
9 # Program to demonstrate conditional operator6
10
10
10
4

Thời gian phức tạp. Ô[1]

Không gian phụ trợ. Ô[1]

Cách tiếp cận trên có thể được viết là.  
 

con trăn




'''When condition becomes true, expression [on_false]
   is not executed and value of "True and [on_true]"
   is returned.  Else value of "False or [on_false]"
   is returned.
   Note that "True and x" is equal to x. 
   And "False or x" is equal to x. '''
[expression] and [on_true] or [on_false] 
6

a, b=

10
0
10
1
10
2

 

10
7 a, b5_______73_______ a, b7

a, b8

10
7 =0

# Program to demonstrate conditional operator2

10
10
10
1
10
10
10
2# Program to demonstrate conditional operator1_______0_______4

a, b8

10
9=8

# Program to demonstrate conditional operator2

10
10
10
1
10
10
10
2# Program to demonstrate conditional operator6
10
10
10
4

10
9=8

a, b8

10
10
10
1
10
10
10
2
10
4_______0_______4

đầu ra

 b is greater than a

Thời gian phức tạp. Ô[1]

Không gian phụ trợ. Ô[1]

  • Để sử dụng chức năng in trong toán tử ternary giống như. -

Thí dụ. Tìm số lớn hơn trong số 2 bằng cách sử dụng toán tử ternary trong python3

Python3




10
6=
10
13

10
10
10
0=
10
16

 

10
17

 

10
10
10
1
10
19
10
20
10
10
10
4_______2_______7
10
23
10
9
10
10
10
1
10
26
10
27
10
10
10
4

đầu ra

7 is Greater

Thời gian phức tạp. Ô[1]

Không gian phụ trợ. Ô[1]

Điểm quan trọng.  

  • Đầu tiên, điều kiện đã cho được ước tính [a < b], sau đó a hoặc b được trả về dựa trên giá trị Boolean được trả về bởi điều kiện
  • Thứ tự của các đối số trong toán tử khác với các ngôn ngữ khác như C/C++ [Xem C/C++ toán tử bậc ba]
  • Biểu thức điều kiện có mức ưu tiên thấp nhất trong số tất cả các thao tác Python

Phương pháp được sử dụng trước 2. 5 khi toán tử bậc ba không có mặt
Trong một biểu thức như biểu thức được đưa ra dưới đây, trình thông dịch sẽ kiểm tra biểu thức nếu điều này đúng thì on_true được ước tính, nếu không thì on_false được ước tính
 

cú pháp.  

'''When condition becomes true, expression [on_false]
   is not executed and value of "True and [on_true]"
   is returned.  Else value of "False or [on_false]"
   is returned.
   Note that "True and x" is equal to x. 
   And "False or x" is equal to x. '''
[expression] and [on_true] or [on_false] 

Thí dụ.  

con trăn




# Program to demonstrate conditional operator

a, b=

10
0
10
1
10
2

 

10
35

10
36

10
37

10
4 =
10
8
10
41
10
6
10
43
10
10
10
0

 

10
10
10
1
10
10
10
2
10
4
10
10
10
4

đầu ra

10

Thời gian phức tạp. Ô[1]

Không gian phụ trợ. Ô[1]

Ghi chú. Hạn chế duy nhất của phương pháp này là on_true không được bằng 0 hoặc Sai. Nếu điều này xảy ra, on_false sẽ luôn được đánh giá. Lý do là nếu biểu thức là true, trình thông dịch sẽ kiểm tra on_true, nếu nó bằng 0 hoặc sai, điều đó sẽ buộc trình thông dịch kiểm tra on_false để đưa ra kết quả cuối cùng của toàn bộ biểu thức

Trong Python không có toán tử bậc ba nào ở dạng [. ?] như trong các ngôn ngữ lập trình như c, c++, Java. Toán tử bậc ba trong Python là một biểu thức điều kiện if-else được viết trong một dòng

Dạng toán tử bậc ba Python

Cú pháp cho Python Ternary Operator như được đưa ra dưới đây-

[when_expr_true] if [conditional_expression] else [when_expr_false]

Ban đầu, biểu_thức_điều_kiện được đánh giá, nếu nó đúng thì giá trị 'khi_expr_true' được sử dụng, nếu sai thì giá trị 'khi_expr_false' được sử dụng

Ví dụ về toán tử ternary trong Python

Hãy xem một ví dụ để làm rõ cách sử dụng toán tử bậc ba. Đây là một điều kiện được viết bằng câu lệnh if-else truyền thống

    if age > 18:
        msg = 'can vote'
    else:
        msg = "can't vote"
    print[msg]

Sử dụng toán tử bậc ba cùng một điều kiện có thể được viết trong một dòng như-

msg = 'can vote' if age > 18 else "can't vote"

Như bạn có thể thấy bằng cách sử dụng toán tử bậc ba Python, bạn có thể kiểm tra điều kiện trong một dòng duy nhất làm cho mã ngắn gọn và dễ đọc hơn. Đó là lợi thế của việc sử dụng toán tử bậc ba

Toán tử bậc ba Python lồng nhau

Toán tử bậc ba cũng có thể được lồng vào nhau nhưng hãy lưu ý rằng với các toán tử bậc ba lồng nhau, bạn sẽ mất đi chính lợi thế mà bạn có xu hướng sử dụng toán tử bậc ba;

Ví dụ sau bộ if-elif

  if a > b:
      print['a is greater than b']
  elif a < b:
      print['a is less than b']
  else:
      print['a and b are equal']

có thể được viết bằng toán tử bậc ba lồng nhau-

msg = 'a is greater than b' if[a > b] else 'a is less than b' if[a < b] else 'a and b are equal'

Sử dụng toán tử bậc ba với tuple, từ điển

Ngoài ra còn có một dạng rút gọn được sử dụng với bộ dữ liệu và từ điển dựa trên thực tế là biểu_thức điều kiện được đánh giá trước

1. Xem xét ví dụ sau cho tuple

def display_msg[age]:
    print['Age is', age]
    t = ["can't vote", "can vote"]
    msg = t[age > 18]
    print[msg]


display_msg[20]
display_msg[8]

đầu ra

Age is 20
can vote
Age is 8
can't vote

Như bạn có thể thấy giá trị sai được lưu trữ đầu tiên trong bộ dữ liệu và sau đó là giá trị thực. Đó là vì thực tế là false = 0 và true = 1. Biểu thức t[age > 18] có giá trị là t[0] nếu biểu thức là sai và nó có giá trị là t[1] nếu biểu thức là đúng

2. Đối với từ điển, bạn có thể lưu trữ cặp giá trị khóa đúng và sai

def display_msg[age]:
    print['Age is', age]
    d = {True: "can vote", False: "can't vote"}
    msg = d[age > 18]
    print[msg]


display_msg[20]
display_msg[8]

đầu ra

Age is 20
can vote
Age is 8
can't vote

Đó là tất cả cho chủ đề này Toán tử bậc ba trong Python. Nếu bạn có bất kỳ nghi ngờ hoặc bất kỳ đề xuất nào để thực hiện, vui lòng gửi bình luận. Thanks

Các toán tử bậc ba có thể được lồng vào nhau không?

Các ternary “lồng nhau” là một cách gọi hơi sai, bởi vì các ternary dễ viết thành một đường thẳng, bạn không bao giờ cần phải lồng chúng với các mức thụt lề cả. Chúng chỉ đơn giản là đọc từ trên xuống dưới theo một đường thẳng, trả về một giá trị ngay khi chúng đạt đến điều kiện trung thực hoặc dự phòng

Toán tử điều kiện có thể được lồng vào nhau không?

Toán tử điều kiện bên trong có thể được sử dụng trong bất kỳ khối nào, nó hiển thị như [a>b]?[[a>c]? a. c]. [b>c? b. c]. Ở đây chúng tôi nhập ba số và tìm số lớn nhất bằng toán tử điều kiện lồng nhau

Là ternary tốt hơn so với nếu

Toán tử bậc ba là một câu lệnh đơn, trong khi if-else là một khối mã. Toán tử bậc ba nhanh hơn khối if-else .

Là một nhà điều hành ternary hiệu quả hơn?

Sự khác biệt giữa câu lệnh if-else và toán tử bậc ba. Toán tử bậc ba là một câu lệnh trong JavaScript và một câu lệnh nhanh hơn Khối. If-else là một khối lập trình. Toán tử bậc ba hiệu quả hơn và dễ đọc hơn .

Chủ Đề