Python | Toggle characters in words having same case

Given a string, toggle the characters of those words who have all their characters in the same case.

Examples:

Input : Geeks for Geeks
Output : Geeks FOR Geeks
Explanation: The string contains three words “Geeks”, “for”, “Geeks” out of which the word “for” contains all its characters as lower cases, therefore, toggle the case of the word. Print the remaining characters as it is.

Input : HELLO world
Output : hello WORLD

Simple Approach:
Consider each word in the string separately. Set two flags, one to check if all the cases of the characters are the same and another to check if the characters are upper case or lower case.

if all the characters are in the same case 
    if all the characters are lower case 
       then convert into upper case
    else convert into lower case
else print the same word

Below is the implementation:

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to toggle character in 
# a string only with same case
  
# Function to toggle case 
def toggle(s):
      
    word_list = s.split()
      
    # traverse through each word of the string
    for word in word_list:
          
        # initially assume all the characters in word
        # are in the same case and set the flag to 1
        flag = 1
          
        # check the case of the the first
        # character in the word
        if word[0].islower():
              
            # if the case is lower set the r value to 1
            r = 1
              
            # traverse through the remaining 
            # characters in the word
            for j in word:
                  
                # if any of the characters are in upper case
                if j.isupper():
                      
                    # then set the flag to 0
                    flag = 0
                    break
                  
        else:
            # if the case is upper 
            # set the r value to 1
            r = 0
              
            # traverse through the remaining
            # characters in the word
            for j in word:
                  
                # if any of the characters are in lower case
                if j.islower():
                      
                    # then set the flag to 0
                    flag = 0
                    break
          
        # if the flag is 0 then print the word as it is     
        if flag == 0: print(word, end =" ")
      
        else:
            # if the word is in lower case 
            # then print the word in upper case
            if r == 1: print(word.upper(), end =" ")
              
            # if the word is in upper case 
            # then print the word in lower case
            else: print(word.lower(), end =" ")
              
# driver code
s = 'Geeks for Geeks'
toggle(s)

chevron_right


Output:

Geeks FOR Geeks

Using Library functions :
We can also use direct library functions to check if individual words are lower or upper.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to toggle character in 
# a string only with same case
  
# Function to toggle case 
def toggle(s):
      
    word_list = s.split()
      
    # traverse through each word of the string
    for word in word_list:
          
        if word.islower() :
            print(word.upper(), end =" ")
        elif word.isupper() :
            print(word.lower(), end =" ")
        else :
            print(word, end =" ")
              
# driver code
s = 'Geeks for Geeks'
toggle(s)

chevron_right


Output:

Geeks FOR Geeks


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.