cekik
cekik

Reputation: 63

Capitalize only the first letter of sentences in python,using split function

How can I capitalize the first letter of a input sentence in python? Output has to be: Enter sentence to be capitalized:+ input sentence

input_string =input("Enter sentence to be capitalized: ")
def capitalize_first(input_string):
    output=input_string.split('.')
    i=0
    while i<len(output)-1:
        result=output[i][0].upper()+output[i][1:]+"."
    print("Enter sentence to be capitalized:"+result)

Upvotes: 4

Views: 2056

Answers (3)

nandu kk
nandu kk

Reputation: 368

sentence="test Sentence"
print(sentence.title()) #makes the first letter of every word in sentence capital
print(sentence[0].upper()+sentence[1:] ) #retains case of other charecters
print(sentence.capitalize()) #makes all other charecters lowercase

Output:

Test Sentence

Test Sentence

Test sentence

Answer your specific question

def modify_string(str1):
    sentence_list=str1.split('.')
    modify_this=input("Enter sentence to be modified: ")
    for idx, item in enumerate(sentence_list):
            modify_this_copy=modify_this
            if item.lower().strip()==modify_this.lower().strip():
                sentence_list[idx]=modify_this_copy[0].upper()+modify_this_copy[1:]
    return '. '.join(sentence_list)
string1="hello. Nice to meet you. hello. Howdy."
print(modify_string(string1))

Output

Enter sentence to be modified: hello

Hello. Nice to meet you. Hello. Howdy.

Upvotes: 0

Indunil Aravinda
Indunil Aravinda

Reputation: 813

In my opinion there are many ways to do so, but title() is the easiest. You can use upper() inside a for loop which iterating the input string, or even capitalize(). If the goal is to capitalise only the first letter of every word. Then you can't use above methods since they capitalise the word in traditional way (first letter is capitalise and others in simple letters regardless what user entered). To avoid that and keep any capitalise letters inside a word as it is, just like user entered. Then this might be a solution

inputString=input("Your statement enter value or whatever")
seperatedString=inputString.split()
for i in seperatedString:
    i[0].upper()
    print("Anything you want to say" + i)

Upvotes: 0

Suraj Kothari
Suraj Kothari

Reputation: 1632

How about input_string.title()?

input_string =input("Enter sentence to be capitalized: ")
def capitalize_first(input_string):
    result = input_string.title()
    print("Enter sentence to be capitalized:"+result)

This built-in method only capitalises the first character and keeps other ones lower, just like how titles work.

As you can see, the extra capitals in THIS IS AN AMAZING are changed.

>>> input_string = "Hello World THIS IS AN AMAZING day!!!"
>>> input_string.title()
>>> 'Hello World This Is An Amazing Day!!!'

Upvotes: 1

Related Questions