Python中无法对输入字符串应用.title()/.capitalize()方法的问题求助
问题:无法对输入的成员名称应用.title()或.capitalize()方法
你遇到的问题根源在于Python字符串的不可变性:.title()和.capitalize()方法不会直接修改原字符串变量,而是返回一个格式化后的新字符串。你当前的代码只是调用了方法,但没有把返回的新字符串重新赋值给member变量,所以原始输入值根本没被改变。
修正方案
把格式化后的结果重新赋值给member即可:
member = input("Enter a new member: ") # 将.title()的返回值重新赋值给member member = member.title() file = open("members.txt", 'r') existing_members = file.readlines() file.close() existing_members.append(member + '\n') file = open("members.txt", 'w') file.writelines(existing_members) file.close()
两种方法的区别
.title():将每个单词的首字母大写,其余字母小写,比如输入"alice smith"会变成"Alice Smith".capitalize():仅将整个字符串的第一个字符大写,其余字符小写,比如输入"alice smith"会变成"Alice smith"
额外优化:用with语句管理文件(更安全)
Python的with语句会自动帮你关闭文件,避免因代码异常导致文件未关闭的问题:
member = input("Enter a new member: ") member = member.title() with open("members.txt", 'r') as file: existing_members = file.readlines() existing_members.append(member + '\n') with open("members.txt", 'w') as file: file.writelines(existing_members)
内容的提问来源于stack exchange,提问作者5P33DC0R3
相关产品推荐
相关产品推荐

