"""
元组（tuple）与列表类似，不同之处在于元组的元素不能修改。元组写在小括号 () 里，元素之间用逗号隔开。
元组中的元素类型也可以不相同：
"""
tuple = ('abcd', 786, 2.23, 'runoob', 70.2)
tinytuple = (123, 'runoob')

print(tuple)  # 输出完整元组
print(tuple[0])  # 输出元组的第一个元素
print(tuple[1:3])  # 输出从第二个元素开始到第三个元素
print(tuple[2:])  # 输出从第三个元素开始的所有元素
print(tinytuple * 2)  # 输出两次元组
print(tuple + tinytuple)  # 连接元组

"""
('abcd', 786, 2.23, 'runoob', 70.2)
abcd
(786, 2.23)
(2.23, 'runoob', 70.2)
(123, 'runoob', 123, 'runoob')
('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')
"""

tup = (1, 2, 3, 4, 5)
print(tup[0])
print(tup[1:5])     # 取下角标为1直到下角标为5但不包含5的所有数
'''
1
(2, 3, 4, 5)
'''
# 不能修改元组里面的元素 tup[0] = 11 会报错
# 但是元组元素里的元素能改
tu = (1, 2, 3, ["a", "b", "c"])
tu = (1, 2, 4, ["a", "b"])
tu[3].append("添加的值")
print(tu)

"""
虽然tuple的元素不可改变，但它可以包含  可变的对象  ，比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊，所以有一些额外的语法规则：
"""

tup1 = ()       # 空元组
tup2 = (20,)    # 一个元素，需要在元素后添加逗号 如果不加将会是num或者string等，而不会是tuple类型

'''
string、list和tuple都属于sequence（序列）。
'''

"""
注意：
1、与字符串一样，元组的元素不能修改。
2、元组也可以被索引和切片，方法一样。
3、注意构造包含0或1个元素的元组的特殊语法规则。
4、元组也可以使用+操作符进行拼接。
"""
