如何将随机电话号码从数字转换为字典中的单词,以及如何将文本 select 转换为 python?
How to convert a random telephone number from a number into words from dictionaries and how to select it from a text and convert it in python?
我正在尝试使用以下代码使用字典将随机电话phone号码从数字转换为单词:
dict_1 = {07: 'zero seven'}
dict_2 = {2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight'}
dict_3 = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine'}
def main():
import re
no_tel = raw_input("Enter a phrase: ")
mat = re.search('(\d{10})', no_tel)
a_no = mat.group(0)
first_part = a_no[0:2]
second_part = a_no[2:3]
third_part = a_no[3:]
it_works = False
if dict_1.get(int(first_part)) != None:
a_print = dict_1.get(int(first_part))
it_works = True
else:
print "Error!"
if dict_2.get(int(second_part)) != None:
b_print = dict_2.get(int(second_part))
it_works = True
else:
print "Error!"
fourth_part = third_part[0]
fifth_part = third_part[1]
sixth_part = third_part[2]
seventh_part = third_part[3]
eighth_part = third_part[4]
ninth_part = third_part[5]
tenth_part = third_part[6]
if dict_3.get(int(fourth_part)) != None:
d_print = dict_3.get(int(fourth_part))
it_works = True
if dict_3.get(int(fifth_part)) != None:
e_print = dict_3.get(int(fifth_part))
it_works = True
if dict_3.get(int(sixth_part)) != None:
f_print = dict_3.get(int(sixth_part))
it_works = True
if dict_3.get(int(seventh_part)) != None:
g_print = dict_3.get(int(seventh_part))
it_works = True
if dict_3.get(int(eighth_part)) != None:
h_print = dict_3.get(int(eighth_part))
it_works = True
if dict_3.get(int(ninth_part)) != None:
i_print = dict_3.get(int(ninth_part))
it_works = True
if dict_3.get(int(tenth_part)) != None:
j_print = dict_3.get(int(tenth_part))
it_works = True
if it_works == True:
telephone = " ". join([a_print, b_print, d_print, e_print, f_print, g_print, h_print, i_print, j_print])
correct_no = re.sub ('(first_part)(second_part)(third_part)', telephone, no_tel)
print correct_no
else:
print "Error!"
if __name__ == '__main__':
main()
在 运行 这个程序之后输出应该是:
Enter a phrase: My phone no is 0734123456
上面的代码应该转换成 ->
My phone no is zero seven two three one two three four five six
或任何其他 phone 没有这种格式。
另外,如何将代码应用于包含电话phone 号码的文档?
我不知道该怎么做,从文本中读取,然后显示替换为 telephone 数字的内容,我不知道。
为什么不只是:
def phone(number):
numbers = ['zero', 'one', 'two', 'three', 'four',
'five', 'six', 'seven', 'eight', 'nine']
return ' '.join(numbers[c] for c in map(int, number))
结果:
>>> phone('0734123456')
'zero seven three four one two three four five six'
我正在尝试使用以下代码使用字典将随机电话phone号码从数字转换为单词:
dict_1 = {07: 'zero seven'}
dict_2 = {2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight'}
dict_3 = {0: 'zero', 1: 'one', 2: 'two', 3: 'three', 4: 'four', 5: 'five', 6: 'six', 7: 'seven', 8: 'eight', 9: 'nine'}
def main():
import re
no_tel = raw_input("Enter a phrase: ")
mat = re.search('(\d{10})', no_tel)
a_no = mat.group(0)
first_part = a_no[0:2]
second_part = a_no[2:3]
third_part = a_no[3:]
it_works = False
if dict_1.get(int(first_part)) != None:
a_print = dict_1.get(int(first_part))
it_works = True
else:
print "Error!"
if dict_2.get(int(second_part)) != None:
b_print = dict_2.get(int(second_part))
it_works = True
else:
print "Error!"
fourth_part = third_part[0]
fifth_part = third_part[1]
sixth_part = third_part[2]
seventh_part = third_part[3]
eighth_part = third_part[4]
ninth_part = third_part[5]
tenth_part = third_part[6]
if dict_3.get(int(fourth_part)) != None:
d_print = dict_3.get(int(fourth_part))
it_works = True
if dict_3.get(int(fifth_part)) != None:
e_print = dict_3.get(int(fifth_part))
it_works = True
if dict_3.get(int(sixth_part)) != None:
f_print = dict_3.get(int(sixth_part))
it_works = True
if dict_3.get(int(seventh_part)) != None:
g_print = dict_3.get(int(seventh_part))
it_works = True
if dict_3.get(int(eighth_part)) != None:
h_print = dict_3.get(int(eighth_part))
it_works = True
if dict_3.get(int(ninth_part)) != None:
i_print = dict_3.get(int(ninth_part))
it_works = True
if dict_3.get(int(tenth_part)) != None:
j_print = dict_3.get(int(tenth_part))
it_works = True
if it_works == True:
telephone = " ". join([a_print, b_print, d_print, e_print, f_print, g_print, h_print, i_print, j_print])
correct_no = re.sub ('(first_part)(second_part)(third_part)', telephone, no_tel)
print correct_no
else:
print "Error!"
if __name__ == '__main__':
main()
在 运行 这个程序之后输出应该是:
Enter a phrase: My phone no is 0734123456
上面的代码应该转换成 ->
My phone no is zero seven two three one two three four five six
或任何其他 phone 没有这种格式。
另外,如何将代码应用于包含电话phone 号码的文档? 我不知道该怎么做,从文本中读取,然后显示替换为 telephone 数字的内容,我不知道。
为什么不只是:
def phone(number):
numbers = ['zero', 'one', 'two', 'three', 'four',
'five', 'six', 'seven', 'eight', 'nine']
return ' '.join(numbers[c] for c in map(int, number))
结果:
>>> phone('0734123456')
'zero seven three four one two three four five six'