Python | Toggle characters in words having same case - GeeksforGeeks

15 Oct, 2019
Given a string, toggle the characters of those words who have all their characters in the same case.
Examples:
Input : Geeks for GeeksOutput : Geeks FOR GeeksExplanation: 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 worldOutput : 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:
# 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 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 codes = 'Geeks for Geeks'toggle(s)
Geeks FOR Geeks

Using Library functions :We can also use direct library functions to check if individual words are lower or upper.
# 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 codes = 'Geeks for Geeks'toggle(s)
Geeks FOR Geeks

Akanksha_Rai
python-string
Python
Strings
Technical Scripter
Strings
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Read a file line by line in Python
Enumerate() in Python
How to Install PIP on Windows ?
Iterate over a list in Python
Reverse a string in Java
Write a program to reverse an array or string
Longest Common Subsequence | DP-4
Write a program to print all permutations of a given string
C++ Data Types