對代碼有疑問
def toUppers(L):
? ? for x in L:
? ? ? ? if isinstance(x,str):
? ? ? ? ? ? return [x.upper()]
print toUppers(['Hello', 'world', 101])
這個代碼輸出結果只有Hello,為什么后續就沒有了,明明按代碼來說判斷非字母不會返回,也并沒有讓其停止啊
def toUppers(L):
? ? for x in L:
? ? ? ? if isinstance(x,str):
? ? ? ? ? ? return [x.upper()]
print toUppers(['Hello', 'world', 101])
這個代碼輸出結果只有Hello,為什么后續就沒有了,明明按代碼來說判斷非字母不會返回,也并沒有讓其停止啊
2018-08-27
舉報
2019-04-19
def toUppers2(L):
? ? LL=[]
? ? for i in L:
? ? ? ? if isinstance(i,str):
? ? ? ? ? ? LL.append(i)
? ? return LL
按你思路可以這樣
2018-08-27
因為你剛進去后,匹配到第一個是 string 的元素,就直接返回啦,
return,就代表這個函數結束了
所以不管怎么樣,你最多就只能返回一個帶有一個元素的數組...
---------
正常來說,你應該是要弄個空的數組,然后遍歷傳進來的數組L發現一個是 string,就丟到那個空數組里,最后再返回那個空數組(或者你101也想進去,同理自己想想