我需要让用户输入未格式化的电话号码,如:1234567890 然后输出为(123)= 456-7890
你会如何在Python 3中做到这一点?
我知道如何使用if else语句和while / for循环,但不知道如何导入模块。
答案 0 :(得分:1)
我会尝试使用.format()
。首先,使用input()
的所有内容都以字符串形式出现,因此可以拼接。我会做这样的事情。
raw = input("Enter your unformatted phone number:")
if len(raw) != 10:
raise Exception("Phone number must be 10 digits long")
formatted = "({0})-{1}-{2}".format(raw[:3], raw[3:6], raw[-4:])
.format()
函数是字符串类的一种方法,它接受位置(或关键字)参数。在这种情况下,它接受令牌{0}
并用第一个参数替换为.format()
(记住python中的所有内容都是零索引的)。
现在让我们看一下传递给format方法的参数。假设用户输入的电话号码是raw = "1234567890"
。
因为这是一个字符串,我们可以像列表一样拼接它。 raw[:3]
抓取可迭代的前三个元素,raw[3:6]
抓取可迭代的第四到第六个元素,raw[-4]
抓取最后四个元素。
所以,如果你要print(formatted)
,你会得到类似(123)-456-7890
的内容。