我有一个函数应该用户输入字符串和int,如(555-GOT-FOOD)并为每个字符串字符打印正确的数字。如何获取我的功能以获取用户输入(555-GOT-EATS)
代码:
def num(n):
chars = []
for char in n:
if char.isalpha():
if char.lower() in ['A', 'B', 'C']:
chars.append('2')
elif char.lower() in ['D', 'E', 'F']:
chars.append('3')
elif char.lower() in ['G', 'H', 'I']:
chars.append('4')
elif char.lower() in ['J', 'K', 'L']:
chars.append('5')
elif char.lower() in ['M', 'N', 'O']:
chars.append('6')
elif char.lower() in ['P', 'R', 'S']:
chars.append('7')
elif char.lower() in ['T', 'U', 'V']:
chars.append('8')
else:
chars.append('9')
else:
chars.append(char)
return ''.join(chars)
num(555-“得到” - “食物”)
答案 0 :(得分:0)
要么接受一个char数组,然后将前三个数字转换为int。另外,你可以输入一个字符串,然后拔出3个数字并转换为int。
答案 1 :(得分:0)
如果您正在接受用户输入,那么您不应该担心5是不正确的,因为它们不是全新的! Python将所有用户输入作为字符串。所以它们是数字,是的,但它们是字符串类型,而不是int。将它们视为代表数字的符号。
如果您像这样修改代码的结尾,它应该可以工作。
elif char.lower() in ['T', 'U', 'V']:
chars.append('8')
elif char.lower() in ['X', 'Y', 'Z']:
chars.append('9')
else:
chars.append(char)
return ''.join(chars)
您还需要使用
n.replace("-", "")
摆脱所有" - ",给你" 555GOTFOOD"而不是" 555-GOT-FOOD"。
另外,我不确定它是否会按原样运行,或者你需要将char.lower()更改为char.upper(),因为你的列表都是大写字母。