第二個if為啥不能用and
def toUppers(L):
? ? return [x.upper() for x in L and isinstance(x,str)]
print toUppers(['Hello', 'world', 101])
def toUppers(L):
? ? return [x.upper() for x in L and isinstance(x,str)]
print toUppers(['Hello', 'world', 101])
2016-02-18
舉報
2016-02-18
這一段最先被執行的部分是 ?L and isinstance(x,str)?
然后再對這個表達式的值迭代(雖然這個式子返回布爾值并不能迭代,不過這不是重點)
重點是x得有值才能被引用,然而在迭代了之后x才被賦值,并且執行到isinstance(x,str)時迭代還沒開始
所以你的寫法有問題
2016-02-18
for循環是迭代不是條件,and用于兩個條件之間