day3元组

"""
字符串切片
"""
str1 = 'abcdefghi'
print(str1[:])
print(str1[1:2])
print(str1[1:1])
print(str1[1:4:2])
print(str1[1:4:-1])
print(str1[4:1:-1])
print(str1[::-1])

"""
abcdefghi
b
    # 值就是空
bd
    # 值就是空
edc
ihgfedcba
"""


"""
tuple是固定不变的,一旦变成tuple,tuple中的每一个元素都不可被改变
tuple里面的元素不可替换的。但是这针对的是仅包含基础数据类型(数字类型、布尔类型、字符串类型)的数据,对于组合数据类型,则不受这个约束。
"""
T = ('Alice', 'Bob', 'Candy', 'David', 'Ellena')
print(T[0])     # Alice
print(T[1:3])   # ('Bob', 'Candy')

t = list(T)
print(t)     # ['Alice', 'Bob', 'Candy', 'David', 'Ellena']

#T[0] = 'hello'
#print(T)

list1 = range(10)
print(list1)
tup = tuple(list1)
print(tup)


"""
count():用来统计tuple中某个元素出现的次数,没有该元素时,返回0
index():返回指定元素的下标,当一个元素多次重复出现时,则返回第一次出现的下标位置。若是不存在的元素会报错
"""
T = (1, 1, 2, 2, 3, 3, 1, 3, 5, 7, 9)
print(T.count(1))
print(T.count(4))

print(T.index(1))
print(T.index(1, 2))    # 从下标2开始找

# print(T.index(4))   # ValueError: tuple.index(x): x not in tuple
"""
3
0
0
6
"""


"""
在某次考试中,班上的成绩如下:(100, 69, 29, 100, 72, 99, 98, 100, 75, 100, 100, 42, 88, 100),
请统计满分(100分)同学的数量。
"""
tup2 = (100, 69, 29, 100, 72, 99, 98, 100, 75, 100, 100, 42, 88, 100)
print(tup2.count(100))  # 6


"""
元组定义:()  (1,)
因为()既可以表示tuple,又可以作为括号表示运算时的优先级,结果(1)被Python解释器计算出结果 1,导致我们得到的不是tuple,而是整数 1。
因此,要定义只有一个元素的tuple,需要在元素后面添加一个逗号,
"""
T = ()
print(type(T))
T = (1)
print(type(T))
T = (1,)
print(type(T))

"""
<class 'tuple'>
<class 'int'>
<class 'tuple'>
"""
print('************************/n')

# T的元素中,有多少个tuple。
T = ((1+2),  ((1+2),), ('a'+'b'), (1, ), (1,2,3,4,5))
print(type((1+2)))
print(type(((1+2),)))
print(type(('a'+'b')))
print(type((1, )))
print(type((1,2,3,4,5)))


"""
tuple里面的元素不可替换的。但是这针对的是仅包含基础数据类型(数字类型、布尔类型、字符串类型)的数据,对于组合数据类型,则不受这个约束。
"""
T = (1, 'CH', [3, 4])
L = T[2]
print(L)    # [3, 4]

L[1] = 40
print(L)    # [3, 40]
# 虽然tuple中的list元素改变了,但是tuple本身指向的list仍然是同一个list,list本身并没有改变,改变的只是list里面的一个元素,
# 这是tuple所约束不到的范围
print(T)    # (1, 'CH', [3, 40])


"""
T = (1, 'CH', [3, 4])
L2 = [3, 40]
# 尝试替换tuple中的list
T[2] = L2
# 报错  TypeError: 'tuple' object does not support item assignment
"""


"""
练习:
T = (1, 'CH', [3, 4])
tuple里面包含list,导致tuple是可变的,请修改T的定义,不改变基本数据类型的数据,使T是不可变的
"""
T = (1, 'CH', (3, 4))
L = T[2]
# L[1] = 40   # TypeError: 'tuple' object does not support item assignment

 

posted @ 2023-03-04 23:44  雪儿来  阅读(14)  评论(0编辑  收藏  举报