[英]How to capitalize the First letter of each word in python?
您需要确保护照上的人的名字和姓氏以大写字母开头。 例如,alison heck 应该正确地大写为 Alison Heck。
我试过的代码:
def solve(s):
words = s.split()
flag = False
for word in words:
if isinstance(word[0], str):
flag = True
else:
flag = False
if flag:
return s.title()
else:
# don't know what to do
s = input()
print(solve(s))
此代码适用于大多数情况,除了一个,
令人沮丧的测试用例:'1 w 2 r 3g',而 output 应该是'1 W 2 R 3g',但由于我们使用的是 .title() 方法,所以最后一个 'g' 也将大写。
我们可以在这里尝试使用re.sub
匹配模式\b(.)
,以及一个回调 function ,它将匹配的单个字母大写。
inp = '1 w 2 r 3g'
output = re.sub(r'\b(.)', lambda x: x.group(1).upper(), inp)
print(output) # 1 W 2 R 3g
name = 'robert lewandowski'
print(name.title())
Output -
Robert Lewandowski
如果可以解决您的问题,请检查此
z=[]
s = input()
x=s.split(" ")
print(x)
for i in x:
z.append(i.capitalize())
v=" ".join(z)
print(v)
你可以这样打电话:
s = '1 w 2 r 3gH'
print(' '.join([word.capitalize() for word in s.split()]))
# 1 W 2 R 3gh
但请注意,其余字母也将使用小写字母,除了更改示例中给出的第一个字母。
如果您使用 numpy 模块,那么您可以轻松获得答案! 例如 = 艾莉森·赫克
from numpy import *
answer=input("give your input").title()
print(answer)
该模块专门为此目的而制作。
您可以使用 RE,也可以尝试这样的解决方案
def solve(s):
res=""
for i in range(len(s)):
if i==0:
if s[i].isalpha():
res+=s[i].capitalize()
else:
res+=s[i]
else:
if s[i].isalpha() and s[i-1]==' ':
res+=s[i].capitalize()
else:
res+=s[i]
return res
#代替
def 解决:
for i in s.split():
s = s.replace(i,i.capitalize())
return s
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.