所以我是新来的python,我正在写一个程序,接受XXX-XXX-XXXX格式的电话号码,并将任何字母更改为相应的号码。我需要检查条目并确保它的格式正确,如果没有,请允许它重新输入。我很难让它提示我输入一个新的号码,即使有时它有效,它仍然会翻译原始的,错误的电话号码。Python。搞清楚如何输入正确的电话号码
这是我到目前为止的代码:
def main():
phone_number= input('Please enter a phone number in the format XXX-XXX-XXXX: ')
validNumber(phone_number)
translateNumber(phone_number)
def validNumber(phone_number):
for i,c in enumerate(phone_number):
if i in [3,7]:
if c != '-':
phone_number=input('Please enter a valid phone number: ')
return False
elif not c.isalnum():
phone_number=input('Please enter a valid phone number: ')
return False
return True
def translateNumber(phone_number):
s=""
for char in phone_number:
if char is '1':
x1='1'
s= s + x1
elif char is '-':
x2='-'
s= s + x2
elif char in 'ABCabc':
x3='2'
s= s + x3
.....等这部分不是很重要
首先,你绝对不希望'elif's的那么长,罗嗦链。更好的做法是创建一个将字符映射到它们的等价字典(如{“A”:“1”,“B”:“1”...}) – 2013-03-06 23:27:35
您的缩进似乎存在问题。 – placeybordeaux 2013-03-06 23:28:16
'str.translate'将在这里帮助 – wim 2013-03-06 23:30:52