python将一个句子的每个单词首字符转为大写

1. 情境介绍

我们输入一行字符串,可以看作一个英文句子,而后将句子中每个单词的首字母大写化

2.思路介绍

2.1.capitalize()函数

首先我们会想到python自带的函数:capitalize(),这个函数可以将一个字符串的首字符转换为大写。

2.1.1.用法举例

str = input()
print(str.capitalize())

输入+输出:

ggghhh
Ggghhh

2.1.2.缺陷

但是,一旦我们输入的字符串之间有空格存在,就会不符合要求,例子如下:

str = input()
print(str.capitalize())

输入+输出:

ggg hhh
Ggg hhh

因为对于这个函数来说,输入的一行字符串是一个整体,它只会将一行字符串的第一个字符转换为大写,而不是以单词为单位进行转换。 那该怎么办呢?

 

2.2.split()函数

我们可能会想到,能否先将一个包含空格的字符串先分割为一个一个的单词,对每个单词进行capitalize之后,再将之合并?这就引出了split函数。

2.2.1.用法+举例

split函数会将一个字符串通过指定分隔符进行分割,并且我们可以指定分割次数,最终得到分割好后的列表,用法如下:

str = input()
print(str.split(' ',2))

这里我们指定使用空格进行分割,即括号内第一个参数 ' ' ,另外我们指定分割两次,最终得到含有三个小字符串的列表

输入+输出:

ggg hhhh  dhgh
['ggg', 'hhhh', ' dhgh']

同时我们会发现,我们指定用于分割的字符,在新得到的列表中会减少,所以我们最终需要追加。

ps:大家可以自行探索下如果相邻字符串之间有多个指定分割字符会出现啥情况

3.实战演练  

综合以上,我们可以知道大致思路如下:

先将输入的字符串使用split分割,得到一个列表,而后处理列表,最后合并

代码如下:

def my_capitalize(str):
    change_list = str.split()          #省略参数,默认以空格分割
    new_str = ''                       
    for single in change_list:         #for循环,依次处理分割后的小字符串
        single = single.capitalize()
        new_str += single
        new_str += ' '                 #连接字符串,并增添字符
    return new_str

a = str(input())
print(my_capitalize(a))

4.谢谢阅读,敬请指正!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LightenYourLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值