Open In App

Python - Uppercase Half String

Last Updated : 18 Jan, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The problem is to convert half of a string to uppercase, either the first half or the second half, depending on the requirement. For example, given the string "python", the output could be "PYThon" (uppercase first half) or "pytHON" (uppercase second half).

If the string length is odd, handle the middle character by including it in one half based on your logic.

Using String Slicing

String slicing in Python allows us to extract specific parts of a string using a range of indices syntax is string[start:stop:step], where start is the beginning index, stop is the ending index (exclusive), and step determines the stride or interval between characters

Python
s = "hello"
# Calculate the middle index of the string
i = len(s) // 2

# Convert the first half to uppercase and concatenate with the second half
res = s[:i].upper() + s[i:]
print(res) 

Output
HEllo

Explanation:

  • len(s) // 2 finds the halfway index of the string.
  • String is split into two parts, the first part is converted to uppercase, and both parts are concatenated.

Using a Loop

Using a loop to manipulate strings or access their characters involves iterating through each character with constructs like for.

Python
s = "hello"
half_index = len(s) // 2
res = ""

# Iterate through each character in the string
for i in range(len(s)):
    if i < half_index:  # If the index is in the first half, convert to uppercase
        res += s[i].upper()
    else:  # Otherwise, keep the character unchanged
        res += s[i]
print(res)  

Output
HEllo

Explanation:

  • A loop iterates through the string, checking if the current index is in the first half.
  • Characters in the first half are uppercased, while the rest are added unchanged

Using List Comprehension

List comprehension in python provides a concise way to create lists by applying an expression to each item in an iterable.

Python
s = "hello"
index = len(s) // 2
# Convert first half to uppercase, keep the rest unchanged
res = ''.join([s[i].upper() if i < index else s[i] for i in range(len(s))])
print(res) 

Output
HEllo

Explanation:

  • A list comprehension iterates through each index and conditionally uppercases characters in the first half.
  • Result list is joined back into a string.

Next Article
Practice Tags :

Similar Reads