Python全名首字母大写输出问题:仅打印最后一项首字母
问题分析
你的代码里,new_name在每次循环中都会被重新赋值为当前名字的首字母,之前循环得到的结果会被完全覆盖,所以最终只会打印出最后一个名字的首字母。
修复代码
方法一:循环累加
初始化一个空字符串,在每次循环中把首字母追加进去:
full_name = input("Please enter your full name: ") name = full_name.split() new_name = "" for item in name: new_name += item[0].upper() print(new_name)
方法二:列表推导式(更简洁)
用列表推导式生成所有首字母的大写集合,再拼接成字符串:
full_name = input("Please enter your full name: ") new_name = ''.join([item[0].upper() for item in full_name.split()]) print(new_name)
测试示例:输入Alice Bob Charlie,两种方法都会输出ABC。
内容的提问来源于stack exchange,提问作者kman12
相关产品推荐
相关产品推荐

