Reputation: 151
I want to write a function program that is able to get 7-digit user input (numbers only - so error checking is needed) and turn it into a phone number. An example was provided as shown:
>>> make_phone_number()
Please enter a 7-digit number: abcdefg
Error! Please try again:
Error! Please try again: 1234567
User input: 1234567
Fixed number: 408-123-4567
Most of the questions I looked at here asked about converting letters to phone numbers, but not numbers to phone numbers.
Upvotes: 1
Views: 1730
Reputation: 2055
import re
def make_phone_number():
number_flag = True
number = raw_input("Please enter a 7-digit number: ")
while number_flag:
# print number
myfilter = re.compile(pattern='^\d{7}$')
if myfilter.match(number):
number_flag = False
else:
number = raw_input(" Error! Please try again: ")
print "User input: %s" % number
print "Fixed number: 408-%s-%s" % (number[0:3], number[3:])
if __name__ == "__main__":
make_phone_number()
Upvotes: 1
Reputation: 1943
Try this
stin=""
while (len(stin)!=7):
print "Error , please try again"
stin = str(input("Please enter a 7-digit number:"))
print "User input:" + stin
print "Fixed number:" + "408-" + stin[0:3]+ '-' + stin[3:7]
Upvotes: 1
Reputation: 466
Is this what you wanted?
def make_phone_number():
input = raw_input("Please enter a 7-digit number: ")
while not input.isdigit() or not len(input)==7:
input = raw_input("Error! Please try again: ")
print "User input: %s"%input
number = "408-%s-%s"%(input[:3],input[3:])
print "Fixed number: %s"%number
Upvotes: 1