如何在python

时间:2017-04-22 10:45:51

标签: python

所以,这一次,我的挑战要求我从用户那里得到一个输入,我的python代码必须检查代码并找到任何未大写的字符应该大写 - 如果在“i”中找到文本,这将被替换为“I”,以及任何(非空间)非大写字符之后的任何!?应该大写(“。cheese”将被替换为“。Cheese”)。到目前为止,我的代码可以找到无资本化的“i”并替换它们但是还不能替换之后发现的非大写字符!? (在一个空格之后)。到目前为止,这是我的代码:

import re

def capitalise():
    string = str(input("Please input a uncapitalised string to be capitalised:"))
    string = string.replace(" i ", " I ")
    a = string.find('\. [a-z]')
    b = '\. [A-Z]'
    string = string.replace(a,b)
    print(string)

def main():
    capitalise()
    pass

if __name__ == '__main__':
    main()

有人知道如何做最后一部分吗?

2 个答案:

答案 0 :(得分:0)

你可以尝试这样的事情:

>>> word = ".cheese"
>>> def return_index(word):
...     for i, x in enumerate(word):
...         if x.isalpha():
...             return i
... 
>>> index = return_index(word)
>>> index
1
>>> if index:
...     word.replace(word[index],word[index].upper(), 1)
... 
'.Cheese'

答案 1 :(得分:0)

带有reqular表达式的快速示例

words = '  a string i want to be capitalised: string2 . string 3 !string 4 :   string 5 !!? string6.'
for match in re.findall('(^\s*\w)|(\s*[\.\?\!\:]\s*\w)|(\s+i\s+)', words) : 
    words = words.replace(''.join(match), ''.join(match).upper(), 1)

结果:

print(words)
'  A string I want to be capitalised: String2 . String 3 !String 4 :   String 5 !!? String6.'