Python 涉及将字符串中的字符转换为数字的赋值
Python assignmen intvolving the conversion of the charaters within a string into numbers
下午好,
我在尝试 运行 这批涉及将字符串中的单个字母字符转换为数字的代码时遇到了一些问题。字母表中的特定字母根据顺序分为不同的组,如代码中所示。
这是我目前的情况:
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()
代码应该 运行 通过 phone 数字,其中隐藏了一个小短语,例如 "555-GET-FOOD" 和 return 是它的等效数值。当输入 运行 通过时,程序不会 return 数字替换数字
的版本
第一个错误是您在内部循环中打印 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)
您可以预先创建字典
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)
希望对您有所帮助。
你的打印不应该放在循环中,我使用列表理解来减少程序中的循环。
def main():
gSNumberConversion()
def gSNumberConversion():
phoneNum_inputted = input('Please Enter the number in the format of XXX-XXX-XXXX\n:')
phoneNum = [y for x in phoneNum_inputted.split('-') for y in x]
real_num = ""
for char in phoneNum:
if char == 'A' or char == 'B' or char == 'C':
real_num += '2'
elif char == 'D' or char == 'E' or char == 'F':
real_num += '3'
elif char == 'G' or char == 'H' or char == 'I':
real_num += '4'
elif char == 'J' or char == 'K' or char == 'L':
real_num += '5'
elif char == 'M' or char == 'N' or char == 'O':
real_num += '6'
elif char == 'P' or char == 'Q' or char == 'R' or char == 'S':
real_num += '7'
elif char == 'T' or char == 'U' or char == 'V':
real_num += '8'
elif char == 'W' or char == 'X' or char == 'Y' or char == 'Z':
real_num += '9'
else:
real_num += char
print(real_num)
main()
输出:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
Please Enter the number in the format of XXX-XXX-XXXX
:555-GET-FOOD
555
下午好, 我在尝试 运行 这批涉及将字符串中的单个字母字符转换为数字的代码时遇到了一些问题。字母表中的特定字母根据顺序分为不同的组,如代码中所示。
这是我目前的情况:
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()
代码应该 运行 通过 phone 数字,其中隐藏了一个小短语,例如 "555-GET-FOOD" 和 return 是它的等效数值。当输入 运行 通过时,程序不会 return 数字替换数字
的版本第一个错误是您在内部循环中打印 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)
您可以预先创建字典
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)
希望对您有所帮助。
你的打印不应该放在循环中,我使用列表理解来减少程序中的循环。
def main():
gSNumberConversion()
def gSNumberConversion():
phoneNum_inputted = input('Please Enter the number in the format of XXX-XXX-XXXX\n:')
phoneNum = [y for x in phoneNum_inputted.split('-') for y in x]
real_num = ""
for char in phoneNum:
if char == 'A' or char == 'B' or char == 'C':
real_num += '2'
elif char == 'D' or char == 'E' or char == 'F':
real_num += '3'
elif char == 'G' or char == 'H' or char == 'I':
real_num += '4'
elif char == 'J' or char == 'K' or char == 'L':
real_num += '5'
elif char == 'M' or char == 'N' or char == 'O':
real_num += '6'
elif char == 'P' or char == 'Q' or char == 'R' or char == 'S':
real_num += '7'
elif char == 'T' or char == 'U' or char == 'V':
real_num += '8'
elif char == 'W' or char == 'X' or char == 'Y' or char == 'Z':
real_num += '9'
else:
real_num += char
print(real_num)
main()
输出:
Python 3.6.1 (default, Dec 2015, 13:05:11)
[GCC 4.8.2] on linux
Please Enter the number in the format of XXX-XXX-XXXX
:555-GET-FOOD
555