无法将 .capitalize() 或 .title() 方法应用于字符串

Can't apply .capitalize() or .title() method to a string

提问人:5P33DC0R3 提问时间:8/7/2023 更新时间:8/8/2023 访问量:75

问:

我正在尝试创建一个程序,提示用户输入新成员。然后,该成员将被添加到该文件中。一切都很顺利,但我无法将 .title() 或 .capitalize() 方法应用于该成员名称。

member = input("Enter a new 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()

我不知道缺少什么,但我只想为用户输入的字符串添加标题。

Python 字符串 方法

评论

4赞 It_is_Chris 8/7/2023
member = member.title()如果你想以后使用它,你需要把它分配给某个变量,或者你可以这样做member = input("Enter a new member: ").title()
0赞 User12345 8/8/2023
@5P33DC0R3 你想把名字放在吗?如果是,你可以使用memberupper caseabc = member.upper()
1赞 jarmod 8/8/2023
值得一读 Python 的可变类型与不可变类型:有什么区别?
0赞 5P33DC0R3 8/8/2023
谢谢大家的帮助。这是我在这个网站上的第一个问题,我对获得答案所花费的时间印象深刻。再次感谢。

答:

0赞 nisakova 8/8/2023 #1

大写的标题

member = input("Enter a new member: ").upper()
test = "hello"
test.upper() # HELLO
test.title() # Hello

评论

1赞 moken 8/8/2023
字符串的上写字母否定了前一个标题,因此请使用其中一个,而不是两者兼而有之。
0赞 nisakova 8/8/2023
是的,这是真的,谢谢
1赞 Sadegh Moayedizadeh 8/8/2023 #2

title 和 capitalize 方法返回一个新字符串,因为该类型在 Python 中是不可变的,对此的任何更改都将创建一个新对象。因此,您只需要将修改后的字符串存储到一个新变量中,最好是同名的变量。str

此外,我强烈建议使用使用符号的方法,因为这样可以确保文件将被关闭。在代码中,如果在按 之前发生异常,则文件将保持打开状态。openwithclose

这是我的代码版本:

member = input("Enter a new member: ")
member = member.title()

with open("members.txt", 'rw') as file_:
    existing_members = file_.readlines()
    existing_members.append(member + '\n')
    file_.writelines(existing_members)