大写连字符名称(capitalize hyphenated words)

我有一个脚本看起来像这样:

我有一个脚本看起来像这样:

firstn = input('Please enter your first name: ') 
lastn = input('Please enter Your last name: ') 
print('Good day, ' + str.capitalize(firstn) + ' ' + str.capitalize(lastn)+ '!')

它将很好地使用简单的名字,如杰克 · 布莱克或摩根 · 梅曼,但是当我输入像jordan-bellfort image这样的连字符名称时,我期望"Jordan-Bellfort Image",但我收到"Jordan-bellfort Image"

我怎样才能让 python 在连字符之后大写字符?

12

您可以使用title()

print('Good day,', firstn.title(), lastn.title(), '!')

来自控制台的示例:

>>> 'jordan-bellfort image'.title()
'Jordan-Bellfort Image'
2

我建议只使用str.title,这里是一个工作示例,比较您的版本和使用 str.title 方法的版本:

import string
tests = [
    ["jack", "black"],
    ["morgan", "meeman"],
    ["jordan-bellfort", "image"]
]
for t in tests:
    firstn, lastn = t
    print('Good day, ' + str.capitalize(firstn) +
          ' ' + str.capitalize(lastn) + '!')
    print('Good day, ' + firstn.title() + ' ' + lastn.title() + '!')
    print('-'*80)

导致这一点:

Good day, Jack Black!
Good day, Jack Black!
--------------------------------------------------------------------------------
Good day, Morgan Meeman!
Good day, Morgan Meeman!
--------------------------------------------------------------------------------
Good day, Jordan-bellfort Image!
Good day, Jordan-Bellfort Image!
--------------------------------------------------------------------------------
1

改用string.capwords()

使用 str.split()将参数拆分为单词,使用 str.capitalize()将每个单词大写,并使用 str.join()连接大写的单词

import string
string.capwords(firstn, "-")
0

这是一个真正的问题!用.title()等似乎很容易解决,但这些建议并不能解决处理任何人名的实际问题。如McCormackO'Briende Araugo

幸运的是,这个问题已经解决了。请参阅nameparser

>>> from nameparser import HumanName
>>> name = HumanName('Shirley Maclaine') # Don't change mixed case names
>>> name.capitalize(force=True)
>>> str(name)
'Shirley MacLaine'

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(710)
FFMPEG-将DTS音频转换为 AC3-但保留原始视频和音频文件
上一篇
定义原子函数(atom function)
下一篇

相关推荐

  • 1 inch:1inch api-错误500找不到 [token] 的路径

    关于1 inch的问题,在susd single sign on中经常遇到,想知道为什么 API 调用交换令牌到令牌(sUSD 到 ETH 或 WETH)失败…

    2022-12-09 06:10:53
    0 94 89
  • Ccyy.moe联通路线:Google映射 api最快的交通路线

    关于Ccyy.moe联通路线的问题,在fastest directions to home中经常遇到,我有一个 SPA,我需要能够提供两点之间的用户方向。我希望方向的工作方式与他们目前在谷歌地图的网络版本上所做的相同。IE.https://www.google.ca/maps/dir/在由谷歌网络版本托管的情况下,当您请求方向时,它会给您考虑交通的最快路线...(参见截图)…

    2022-12-25 15:58:29
    0 29 31
  • Cher no by:获取专辑last.fm api的发行日期

    关于Cher no by的问题,在believe cher release date中经常遇到,我需要知道一首歌的发行日期。…

    2022-12-07 16:06:08
    0 53 34
  • Cc七v3:如何在YouTubeapiv3中获取YouTube视频的 cc字幕

    关于Cc七v3的问题,在how to add cc to youtube video中经常遇到,如何使用适用于 Android 的 YouTube API v3 获取 YouTube 视频的 cc 字幕?…

    2022-11-25 12:20:07
    0 92 31
  • Alpaca:无法安装 alpaca_trade_api

    我尝试使用pip install alpaca_trade_api,它错误地退出状态 1。我也尝试了pip install alpaca-trade-api,它有同样的错误。…

    2022-11-30 07:46:59
    0 18 80
  • 使用AdobeAnalyticsAPIV2.0进行大量提取

    我的问题是:我想使用 API 2.0 使用 python 函数执行大型查询,该函数从一个维度(帖子)(大约 60.000 行或更多)中提取数据,然后通过另一个维度(标签)将其分解,查询第一个维度(帖子)的每一行。…

    2022-11-26 03:01:37
    0 73 91
  • 将AccountBase(和类似类型)从PlaidAPI转换为JSON格式

    Plaid API 以类似于但不完全是 JSON 的格式返回数据。例如,“accounts”的(沙盒,不是真实数据)查询返回…

    2022-11-11 15:20:35
    0 73 34
  • 如何学习MapicsERP/InforXA

    我有一个工作机会,工作将在 Mapics (infor XA) ERP 套件上。请任何人都可以指导如何找到资源来介绍这个?我已经 google 了一下,它没有多大帮助:(…

    2022-11-11 15:19:41
    0 51 28

发表评论

登录 后才能评论

评论列表(13条)