Python中的字符串字符转换为数字的分配作业

2024-03-29 06:58:34 发布

您现在位置: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”,并返回其数字等价物。当输入确实通过时,程序不会返回数字替换的版本


Tags: orthe代码informainvardef
3条回答

你可以事先创建字典

char_dict = { 
    'A':2,
    'B':2,
    'C':2,
    'D':3,
    'E':3,
    'F':3,
    'G':4,
    'H':4,
    'I':4,
    'J':5,
    'K':5,
    'L':5,
    'M':6,
    'N':6,
    'O':6,
    'P':7,
    'Q':7,
    'R':7,
    'S':7,
    'T':8,
    'U':8,
    'V':8,
    'W':9,
    'X':9,
    'Y':9,
    'Z':9
}

# take input
input_str = input()

# initialise result string
result = ''

# loop over input
for val in input_str:
    if val in char_dict:
        # take the number equivalent from dict
        result = result + str ( char_dict.get(val) )
    # other wise take the number or -
    else:
        result += result + val

print(result)

希望有帮助

第一个错误是在内部循环中打印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()

字符串是不可变的,您必须创建一个新变量并将结果添加到其中

newPhoneNum="" #new empty variable to add the result to
var = phoneNum[1:2] #extract the part of the phone that you will use


for index in len(var)):
        if var[index] == 'A' or var[index] == 'B' or var[index] == 'C':
            newPhoneNum+='2'
        .
        .  
        etc 
        print(phoneNum[0]+newPhoneNum)

相关问题 更多 >