0

“给定三个已赋值的 int 变量,areaCode、exchange 和 lastFour,编写一个字符串表达式,其值是由单个连字符 (-) 连接的每个这些变量的字符串等价物所以如果 areaCode、exchange 和 lastFour,有值 800、555 和 1212,表达式的值将是“800-555-1212”。

这是我的代码,但我很困惑为什么它不起作用......

str("areaCode" + "exchange" + "lastFour")

但是我在哪里放置连字符?非常感谢!

4

5 回答 5

3
'-'.join([str(num) for num in [areaCode, exchange, lastFour]])
于 2013-03-24T00:42:44.040 回答
2

您需要从变量中删除引号",代码才能正常工作。问题是,如果你包装变量,它们将被视为文本,而不是变量。只需通过删除引号来修改您的代码应该允许您运行您的程序。

此外,根据您的分配,您应该"-"在变量之间添加连字符。

str(areaCode + "-" + exchange + "-" + lastFour)

如果您想使代码更干净,您可以采用以下方法之一。

"%s-%s-%s" % (areaCode, exchange, lastFour)

或者

"{}-{}-{}".format(areaCode, exchange, lastFour)
于 2013-03-24T00:39:54.517 回答
2
>>> areaCode, exchange, lastFour = 800, 555, 1212
>>> '{0}-{1}-{2}'.format(areaCode, exchange, lastFour)
'800-555-1212'
于 2013-03-24T00:40:13.980 回答
2

首先,您没有正确获取变量。

areaCode, exchange, lastFour

"areaCode", "exchange", "lastFour"

非常不同。不带引号的版本指的是变量,但带引号的版本指的是文字字符串“areaCode”、“exchange”和“lastFour”。

作为 python 解释器的快速演示

字符串字面量

>>> areaCode = "5555"
>>> print("areaCode")
areaCode

多变的

>>> areaCode = "5555"
>>> print(areaCode)
5555



至于连字符,请尝试

'%s-%s-%s' % (areaCode, exchange, lastFour)
于 2013-03-24T00:40:48.517 回答
-1

你会想要类似的东西

areaCode = "555"
exchange = "555"
lastFour = "5555"
phonenumber = "-".join([areaCode, exchange, lastFour])
于 2013-03-24T00:40:02.510 回答