helloplshelp
helloplshelp

Reputation: 17

How to replace the space in a sentence input to a dash in the output

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

Answers (3)

Trollsors
Trollsors

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

pzmn
pzmn

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

Heini
Heini

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

Related Questions