30/09/2018, 19:20

Thắc mắc về If Statement?

Mình có một ví dụ sau:

my_map = { "USA": "Washington", "KR": "Seoul" }
item = my_map.get("ENG")

if not item:
        print "Item doesn't exist!"

Vấn đề là khi mình viết if !item thì nó báo lỗi, còn khi viết những dòng sau:

if item == False:
if item is False:
if item == None:
if item is None:

thì chạy bình thường, thế cho mình hỏi sự khác biệt ở đây là gì? If statement còn những kiểu viết nào khác nữa? Các kiểu viết đó có phục vụ cho ý đồ khác nhau hay không?

Xin cám ơn rất nhiều!

Vũ Seven viết 21:34 ngày 30/09/2018

Với vd trên mình có thể viết:
map = raw_input(“Capital of:”)
my_map = { “USA”: “Washington”, “KR”: “Seoul” }
if map in my_map and map == “USA”:
print my_map[“USA”]
elif map in my_map and map == “KR”:
print my_map[“KR”]
else:
print “Doesn’t exist”

Với biến map được gán với raw_input thì mình có thể có được câu trả lời mình muốn mà trong 2 lựa chọn muốn biết thủ đô của USA hay KR.
Bạn có thể chạy thử những dòng lệnh của mình để tham khảo.

huy vo viết 21:26 ngày 30/09/2018

Chủ ý của mình là cho item get một cái key không có trong my_map và so sánh, còn ví dụ trên là mình lấy từ đây: http://learnpythonthehardway.org/book/ex39.html (line 56). Mình muốn hỏi là trong các cách viết như mình đề cập thì cách nào là đúng nhất?

Nhân tiện cũng cảm ơn bạn đã trả lời câu hỏi của mình

Vũ Seven viết 21:35 ngày 30/09/2018

À thì ra là vậy. Mình cũng hiểu nhầm hướng bạn hỏi.
trong hàm if thì !str không có nha bạn chỉ có != mà != khi so sánh giữa “cái gì” không bằng “cái gì”.
if item == None:
if item is None:
thì 2 cái này đúng, khi item get nhưng không có tức item rỗng sẽ ra giá trị None.

Bài liên quan
0