python - 为何print(my)还会输出小写的x,y,z?为何输出的不是字符串?
大家讲道理
大家讲道理 2017-04-17 17:50:30
[Python讨论组]
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()这样写才会变。字符串是不可变的,只能创建一个新的字符串来替代旧的。

PHP中文网

因为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',所以会换行。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号