如何适当地大写字符串?

时间:2019-07-14 19:18:28

标签: python

已指示我将用户提供的字符串大写,例如:

“我什么时候应该在那里?地址是什么?” >> “我什么时候应该在那里?地址是什么?”

其他说明是:“您必须从头开始编写以下功能。请勿依赖任何其他内置或预先存在的功能 似乎可以为您提供任何此功能。”

我参考了以下文章,但由于缺乏编程语言知识,我难以理解公认的答案。 How to capitalize a string?

此外,此示例仅要求将两个单词中的每个单词的首字母大写,因此不包括“?”之后的大写。或“。”

任何指导表示赞赏。

1 个答案:

答案 0 :(得分:0)

从头开始构建。试试看:

s = input()
s = list(s)
if ord(s[0]) >=97 and ord(s[0]) <=122: #if the first character is small
    s[0] = chr(ord(s[0]) - 32) 
for i in range(0, len(s) - 2):
    if s[i] == '?' or s[i] == '!' or s[i] == '.':
        if (ord(s[i + 1]) >=97 and ord(s[i + 1]) <=122):  #assuming no space after ? . !
            s[i+1] = chr(ord(s[i+1]) - 32)
        if (ord(s[i + 2]) >=97 and ord(s[i + 2]) <=122): #assuming there is a space after ? . !
            s[i+2] = chr(ord(s[i+2]) - 32) 

s = ''.join(s)
print(s)

逻辑是,如果第一个字符或? . !之后的任何字符是小写字母(其ASCII代码在97-122之间),我们将其ASCII代码减少32,因此例如将其转换为大写字母(代码为ASCII,介于65-90之间)。