c=['x','y','z'] for my in c: my.capitalize() print(my)
在 IDE 中输出:
'X' x 'Y' y 'Z' z
请问,my 不是已经都变成大写的了吗? 为何 print(my) 还会输出小写的 x,y,z?
my
print(my)
x,y,z
为何输出的不是字符串?
谢谢
光阴似箭催人老,日月如移越少年。
my = my.capitalize()這樣寫才會改變。字串是不可變的,只能建立一個新的字串來取代舊的。
my = my.capitalize()
因為capitalize是pure的(逃
看函數簽名
>>> help(str.capitalize) Help on method_descriptor: capitalize(...) S.capitalize() -> str Return a capitalized version of S, i.e. make the first character have upper case and the rest lower case.
只是return了一個str的capitalized version,而沒有改變原來的str
str是不可變型,str.capitalize不會作用於原字串,而是傳回一個新字串
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
這是Python的print函數定義,也就是說,預設是要加上end參數的,而其預設為'n',所以會換行。
my = my.capitalize()
這樣寫才會改變。字串是不可變的,只能建立一個新的字串來取代舊的。因為capitalize是pure的(逃
看函數簽名
只是return了一個str的capitalized version,而沒有改變原來的str
str是不可變型,str.capitalize不會作用於原字串,而是傳回一個新字串
這是Python的print函數定義,也就是說,預設是要加上end參數的,而其預設為'n',所以會換行。