為什么這么寫只打印一個“HELLO”?
def toUppers(L):
#??? return [x.upper() for x in L if isinstance(x, str)]
?? ?
??? for x in L:
??????? if isinstance(x,str):
??????????? return x.upper()
print toUppers(['Hello', 'world', 101])
def toUppers(L):
#??? return [x.upper() for x in L if isinstance(x, str)]
?? ?
??? for x in L:
??????? if isinstance(x,str):
??????????? return x.upper()
print toUppers(['Hello', 'world', 101])
2018-06-27
舉報
2018-06-28
因為return的原因,for語句只執行了一次??梢詫⒚看蔚慕Y果存入一個list,讓后return這個list。修改后的代碼如下:
def toUppers(L):
? ? M=[]
? ? for x in L:
? ? ? ? if isinstance(x,str):
? ? ? ? ? ? m=x.upper()
? ? ? ? ? ? M.append(m)
? ? return M
print toUppers(['Hello', 'world', 101])
2018-06-27
檢測到第一個字符串return后導致函數直接運行結束
2018-06-27
return 的意思就是返回
你第一次獲得HELLO就返回了
你應該等for循環結束之后再返回