Reputation: 37
I am having issues trying to get my code to print the last value of the range when I am running a loop. Here is the problem I was given with my code at the end:
start_character = "A"
end_character = "Z"
#You may modify the lines of code above, but don't move them!
#When you Submit your code, we'll change these lines to
#assign different values to the variables.
#Print all the letters from start_character to end_character,
#each on their own line. Include start_character and
#end_character themselves.
#
#Remember, you can convert a letter to its underlying ASCII
#number using the ord() function. ord("A") would give 65.
#ord("Z") would give 90. You can use these values to write
#your loop.
#
#You can also convert an integer into its corresponding ASCII
#character using the chr() function. chr(65) would give "A".
#chr(90) would give "Z". So, for this problem, you'll need
#to convert back and forth between ordinal values and
#characters based on whether you're trying to loop over
#numbers or print letters.
#
#You may assume that both start_character and end_character
#are uppercase letters (although you might find it fun to
#play around and see what happens if you put other characters
#in instead!).
#Add your code here! With the original values for
#start_character and end_character, this will print the
#letters from A to Z, each on their own line.
for char in range(ord(start_character), ord(end_character)):
for h in chr(char):
print(h)
Here is the output I receive:
A B C D E F G H I J K L M N O P Q R S T U V W X Y
I know I am missing something simple, and adding +1 to end_character didn't work due to it not being a string.
Upvotes: 0
Views: 1716
Reputation: 95
I think you just need to make sure you are adding 1 to the ordinal, not the char. Additionally you don't need the inner for
loop, all you need to do is cast the current index back to a character with chr()
:
for char in range(ord(start_character), ord(end_character)+1):
print(chr(char))
Upvotes: 3
Reputation: 115
use ord(end_character)+1 in for loop
ord(character): this function returns integer value (ASCII) add 1 to it.
Upvotes: 0
Reputation: 106
In the range loop you can add the +1 to the end_character like so:
for char in range(ord(start_character), ord(end_character) + 1):
ord in python turns the character into an integer.
Upvotes: 0