[英]Python “in” and “==” confusion
print('a' in 'aa')
print('a' in 'aa' == True)
print(('a' in 'aa') == True)
print('a' in ('aa' == True))
輸出是
True
False
True
Traceback (most recent call last):
File "main.py", line 6, in <module>
print('a' in ('aa' == True))
TypeError: argument of type 'bool' is not iterable
如果第2行既不是第3行也不是第4行,那么它是什么? 怎么會變錯?
案例1:答案是True
很簡單。
print('a' in 'aa')
情況2:此操作'a' in 'aa' and 'aa' == True
評估為'a' in 'aa' and 'aa' == True
,因此很明顯它將返回false。
print('a' in 'aa' == True)
情況3:現在因為我們有()
封閉('a' in 'aa')
並且()
的優先級最高,所以首先'a' in 'aa'
被評估為True
然后True == True
print(('a' in 'aa') == True)
情況4:與上述相同,因為優先級的()
其評價為'aa' == True
,這將導致錯誤,因為它試圖應用in
在非可迭代是布爾值。
print('a' in ('aa' == True))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.