Hai biểu mẫu tạo mã byte giống hệt nhau, như bạn có thể xác minh rõ ràng:
>>> import dis
>>> dis.dis[compile['if x not in d: pass', '', 'exec']]
1 0 LOAD_NAME 0 [x]
3 LOAD_NAME 1 [d]
6 COMPARE_OP 7 [not in]
9 JUMP_IF_FALSE 4 [to 16]
12 POP_TOP
13 JUMP_FORWARD 1 [to 17]
>> 16 POP_TOP
>> 17 LOAD_CONST 0 [None]
20 RETURN_VALUE
>>> dis.dis[compile['if not x in d: pass', '', 'exec']]
1 0 LOAD_NAME 0 [x]
3 LOAD_NAME 1 [d]
6 COMPARE_OP 7 [not in]
9 JUMP_IF_FALSE 4 [to 16]
12 POP_TOP
13 JUMP_FORWARD 1 [to 17]
>> 16 POP_TOP
>> 17 LOAD_CONST 0 [None]
20 RETURN_VALUE
Vì vậy, rõ ràng họ giống hệt nhau về mặt ngữ nghĩa.
Như một vấn đề của phong cách, PEP 8 không đề cập đến vấn đề.
Cá nhân, tôi rất thích mẫu if x not in y
- điều đó cho thấy ngay lập tức rằng not in
là một toán tử duy nhất và "đọc như tiếng Anh". if not x in y
có thể đánh lừa một số độc giả nghĩ rằng nó có nghĩa là if [not x] in y
, đọc ít hơn một chút tiếng Anh và hoàn toàn không có lợi thế bù đắp.and "reads like English". if not x in y
may mislead some readers
into thinking it means if [not x] in y
, reads a bit less like English, and has absolutely no compensating advantages.
Sau đó, một câu lệnh IF được sử dụng để bỏ qua một số số nhất định sẽ được hiển thị. Ở đó, toán tử không được sử dụng với ’trong tình trạng như sau:
#A bản demo của Python 'không' với 'in' Toán tử
before = ['a', 'b']
after = ['a', 'b', 'c']
added1 = [x for x in after if x not in before]
added2 = [x for x in after if not x in before]
print added1, added2
>> ['c'] ['c']
print ["Danh sách mục:", a]
Bạn thấy, các mục được đánh giá sai là sử dụng ‘không phải là không hiển thị.
def wait_for_file[path_name, serial_number]:
before = [f for f in os.listdir[path_name]]
print '...waiting for DSN log file for unit', serial_number
for each in before:
if serial_number in each and '.xml' in each:
print 'FYI...an older file',
print '%s exists for unit %s' % [each, serial_number],
print 'but is being ignored'
while True:
time.sleep[15]
after = [f for f in os.listdir[path_name]]
added = [f for f in after if f not in before]
if added:
print added
for each in added:
if serial_number in each and '.xml' in each:
print 'found file %s with serial number %s' % [
each, serial_number]
return each
before = after
Chiều cao div này cần thiết để cho phép thanh bên dính
’Không phải là một toán tử logic trong Python sẽ trả về true nếu biểu thức là sai. Toán tử ’không phải được sử dụng trong các câu lệnh IF.True if the expression is False. The ‘not’ operator is used in the if statements. Ví dụ: Nếu không phải x Nếu x là đúng, thì sẽ không đánh giá là sai, nếu không, đúng. Các toán tử logic khác: Toán tử và toán tử | Hoặc nhà điều hành The and operator | OR operator Tôi sẽ chỉ cho bạn một vài ví dụ để làm cho mọi thứ rõ ràng hơn về cách sử dụng toán tử không trong phần sắp tới.
Python không phải là người vận hành ví dụ với câu lệnh if
Trong ví dụ sau, một biến X được gán một giá trị 10. ’không phải được sử dụng trong câu lệnh IF như sau:
Nếu không phải x> 10:
Xem mã và kết quả.
Xem bản demo và mã trực tuyến
#A bản demo của nhà điều hành Python 'không' x=10=10 ifnotx>10:notx>10: in ["không được truy cập đúng"]["not retured True"] else:: in ["Không được xử lý sai"]["not retured False"] |
Vì x> 10 là sai, do đó, nhà điều hành không & nbsp; được đánh giá là đúng, do đó câu lệnh IF là đúng và mã bên trong câu lệnh IF được thực thi. Xem ví dụ tiếp theo sẽ làm cho mọi thứ thậm chí rõ ràng hơn.
Làm thế nào không hoạt động của nhà điều hành?
Trong bản demo này, X được sử dụng như sau với Not Toán tử:
Xem bản demo và mã trực tuyếnNếu không X:
#A bản demo của nhà điều hành Python 'không' x=10=10 ifnotx:notx: in ["không được truy cập đúng"]["Evaluated True"] else:: in ["Không được xử lý sai"]["Evaluated False"] |
Vì x> 10 là sai, do đó, nhà điều hành không & nbsp; được đánh giá là đúng, do đó câu lệnh IF là đúng và mã bên trong câu lệnh IF được thực thi. Xem ví dụ tiếp theo sẽ làm cho mọi thứ thậm chí rõ ràng hơn.not x means if x is True or False. In Python, if a variable is a numeric zero or empty, or a None object then it is considered as False, otherwise True. In that case, as x = 10 so it is True. As x is True, so not operator evaluated as False and else part executed. See the same example below where the value of x = 0.
Xem bản demo và mã trực tuyến
x=10=10 ifnotx:notx: in ["không được truy cập đúng"]["Evaluated True"] else:: in ["Không được xử lý sai"]["Evaluated False"] |
Vì x> 10 là sai, do đó, nhà điều hành không & nbsp; được đánh giá là đúng, do đó câu lệnh IF là đúng và mã bên trong câu lệnh IF được thực thi. Xem ví dụ tiếp theo sẽ làm cho mọi thứ thậm chí rõ ràng hơn.
Làm thế nào không hoạt động của nhà điều hành?
Trong bản demo này, X được sử dụng như sau với Not Toán tử:
Xem bản demo và mã trực tuyến
#A bản demo của nhà điều hành Python 'không' a_List=[5,10,15,20,25,30]=[5,10,15,20,25,30] foraina_List:ain a_List: ifnotain[10,25]:notain[10,25]: in ["không được truy cập đúng"]["List Item: ",a] |
in ["Không được xử lý sai"]
Vì x> 10 là sai, do đó, nhà điều hành không & nbsp; được đánh giá là đúng, do đó câu lệnh IF là đúng và mã bên trong câu lệnh IF được thực thi. Xem ví dụ tiếp theo sẽ làm cho mọi thứ thậm chí rõ ràng hơn.