2015-10-05 20 views
7

Rất đơn giản dòng:Tại sao biểu thức điều kiện đơn giản này không hoạt động?

i = 3 
a = 2 if i in [1, 3, 6] else a = 7 

không thành công với:

SyntaxError: can't assign to conditional expression 

trong khi mở rộng như:

if i in [1, 3, 6]: 
    a = 2 
else: 
    a = 7 

hoạt động tốt.

+0

Xin lỗi các bạn, bây giờ và sau đó tôi quên đi phần bổ sung '=' và kết thúc bằng cách giải thích tại sao dòng này không hoạt động. – Gabriel

Trả lời

11

Bạn đang sử dụng sai. Sử dụng nó theo cách này:

a = 2 if i in [1, 3, 6] else 7 
+1

Ugh những gì một id * ot, tôi luôn luôn quên về thêm '='. Cảm ơn bạn! Tôi đang chọn câu trả lời này vì nó đã được thêm vào trước. – Gabriel

4

Nên

a = 2 if i in [1, 3, 6] else 7 

Bạn có thể đọc nó như:

a = (((2 if i in [1, 3, 6] else 7))) 

mà là để nói rằng sự biểu hiện ở phía bên phải của dấu hiệu chuyển nhượng là đánh giá đầy đủ và kết quả sau đó được gán cho phía bên trái. Bản thân biểu thức là hai giá trị được phân tách bằng theo điều kiện.

Các vấn đề liên quan