所以我是新來的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