Python打印带元组和不带元组的字符串的不同行为
因此,我有一个脚本(Python2.7),它从oracle数据库中提取一些值,然后在插入或更新数据库时使用这些值。脚本很长,所以我不打算在这里发布所有内容,在几乎所有情况下,事情都如我所期望的那样进行,除了这里: 设备id和mac id通过某种方式从数据库中提取 执行此命令:Python打印带元组和不带元组的字符串的不同行为,python,Python,因此,我有一个脚本(Python2.7),它从oracle数据库中提取一些值,然后在插入或更新数据库时使用这些值。脚本很长,所以我不打算在这里发布所有内容,在几乎所有情况下,事情都如我所期望的那样进行,除了这里: 设备id和mac id通过某种方式从数据库中提取 执行此命令: print "device_id is %s" % device_id print "mac_id is %s" % mac_id print "device_id is %s, mac_id is %s" % (dev
print "device_id is %s" % device_id
print "mac_id is %s" % mac_id
print "device_id is %s, mac_id is %s" % (device_id, mac_id)
给出了:
device_id is 117281
mac_id is 3C:07:54:4A:D9:B6
device_id is (117281,), mac_id is ('3C:07:54:4A:D9:B6',)
但执行这一点:
print "device_id is %s" % device_id
print "mac_id is %s" % mac_id
print "device_id is %s, mac_id is %s" % (device_id, mac_id)
给出了:
device_id is 117281
mac_id is 3C:07:54:4A:D9:B6
device_id is (117281,), mac_id is ('3C:07:54:4A:D9:B6',)
为什么在第二次执行时提供元组中的变量会添加额外的parantesse、逗号和引号?因为它们已经是元组了。将它们单独放置,从元组中“提取”它们以便打印
print "device_id is %s, mac_id is %s" % (device_id + mac_id)
print "device_id is %s, mac_id is %s" % (device_id[0], mac_id[0])
尝试打印设备id,您将看到它是一个只有一个元素的元组
(117281,)
这意味着以下内容是相同的:
print“device\u id是%s”%device\u id
打印“设备id为%s”%(111,)
是 同print“设备\u id是%s,mac\u id是%s”%(设备\u id,mac\u id)
打印“设备id为%s,mac id为%s”%((111,),('222')
print“device_id为%s”((111,))
编辑:我写得太长了,没有看到答案,抱歉:D谢谢你改进了我问题的格式DOH!好吧,酷,这很有道理。我没有意识到我在查询数据库的子系统中将这些值作为元组返回。太棒了,非常感谢!