請教老師個問題,這個程序我這么寫可以嗎
def toUppers(L):
? ? for x in L
? ? ? ? ?if isinstance(x,str)==true:
? ? ? ? ?return x
??print toUppers(['Hello', 'world', 101])
def toUppers(L):
? ? for x in L
? ? ? ? ?if isinstance(x,str)==true:
? ? ? ? ?return x
??print toUppers(['Hello', 'world', 101])
2015-07-13
舉報
2015-08-27
不是老師,希望不要介意。你的程序語法和邏輯上不正確:1.for語句最后少了冒號":",應為for x in L :?2.isinstance(x,str)這個方法的返回值本身就是布爾類型的,?(你這里沒必要再一次判斷是否等于True,況且python里面不是小寫true,注意T大寫)3.如果符合if條件,那么你的結果只有第一個是字符串的list元素變成了大寫,因為這里return語句之后就會跳出循環,結束調用。如果要按照你的思路實現,代碼應該是這樣的:
def toUpper(L):
????l = []
??? for x in L:
??????? if isinstance(x,str):
??????????? l.append(x.upper())
??????? else:
??????????? l.append(x)
??? return l
最后,要想知道自己的代碼是否正確,你自己跑一下代碼就知道了。
2015-07-13
上面打漏了。
def toUppers(L):
? ? for x in L
? ? ? ? ?if isinstance(x,str)==true:
? ? ? ? ? ??return x.upper ()
??print toUppers(['Hello', 'world', 101])