How to increment letters in Python?

Question:

Write a program that takes a character as input (a string of length 1), which you should assume is an upper-case character; the output should be the next character in the alphabet. If the input is ‘Z’, your output should be ‘A’. (You will need to use an if statement.)
So far I’ve tried several codes like this:

chr = input()
if chr == '65':
        x = chr(ord(chr) + 1)
print(chr(65) + 1)

It says it prints with no output, just unsure how to get to the the right output. Im very new to programming.

Asked By: Haley

||

Answers:

The below method is using ascii_letters.

import string

// returns a string of all the alphabets
// abcdefghijklmnopqrstuvwxyz"

   result = string.ascii_letters 

// get the index of the input alphabet and return the next alphabet in the results string. 
// using the modulus to make sure when 'Z' is given as the input it returns to the first alphabet. 

   result[(result.index(alphabet.lower()) + 1) % 26].upper() 
Answered By: Yatish Kadam

Hope this is what you are looking for

_chr = input('Enter character(A-Z): ')
if _chr == 'Z':
    print('A')
else:
    print(chr(ord(_chr) + 1))
Answered By: Hansraj Das

This should work:

my_chr = ord(input())
if my_chr == 90:
        print('A')
else:
    print(chr(my_chr+1))

It takes the input letter (A-Z) and gets its ord() value. It then checks to see if the value is equal to Z (ord('Z') == 90) and prints A otherwise, it increments it by 1 then turns it back to a string and prints it.

Answered By: Mason Caiby

You can use the following idea:

A = 65
Z = 90

If you subtract ord(‘A’) from the input, you reduce the range to [0, 25]

So, you need to define the output inside the range [0, 25]. To avoid getting out this range, you should use ‘%’.

char_input = input()
return chr((ord(char_input) - ord('A') + 1) % 26 + ord('A'))

it means that, giving the input, you will subtract the value of ord(‘A’) to “fix” the range and, after that, add + 1. You will take % 26 to avoid getting out the range. After all of that, add ord(‘A’) again.

Answered By: João Vasconcelos
alpha=input()
if alpha =='Z': print('A')
else:print(chr(ord(alpha)+1))

“You will need to use an if statement”

Answered By: thed0ct0R

We can increment character in many ways –

Method 1: Using ascii_lowercase –

import string
ch = input("Enter a character")
alphabets = string.ascii_lowercase
chIndex = alphabets.index(ch)
nextCh = alphabets[(chIndex + 1) % 26]
print(nextCh)

Method 2: Using ord() and chr() –

ch = input("Enter a character")
nextCh = ((ord(ch) - 96) % 26) + 97
print(chr(nextCh))

There are many other ways in which we can increment a character in Lowercase or Uppercase both –

  1. Using ord() and chr() Functions
  2. Using bytes() and str() Functions
  3. Using bytes() and chr() Functions
  4. Using ord() and Some Math Calculations
  5. Using ascii_lowercase and ascii_uppercase
Answered By: Aryan Kumar
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.