FelixF
FelixF

Reputation: 151

Python: converting numbers to a phone number in a function program

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

Answers (3)

Mahesh Karia
Mahesh Karia

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

Sandeep Lade
Sandeep Lade

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

Atul Vinayak
Atul Vinayak

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

Related Questions