为何我的Python代码能运行但未实现预期功能?
问题分析与解决方案
你遇到的问题核心在于Python中的字符串是不可变对象——也就是说,调用字符串的方法(比如capitalize()、center())不会直接修改原字符串,而是会返回一个全新的字符串对象。你的代码里只是调用了这些方法,但没有把返回的新字符串赋值回Country变量,所以原变量的值根本没发生变化。
修正后的代码示例
你可以把方法的返回值重新赋值给Country,或者直接链式调用这些方法:
Country = "italy" if Country == "italy": # 先调用capitalize得到首字母大写的新字符串,再调用center得到居中后的新字符串,最后赋值回Country Country = Country.capitalize().center(15) print(Country)
运行这段代码后,输出就会是 Italy (前后各有6个空格,总长度15)。
补充说明
capitalize():返回原字符串首字母大写、其余小写的新字符串,原字符串保持不变。center(width):返回一个原字符串居中、两边用空格填充至总长度为width的新字符串,原字符串同样不变。
所有Python字符串的"修改类"方法都是类似逻辑,比如upper()、lower()、strip()等,都需要将返回值重新赋值才能保留修改结果。
内容的提问来源于stack exchange,提问作者Hafolas
相关产品推荐
相关产品推荐

