python - 为何print(my)还会输出小写的x,y,z?为何输出的不是字符串?
大家讲道理
大家讲道理 2017-04-17 17:50:30
0
4
627
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

为何输出的不是字符串?

谢谢

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(4)
伊谢尔伦

my = my.capitalize()這樣寫才會改變。字串是不可變的,只能建立一個新的字串來取代舊的。

Ty80

因為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',所以會換行。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板