主页 > 知识库 > Python就将所有的英文单词首字母变成大写

Python就将所有的英文单词首字母变成大写

热门标签:语音系统 企业做大做强 呼叫中心市场需求 Win7旗舰版 电话运营中心 百度AI接口 客户服务 硅谷的囚徒呼叫中心

摘要:

将英文单词首字母变成大写是一个古老的话题,很常用,也很简单。不过如何用更简单的方式批量完成这个工作,则有很多学问,不想来看看吗!

将英文单词首字母变成大写是非常常用的文本操作,使用capitalize方法可以将一个英文单词的首字母变成大写。但如何将一段文本中所有英文单词的首字母都变成大写呢?

最容易想到的方法是将这些英文单词拆成独立的单词,然后分别使用capitalize方法将这些英文单词的首字母变成大写,然后再将这些单词连接起来,实现代码如下:

s = 'The weather is really nice today, very suitable for an outing.'
 
 
arr = s.split()
for i in range(0, len(arr)):
 arr[i] = arr[i].capitalize()
s1 = " ".join(arr)
print(s1)

运行代码看看效果:

The Weather Is Really Nice Today, Very Suitable For An Outing.

从这段代码可以看出,使用了3个方法:split、capitalize和join。分别用来拆分字符串;将英文单词首字母转换为大写;使用特定的分隔符(本例是空格)合并列表中的字符串。

不过这段代码好麻烦,有没有更简单的方式呢?当然有,铛铛铛!刚出锅的代码来了:

s = 'The weather is really nice today, very suitable for an outing.'
print(" ".join([word.capitalize() for word in s.split()])) # 只用了一行代码

够酷吧,这里只用了一行代码。其实这行代码与前面的实现方法没有本质的区别,只是用了Python中通过for in语句生成列表的方式,将多行代码简化成了一行代码,Python简直太神奇了。

其实啊,如果要熟悉Python API,连一行代码都不用写,一个方法就解决了,这就是string.capwords方法,该方法属于string模块,所以需要先导入string模块,代码如下:

import string
s = 'The weather is really nice today, very suitable for an outing.'
print(string.capwords(s)) #将字符串中所有单词首字母大写

看看简单不,别忙,还没完呢!capwords方法的默认分隔符是空格,如果这些英文单词用其他符号分隔,就需要使用capwords方法的第2个参数了,看下面的例子:

import string
s = 'The,weather,is,really,nice,today,very,suitable,for,an,outing.'
print(string.capwords(s, ',')) # 用逗号分隔的英文单词

这段代码使用capwords方法将由逗号(,)分隔的所有英文单词的首字母转换为大写字母。运行结果如下:

The,Weather,Is,Really,Nice,Today,Very,Suitable,For,An,Outing.

另外,做一下预告,最近要推出一系列文章,专门介绍Python的核心API,本文是这一系列文章的第篇。掌握这些API的使用方法,可以让我们少写很多代码,而且还会降低代码的出错几率!

总结

到此这篇关于Python就将所有的英文单词首字母变成大写的文章就介绍到这了,更多相关Python英文单词首字母大写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • 浅析Python中将单词首字母大写的capitalize()方法
  • Python实现将字符串的首字母变为大写,其余都变为小写的方法
  • Python实现将不规范的英文名字首字母大写
  • 使用Python实现将list中的每一项的首字母大写

标签:崇左 喀什 山西 山西 海南 长沙 济南 安康

巨人网络通讯声明:本文标题《Python就将所有的英文单词首字母变成大写》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266