這代碼怎么不對
def toUppers(L):
? ? for x in L:
? ? ? ? if isinstance(x, str):
? ? ? ? ? ? return [x.upper()]
? ? ? ? else:
? ? ? ? ? ? return
print toUppers(['Hello', 'world', 101])
為什么這個結果只有‘HELLO’
如果如下代碼怎么又出不來了,(只是少了else而已)
def toUppers(L):
? ? for x in L:
? ? ? ? if isinstance(x, str):
? ? ? ? ? ? return [x.upper()]
??
print toUppers(['Hello', 'world', 101])
2017-04-03
我將你的代碼做了一下修改,每一次循環后輸出的是一個值,而你的這一個值卻沒有地方存儲,這就是為什么到最后你輸出的只有第一個值。最后返回的值應該是個列表。
def toUppers(L):
? ? m=[]
? ? for x in L:
? ? ? ? if isinstance(x, str):
? ? ? ? ? ? m.append(x.upper())
? ? return m
? ? ? ? ??
print toUppers(['Hello', 'world', 101])
2017-04-12
第一個結果只有Hello是因為第一步做if的判斷語句,判斷元素x是不是字符串,是則輸出大寫,不是則返回空值,所以你的語句里缺乏for循環,去遍歷列表中的所有元素值
return [x.upper() for x in L if isinstance(x,str)]