Python学习之路——数据容器部分【元组(tuple)】

一、元组

(一)列表和元组

(二)注意

1、定义单元素元组

①示例:

②结果:

(三)嵌套元组的定义

二、元组的常用操作

(一)演示:

(二)练习案例

1、整体框架

2、具体函数的实现

①查询学生的年龄下标

②查询学生的名字

③删除学生的爱好

④增加学生的爱好

⑤修改学生的爱好

⑥主页面

⑦整体代码


一、元组

列表内的元素可以修改,如果不想修改数据的话,就要用到元组了

(一)列表和元组

区别:列表在定义好之后还可以修改但是,元组在定义好之后就不可以修改了

(二)注意

  • 元组使用 ( ) 进行定义,列表则是使用 [ ] 进行定义
  • 在定义单元素元组时,一定要在哪一个元素后面添加一个不然就不是元组类型了

1、定义单元素元组

①示例:
def func01():
    # 错误演示
    my_tuple = ('hello')
    print(f'内容为:{my_tuple},类型为:{type(my_tuple)}')
    # 正确的应该为
    my_tuple01 = ('hello',)
    print(f'内容为:{my_tuple01},类型为:{type(my_tuple01)}')
②结果:

(三)嵌套元组的定义

def func02():
    my_tuple01 = (1, True, 'MoB')
    my_tuple02 = (2, 3.14, '墨白')
    my_tuple03 = (my_tuple01, my_tuple02)
    print(f'将元组{my_tuple01}与元组{my_tuple02}嵌套进另外一个元组中之后,内容为:{my_tuple03}')

二、元组的常用操作

编号方法作用
1index()查找某个数据,如果数据存在返回对应的下标,否则报错
2count()统计某个数据在当前元组内出现的次数
3len(元组)统计元组内的元素个数

(一)演示:

def func03():
    # 定义空元组
    my_tuple01 = ()
    # 或者
    my_tuple02 = tuple()

    # 通过下标索引取到元组内的内容
    my_tuple03 = ('I', 'am', 'MoB')
    my_tuple04 = ('is', 'YYDS', 'hhh')
    # 我现在想要取到第一个元组内的MoB和第二个元组内的YYDS,该怎么操作呢
    name = my_tuple03[2]
    attribute = my_tuple04[1]
    print(f'{name}是{attribute}')

    # 元组的操作——index
    # 要获取到my_touple03中的MoB的下表索引
    index = my_tuple03.index('MoB')
    print(f'元组内指定元素的下表索引为:{index}')
    # print({my_tuple03.index('zzz')})    如果元素不存在将会报错

    # 元组的操作——count
    # 获取元组内指定元素的个数
    my_tuple05 = ('Hello', 'World', 'and', 'Hello', 'Python.')
    count = my_tuple05.count('Hello')
    print(f'元组内指定元素出现的次数为:{count}')

    # 元组的操作——len
    # 获取元组内的元素的个数
    my_len = len(my_tuple05)
    print(f'元组内元素的个数为:{my_len}')

    # 元组的遍历
    # while循环
    element_for = 0
    while element_for < len(my_tuple05):
        print(f'{my_tuple05[element_for]} ', end="")
        element_for += 1
    print()

    # for循环
    for element_while in range(len(my_tuple05)):
        print(f'{my_tuple05[element_while]} ', end="")
    print()

    # 之前说:元组在定义好之后就不可以修改元素了,但是我非要修改呢,或许可以这样试试
    my_tuple06 = ('I', 'am', 'rookie', ['and', 'I', 'want', 'not', 'rookie.'])
    for i in range(len(my_tuple06)):
        print(my_tuple06[i])
    # 进行一系列操作,将 I want not rookie.替换为 I am the king of the world.
    del my_tuple06[3][1]
    my_tuple06[3].remove('want')
    del my_tuple06[3][1]
    my_tuple06[3].remove('rookie.')
    for i in range(len(my_tuple06)):
        print(my_tuple06[i])
    my_tuple06[3].append('I am the king of the world.')
    my_element = 0
    while my_element < len(my_tuple06):
        print(my_tuple06[my_element])
        my_element += 1
    """
                一顿操作猛如虎
        实际上全是进行的上个博客的内容
        本质上元组的元素还是不可以修改的
        这只是对元组内的列表进行了修改
        而元组内的元素并没有发生变化    
    """

(二)练习案例

定义一个学生信息的元组,包含姓名,年龄,喜欢的书籍
在运行的时候加入一个小小的页面
要能查询学生的年龄的下标、姓名、当前爱好的增加、删除、修改、以及退出功能

1、整体框架

# 1、输入 1 查询学生年龄的下标
def searchAge():
    pass


# 2、输入 2 查 询 学 生的姓名
def searchName():
    pass


# 3、输入 3 删除学生的当前爱好
def delHobby():
    pass


# 4、输入 4 增 加 学 生的爱好
def addHobby():
    pass


# 5、输入 5 修 改 学 生的爱好
def modHonny():
    pass


# 主页面
def my_exit():
    print('+++++++++++++++++++++++++++++')
    print('++ 1、输入 1 查询学生年龄的下标 ++')
    print('++ 2、输入 2 查 询 学 生的姓名 ++')
    print('++ 3、输入 3 删除学生的当前爱好 ++')
    print('++ 4、输入 4 增 加 学 生的爱好 ++')
    print('++ 5、输入 5 修 改 学 生的爱好 ++')
    print('++ 6、输入 6 退   出 该 页 面 ++')
    print('+++++++++++++++++++++++++++++')


if __name__ == '__main__':
    while True:
        my_exit()
        operate = eval(input('请输入你要进行的操作:'))
        # 查询学生年龄的下标
        if operate == 1:
            pass
        # 查询学生的姓名
        elif operate == 2:
            pass
        # 删除学生的当前爱好
        elif operate == 3:
            pass
        # 增加学生的爱好
        elif operate == 4:
            pass
        # 修改学生的爱好
        elif operate == 5:
            pass
        # 退出
        elif operate == 6:
            print('******成功退出程序******')
            break
        else:
            print('******输入不规范,退出程序******')
            break

2、具体函数的实现

①查询学生的年龄下标
def searchAge():
    print(f'学生年龄的下标为:{my_touple[1]}')
②查询学生的名字
def searchName():
    print(f'学生的姓名为:{my_touple[0]}')
③删除学生的爱好
def delHobby():
    del my_touple[2][0]
    print('删除成功')
④增加学生的爱好
def addHobby():
    add_hobby = input('请输入你的爱好')
    my_touple[2].append(add_hobby)
    print('增加成功')
⑤修改学生的爱好
def modHonny(new_hobby):
    for order in my_touple[2]:
        if order == new_hobby:
            modify_hobby = input('要修改为什么爱好')
            index = my_touple[2].index(new_hobby)
            modify_hobby[2][index] = modify_hobby
            print('修改成功')
⑥主页面
def my_exit():
    print('\n\n+++++++++++++++++++++++++++++')
    print('++ 1、输入 1 查询学生年龄的下标 ++')
    print('++ 2、输入 2 查 询 学 生的姓名 ++')
    print('++ 3、输入 3 删除学生的当前爱好 ++')
    print('++ 4、输入 4 增 加 学 生的爱好 ++')
    print('++ 5、输入 5 修 改 学 生的爱好 ++')
    print('++ 6、输入 6 退   出 该 页 面 ++')
    print('+++++++++++++++++++++++++++++')
⑦整体代码
print('/  键入信息  /')
name = input(' 输入你的名字 \n\t\t:')
age = eval(input(' 输入你的年龄 \n\t\t:'))
hobby = input(' 输入你的爱好 \n\t\t:')

my_touple = (name, age, [hobby])


# 1、输入 1 查询学生年龄的下标
def searchAge():
    print(f'学生年龄的下标为:{my_touple[1]}')


# 2、输入 2 查 询 学 生的姓名
def searchName():
    print(f'学生的姓名为:{my_touple[0]}')


# 3、输入 3 删除学生的当前爱好
def delHobby():
    del my_touple[2][0]
    print('删除成功')


# 4、输入 4 增 加 学 生的爱好
def addHobby():
    add_hobby = input('请输入你的爱好')
    my_touple[2].append(add_hobby)
    print('增加成功')


# 5、输入 5 修 改 学 生的爱好
def modHonny(new_hobby):
    for order in my_touple[2]:
        if order == new_hobby:
            modify_hobby = input('要修改为什么爱好')
            index = my_touple[2].index(new_hobby)
            modify_hobby[2][index] = modify_hobby
            print('修改成功')


# 主页面
def my_exit():
    print('\n\n+++++++++++++++++++++++++++++')
    print('++ 1、输入 1 查询学生年龄的下标 ++')
    print('++ 2、输入 2 查 询 学 生的姓名 ++')
    print('++ 3、输入 3 删除学生的当前爱好 ++')
    print('++ 4、输入 4 增 加 学 生的爱好 ++')
    print('++ 5、输入 5 修 改 学 生的爱好 ++')
    print('++ 6、输入 6 退   出 该 页 面 ++')
    print('+++++++++++++++++++++++++++++')


if __name__ == '__main__':
    while True:
        my_exit()
        operate = eval(input('请输入你要进行的操作:'))
        # 查询学生年龄的下标
        if operate == 1:
            searchAge()
        # 查询学生的姓名
        elif operate == 2:
            searchName()
        # 删除学生的当前爱好
        elif operate == 3:
            delHobby()
        # 增加学生的爱好
        elif operate == 4:
            addHobby()
        # 修改学生的爱好
        elif operate == 5:
            current_hobby = input('请输入你想要修改那个爱好:')
            modHonny(current_hobby)
        # 退出
        elif operate == 6:
            print('******成功退出程序******')
            break
        else:
            print('******输入不规范,退出程序******')
            break

此外,还可以拓展功能,比如说:

  • 查询学生的整体的成绩;
  • 初始的时候多加几个爱好;
  • 除了当前的学生的名字、年龄、爱好之外,发挥想象力,创建几个其他的属性
  • 等等等等,可玩性还是很高的。
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值