Reputation: 17
we have a school activity where I need to map the alphabet to telephone numbers. I am almost done but I cannot seem to get the spaces of a sentence to become "-"
the code I have tried is this:
sentence = input("Enter a sentence: ").upper()
phone_number = ""
for number in sentence:
if(number.isalpha()):
if (number in "ABC"):
phone_number += "2"
elif (number in "DEF"):
phone_number += "3"
elif (number in "GHI"):
phone_number += "4"
elif (number in "JKL"):
phone_number += "5"
elif (number in "MNO"):
phone_number += "6"
elif (number in "PQRS"):
phone_number += "7"
elif (number in "TUV"):
phone_number += "8"
elif (number in "WXYZ"):
phone_number += "9"
else:
phone_number += number
number_sequence = phone_number.replace(" ","-")
print(number_sequence)
I have expected the space from a sentence to be replaced with "-" like if I enter "haha haha" it needs to be 4242-4242, but it the dash/hyphen does not appear.
Upvotes: 0
Views: 71
Reputation: 492
sentence = input("Enter a sentence: ").upper()
phone_number = ""
for number in sentence:
if (number in "ABC"):
phone_number += "2"
elif (number in "DEF"):
phone_number += "3"
elif (number in "GHI"):
phone_number += "4"
elif (number in "JKL"):
phone_number += "5"
elif (number in "MNO"):
phone_number += "6"
elif (number in "PQRS"):
phone_number += "7"
elif (number in "TUV"):
phone_number += "8"
elif (number in "WXYZ"):
phone_number += "9"
else:
phone_number += number
number_sequence = phone_number.replace(" ","-")
print(number_sequence)
You first 'if'
statement was checking whether the string element is an alphabet, which is not the case for a space (' '), removing it and properly indenting your code solved the issue.
Upvotes: 1
Reputation: 154
.isalpha() returns False for space, so you are losing it on your first 'if'
if(number.isalpha() or number==' '):
This would solve the problem. OR:
You can remove the last else intend:
sentence = input("Enter a sentence: ").upper()
phone_number = ""
for number in sentence:
if(number.isalpha()):
if (number in "ABC"):
phone_number += "2"
elif (number in "DEF"):
phone_number += "3"
elif (number in "GHI"):
phone_number += "4"
elif (number in "JKL"):
phone_number += "5"
elif (number in "MNO"):
phone_number += "6"
elif (number in "PQRS"):
phone_number += "7"
elif (number in "TUV"):
phone_number += "8"
elif (number in "WXYZ"):
phone_number += "9"
else:
phone_number += number
number_sequence = phone_number.replace(" ","-")
print(number_sequence)
Upvotes: 0
Reputation: 295
Your if isalpha() statement doesnt recognize a empty string in an alphabet. Just create an else statement at the end like this:
sentence = input("Enter a sentence: ").upper()
phone_number = ""
for char in sentence:
if(char.isalpha()):
if (char in "ABC"):
phone_number += "2"
elif (char in "DEF"):
phone_number += "3"
elif (char in "GHI"):
phone_number += "4"
elif (char in "JKL"):
phone_number += "5"
elif (char in "MNO"):
phone_number += "6"
elif (char in "PQRS"):
phone_number += "7"
elif (char in "TUV"):
phone_number += "8"
elif (char in "WXYZ"):
phone_number += "9"
else:
phone_number += char
elif char in ' ':
phone_number += '-'
else:
print('Error. Please dont use special characters.')
print(number_sequence)
Upvotes: 1