【问题标题】:Python function that capitalizes entire word将整个单词大写的 Python 函数
【发布时间】:2020-09-15 00:48:39
【问题描述】:

所以我创建了一个python函数:

def capitalize(x):
  for a in x:
    a.capitalize()
  print x

capitalize("heey")

它应该把参数“heey”变成“HEEY”。但它不起作用。它打印“嘿”。怎么了?

【问题讨论】:

  • str.capitalize 不会就地更新字符串。您需要重新分配它。另请注意,您有str.upper()

标签: python function capitalize


【解决方案1】:

capitalize() 不是就地操作。它不会修改原始字符串,而是返回大写版本。您需要将此值保存在变量中。例如以下代码:

a = "heey"
a.capitalize()
b = a.capitalize()
print("a = " + a)
print("b = " + b)

有输出:

a = heey
b = Heey

另外,如果您要将所有字符设为大写,只需调用upper(),但如果您绝对想使用capitalize(),您可以这样做:

def capitalize(x):
    y = ""
    for a in x:
        y += a.capitalize()
    print(y)

capitalize("heey")

输出:

HEEY

这是一个更短的版本,做同样的事情:

def capitalize(x):
    y = "".join([a.capitalize() for a in x])
    print(y)

【讨论】:

  • 我明白,但是有没有办法使用 capitalize() 使我的函数工作。如果是这样,我将如何重写该函数以使其工作?
【解决方案2】:

这是一种更简单的方法:

def capitalize(x):
  print(x.upper())

capitalize("heey")

输出:

HEEY

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2011-07-07
    • 2020-12-22
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 2018-12-28
    • 1970-01-01
    相关资源
    最近更新 更多