1-4 Python 入门之元组与字典

第1关:元组的使用:这份菜单能修改吗?

100

  • 任务要求
  • 参考答案
  • 评论134

任务描述

元组看起来犹如列表,但元组使用圆括号()而不是[]来标识,而且列表的元素可以修改,但元组的元素不能修改。本关介绍元组的常见使用方法以及元组和列表的使用区别。下面用饭店菜单的例子来说明列表和元组使用的应用场景:

现在有一个餐馆要向每个包厢都投放两份菜单,菜单上有4种菜名。我们想将两个菜单上最后一道菜名互换一下,也想快速知道改变后的两份菜单上单词首字母最大的菜名。而我们首先需要判断该用列表的方法还是元组的方法实现这个目标。为了实现这个目标,我们需要先学习元组的相关使用知识以及元组与列表的区别。

相关知识

元组与列表

元组与列表很相似,两者之间的差别在于:

  • 列表在初始化后其中的元素还可以进行增删改等操作,但是元组在初始化后其中的元素不能进行更改;
  • 列表在赋值时使用方括号[],而元组在赋值时使用小括号()

因为元组具有不可变的特性,所以在能用元组替代列表的地方最好都使用元组,这样代码更安全。

创建元组

元组创建很简单,只需要在括号()中添加元素,元素之间用逗号隔开。元组中只包含单个元素时,需要在该元素后面添加逗号。例如:

 
  1. menu1 = ('meat','fish','chicken')
  2. menu2 = ('meat',)

访问元组

元组和列表一样,可以使用下标索引来访问元组中的值。例如:

 
  1. menu = ('meat','fish','chicken','carrot')
  2. print(menu[0])
  3. print(menu[1:3])

输出结果:

 
  1. meat
  2. ('fish', 'chicken')

修改元组

元组中的元素值是不可以修改的,如果强行修改会报错。例如我们想修改元组menu中的某个值:

 
  1. menu = ('meat','fish','chicken','carrot')
  2. menu[0] = 'pizza'
  3. print(menu[0])

输出结果:

 
  1. TypeError: 'tuple' object does not support item assignment

系统会自动报错,元组中的元素值不支持修改。

元组内置函数

元组和列表一样,都有一些内置函数方便编程。例如:

  • len(tuple):计算元组中元素个数;

  • max(tuple):返回元组中元素的最大值;

  • min(tuple):返回元组中元素的最小值;

  • tuple(seq):将列表转换为元组。

元组中的元素是不能改变的,它也没有append()insert()这样的方法,但其他获取元素的方法和列表是一样的。

编程要求

本关的编程任务是补全src/Step1/menu_test.py文件的代码内容,实现如下功能:

  • 将输入的菜单menu_list转换为元组类型;

  • 打印输出生成的元组;

  • 打印输出元组中首字母最大的元素。

本关涉及的代码文件src/Step1/menu_test.py的代码框架如下:

 
  1. # coding=utf-8
  2. # 创建并初始化munu_list列表
  3. menu_list = []
  4. while True:
  5. try:
  6. food = input()
  7. menu_list.append(food)
  8. except:
  9. break
  10. # 请在此添加代码,对menu_list进行元组转换以及元组计算等操作,并打印输出元组及元组最大的元素
  11. ########## Begin ##########
  12. ########## End ##########

测试说明

本关的测试文件是src/Step1/menu_test.py,测试过程如下:

  1. 平台自动编译并运行menu_test.py,并以标准输入方式提供测评输入;

  2. 平台获取程序的输出,然后将其与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/Step1/menu_test.py的样例测试集:

测试输入:

 
  1. pizza
  2. chicken
  3. carrot
  4. turkey
  5. banana

预期输出:

 
  1. ('pizza', 'chicken', 'carrot', 'turkey', 'banana')
  2. turkey

开始你的任务吧,祝你成功!

通关代码:

# coding=utf-8

# 创建并初始化menu_list列表

menu_list = []

while True:

    try:

        food = input()

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sa_sa_ki_Haise

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值