我自己打印一个元组,但没有其他变量

时间:2018-02-25 10:43:01

标签: python python-3.x tuples

我是一位经验丰富的c程序员,正试图与Python达成协议。

locationtuple,我可以使用以下

进行打印
print(" %s %s" % (date_time, model))
print("Lat: %-.4f, Lon: %-.4f" % (location))

我尝试将其合并为一个打印件,但使用以下

获取错误TypeError: must be real number, not tuple
print("%s %s Lat: %-.4f, Lon: %-.4f" % (date_time, model, location))

我尝试了几种变体,但没有成功。

我可以想到几种解决这个问题的方法(如果我必须提供一个工作程序,我会这样做),但是想要了解一个有经验的Python程序员会使用的优雅方法。

2 个答案:

答案 0 :(得分:2)

打开你的元组。

>>> date_time, model, location = 1, 2, (3, 4)
>>> print("%s %s Lat: %-.4f, Lon: %-.4f" % (date_time, model, *location))
1 2 Lat: 3.0000, Lon: 4.0000

pyformat.info是一个有用的网站,用于汇总Python中的字符串格式。

一般情况下,我建议在str.format运算符上使用新式%Here's相关的PEP。

答案 1 :(得分:2)

您希望在元组中打印 值,而不是元组本身。连接元组:

print("%s %s Lat: %-.4f, Lon: %-.4f" % ((date_time, model) + location)))

或将元组值插入第一个元组:

print("%s %s Lat: %-.4f, Lon: %-.4f" % (date_time, model, *location))

就个人而言,我并不是在所有中使用printf格式。使用更现代,更强大的string formatting syntax,最好采用(非常快)formatted string literals的形式:

print(f"{date_time} {model} Lat: {location[0]:-.4f}, Lon: {location[1]:-.4f}")