[英]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.我们有一个学校活动,我需要 map 字母到电话号码。 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.我预计句子中的空格会被替换为“-”,就像我输入“哈哈哈”一样,它需要是 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)
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.您的第一个
'if'
语句是检查字符串元素是否是字母表,而空格('')不是这种情况,删除它并正确缩进代码解决了这个问题。
Your if isalpha() statement doesnt recognize a empty string in an alphabet.您的 if isalpha() 语句无法识别字母表中的空字符串。 Just create an else statement at the end like this:
只需在末尾创建一个 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() returns False for space, so you are losing it on your first 'if' .isalpha() 为空间返回 False,因此您在第一个“if”时会丢失它
if(number.isalpha() or number==' '):
This would solve the problem.这将解决问题。 OR:
或者:
You can remove the last else intend:您可以删除最后一个 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.