首页 > 解决方案 > 如何将句子输入中的空格替换为输出中的破折号

问题描述

我们有一个学校活动,我需要将字母表映射到电话号码。我快完成了,但我似乎无法让句子的空格变成“-”

我试过的代码是这样的:

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)

我预计句子中的空格会被替换为“-”,就像我输入“哈哈哈”一样,它需要是 4242-4242,但它不会出现破折号/连字符。

标签: pythonpython-3.x

解决方案


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)

您的第一'if'条语句是检查字符串元素是否是字母表,而空格('')不是这种情况,删除它并正确缩进您的代码解决了这个问题。


推荐阅读