Question:

Write a user-defined function in Python named showInLines() which reads contents of a text file named STORY.TXT and displays every sentence in a separate line. Assume that a sentence ends with a full stop (.), a question mark (?), or an exclamation mark (!). Example:
If the content of the file STORY.TXT is:
Our parents told us that we must eat vegetables to be healthy. And it turns out, our parents were right! So, what else did our parents tell?
Then the function should display:
Our parents told us that we must eat vegetables to be healthy.
And it turns out, our parents were right!
So, what else did our parents tell?

Show Hint

Use split()} to separate text into sentences based on delimiters like .}, ?}, and !}. For handling multiple delimiters, additional splitting or regex can be used.
Updated On: Jan 21, 2025
Hide Solution
collegedunia
Verified By Collegedunia

Solution and Explanation

def showInLines():
    # Open the file STORY.TXT in read mode
    with open("STORY.TXT", "r") as file:
        content = file.read()  # Read the entire content of the file
        sentences = content.split('. ')  # Split by '. ' for sentences
        
        # Process further to handle '? ' and '! '
        final_sentences = []
        for sentence in sentences:
            sub_sentences = sentence.split('? ') if '?' in sentence else sentence.split('! ')
            final_sentences.extend(sub_sentences)
        
        # Print each sentence in a separate line
        for sentence in final_sentences:
            print(sentence.strip())  # Strip leading/trailing whitespaces
    
Explanation: The file STORY.TXT is opened in read mode using the with open() statement. The content of the file is read into a string and split into sentences using split('. '). For sentences containing ? or !, further splitting is done to ensure each sentence is correctly separated. Each sentence is then printed on a new line after removing extra whitespaces using strip().
Was this answer helpful?
0
0

Top Questions on Commands and Requests

View More Questions