繁体   English   中英

如何将句子输入中的空格替换为 output 中的破折号

[英]How to replace the space in a sentence input to a dash in the output

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

我试过的代码是这样的:

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,但它不会出现破折号/连字符。

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'语句是检查字符串元素是否是字母表,而空格('')不是这种情况,删除它并正确缩进代码解决了这个问题。

您的 if isalpha() 语句无法识别字母表中的空字符串。 只需在末尾创建一个 else 语句,如下所示:

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)

.isalpha() 为空间返回 False,因此您在第一个“if”时会丢失它

if(number.isalpha() or number==' '):

这将解决问题。 或者:

您可以删除最后一个 else 意图:

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM