g = (3, 4, 5)
g = "(3, 4, 5)"
g = 3, 4, 5
接着是
print(g)
,输出始终为
(3, 4, 5)
那么,这三种变量赋值之间的区别是什么?
答案 0 :(得分:12)
小代码片段足以证明它:
g1 = (3, 4, 5)
g2 = "(3, 4, 5)"
g3 = 3, 4, 5
type(g1) # <type 'tuple'>
type(g2) # <type 'str'>
type(g3) # <type 'tuple'>
g1 == g3 # True
g1 == g2 # False
g2 == g3 # False
g1[0] # 3, first element of tuple, type: int
g2[0] # "(", first char of string, type: str
总之,对象和对象属性的字符串表示是两个不同的概念。可能有多个对象具有相同的字符串表示但行为不同。
答案 1 :(得分:1)
案例#1和#3都会产生tuple
,通过expression_list创建;可以在[括号]中括起来,如在案例#1中,或者在案例#3中未封闭。 Python中的某些操作允许任一语法(例如定义新的tuple
或for...in
循环),有些需要括起来的expression_list
(例如if
语句);在任何情况下,结果都是tuple
对象。
案例#2显然是任何语言的string
,包括Python。 :)