首页 > 解决方案 > Python作业涉及将字符串中的字符转换为数字

问题描述

下午好,我在尝试运行这批代码时遇到了一些问题,这些代码涉及将字符串中的单个字母字符转换为数字。字母表中的特定字母按顺序划分为不同的分组,如代码中所示。

这是我到目前为止所拥有的:

def main():

    gSNumberConversion()

def gSNumberConversion():

   phoneNum = input('Please Enter the number in the format of XXX-XXX-XXXX\n:')

   phoneNum = phoneNum.split('-')

   for var in phoneNum[1:2]:

       for char in var:
        if char == 'A' or char == 'B' or char == 'C':
            char = '2'
        elif char == 'D' or char == 'E' or char == 'F':
            char = '3'
        elif char == 'G' or char == 'H' or char == 'I':
            char = '4'
        elif char == 'J' or char == 'K' or char == 'L':
            char = '5'
        elif char == 'M' or char == 'N' or char == 'O':
            char = '6'
        elif char == 'P' or char == 'Q' or char == 'R' or char == 'S':
            char = '7'
        elif char == 'T' or char == 'U' or char == 'V':
            char = '8'
        elif char == 'W' or char == 'X' or char == 'Y' or char == 'Z':
            char = '9'

            print(phoneNum)

main()

该代码应该通过一个电话号码运行,该电话号码中隐藏了一个小短语,例如"555-GET-FOOD",并返回其等效数字。虽然输入确实通过,但程序不会返回数字替换的数字版本

标签: pythonnumberscharacteralphabet

解决方案


第一个错误是您phoneNum在内部循环中打印,而您将转换后的数字分配给char变量。

phoneNum[1:2]如果要转换完整输入,则其次是不正确的。

这是更新的代码 -

def main():

    gSNumberConversion()

def gSNumberConversion():

   phoneNum = input('Please Enter the number in the format of XXX-XXX-XXXX\n:')

   phoneNum = phoneNum.split('-')
   print(phoneNum)

   for var in phoneNum: # mistake 2

       for char in var:
        if char == 'A' or char == 'B' or char == 'C':
            char = '2'
        elif char == 'D' or char == 'E' or char == 'F':
            char = '3'
        elif char == 'G' or char == 'H' or char == 'I':
            char = '4'
        elif char == 'J' or char == 'K' or char == 'L':
            char = '5'
        elif char == 'M' or char == 'N' or char == 'O':
            char = '6'
        elif char == 'P' or char == 'Q' or char == 'R' or char == 'S':
            char = '7'
        elif char == 'T' or char == 'U' or char == 'V':
            char = '8'
        elif char == 'W' or char == 'X' or char == 'Y' or char == 'Z':
            char = '9'

        print(char) ## mistake 1

main()

推荐阅读