有人可以帮我弄清楚如何将字符串转换为数字吗?假设用户输入“1-800-Flowers”我希望python显示“1-800-3569377”
到目前为止,我所拥有的只是:
userInput = input("Please enter a phone number (e.g. 1-800-Flowers): ")
phoneNum = userInput.replace('-','')
这就是我的全部。任何帮助将不胜感激
答案 0 :(得分:3)
>>> pad = ['qz', 'abc', 'def', 'ghi', 'jkl', 'mno', 'prs', 'tuv', 'wxy']
>>> letter_to_numbers = {
... ord(ch): ord(str(i))
... for i, chs in enumerate(pad, 1)
... for ch in chs
... } # Map ord('f') to ord('3'), ...
>>> "1-800-Flowers".lower().translate(letter_to_numbers)
'1-800-3569377'
答案 1 :(得分:1)
有一个for循环遍历用户输入的字符串,然后对于每个字母或数字,使用ord()函数将其转换为ASCII值。
other=[]
userInput = input("Please enter a phone number (e.g. 1-800-Flowers): ")
for i in userInput:
other+=[ord(i)]
print(other)
你所说的对我来说没有意义,因为如果你将"1-800-Flowers"
转换为ASCII,"1-800-3569377"
不等同于{{1}},你甚至可以在{{3}检查自己}。如果我说错了,请纠正我。
答案 2 :(得分:0)
以下是我如何通过更直接的翻译来实现的:
letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
letter_digits = "22233344455566677778889999"
letter_to_digit = string.maketrans(letters+letters.lower(),letter_digits+letter_digits)
# convert letters to digits
new_phone = raw_phone.translate(letter_to_digit)