我有一个变量如下:
weatherWind = int(round(c["windSpeed"])), "mph", bearing_to_direction(c["windBearing"])
目前windSpeed
和windBearing
是从Dark Sky天气API中获取的值。但是,当我打印出来时,它有括号和引号:
(8, 'mph', 'W')
我的所有其他变量都正确打印出来。我希望它打印出来像这样:
8 mph W
答案 0 :(得分:3)
您创建了一个包含3个值的元组,一个整数,字符串'mph'
和字符串'W'
。如果您想创建一个字符串,请使用string formatting:
weatherWind = '{:.0f} mph {}'.format(c["windSpeed"], bearing_to_direction(c["windBearing"]))
这会将风速和方位信息插入到已存在{..}
的字符串中的mph
个插槽中。 .0f
格式化指令将您的浮点windspeed舍入为仅显示舍入的整数部分。
然后您可以打印该字符串而不需要任何其他引号或括号:
>>> bearing_to_direction = lambda d: 'NSWE'[d]
>>> c = {'windSpeed': 7.92, 'windBearing': 2}
>>> print '{:.0f} mph {}'.format(c["windSpeed"], bearing_to_direction(c["windBearing"]))
8 mph W
>>> c = {'windSpeed': 3.14, 'windBearing': 1}
>>> print '{:.0f} mph {}'.format(c["windSpeed"], bearing_to_direction(c["windBearing"]))
3 mph S
答案 1 :(得分:3)
有些令人困惑,
print a, b, c
与
完全不同x = a, b, c
print x
执行print a, b, c
时,Python会分别对每个对象调用str
以获取对象的字符串表示形式并打印这些字符串,用空格分隔。
当您执行x = a, b, c
时,您正在构建一个元组。此时不会产生任何字符串。执行print x
后,Python会在元组上调用str
并打印结果。元组的str
表示与print a, b, c
输出非常不同。
如果你想要一个看起来像print a, b, c
输出的字符串,那么通用的方法是
x = ' '.join(map(str, [a, b, c]))
根据您的打印情况,可能有更方便的方法;例如,字符串格式化,如Martijn所建议。