2010-06-15 40 views
13

thể trùng lặp:
Python Ternary Operatorpython: (? X a: b) iif hoặc

Nếu Python sẽ hỗ trợ (x a:? B) cú pháp từ C/C++, Tôi sẽ viết:

print paid ? ("paid: " + str(paid) + " €") : "not paid" 

Tôi thực sự không muốn có dấu kiểm và hai bản in độc lập tại đây (vì đó chỉ là ví dụ ở trên, trong mã của tôi, trông phức tạp hơn nhiều và sẽ thực sự ngu ngốc khi có cùng mã hai lần).

Tuy nhiên, Python không hỗ trợ toán tử này hoặc bất kỳ toán tử tương tự nào (afaik). Cách dễ nhất/sạch nhất/phổ biến nhất để làm điều này là gì?

Tôi đã tìm kiếm một chút và seen someone defining an iif(cond,iftrue,iffalse) function, lấy cảm hứng từ Visual Basic. Tôi tự hỏi nếu tôi thực sự phải thêm mã đó và nếu/tại sao không có chức năng cơ bản như vậy trong thư viện chuẩn.

+2

Duplicate, xem http://stackoverflow.com/questions/394809/python-ternary-operator/394814 –

Trả lời

13

Hãy thử

print ("paid: " + str(paid) + " €") if paid else "not paid" 
Các vấn đề liên quan