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
?
为何输出的不是字符串?
谢谢
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
?
为何输出的不是字符串?
谢谢
因为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
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
这是Python的print函数定义,也就是说,默认是要加上end参数的,而其默认为'n',所以会换行。
4 回答4.5k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
4 回答3.9k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答466 阅读✓ 已解决
1 回答4k 阅读✓ 已解决
my = my.capitalize()
这样写才会变。字符串是不可变的,只能创建一个新的字符串来替代旧的。