Python 程序设计习题(4) —— 列表与元组

2023-11-20

目录

1. Python 习题部分

2. Python 习题讲解

列表

元组

其他


1. Python 习题部分

要想学习一门语言,便少不了练习。

故附上部分 Python 习题,供大家学习参考。

如有错误之处,还望指正!

   1. 二年级一班举行了数学考试,学生小明90分,小红85分,小强95分。现已将学生姓名存放在student元组中,成绩存放在score元组中。请按照XX同学的数学成绩为XX的格式输出每位同学的成绩。

student = ("小明", "小红", "小强")
score = (90, 85, 95)
for i in range(3):
    print(f"{student[i]}的数学成绩为{score[i]}")

    2. 编程输出100以内的素数,并保存在元组number中。

number = []
for i in range(2, 100):
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        number.append(i)
print(tuple(number))

   3. 找出列表list1和list2中的不同元素,并组合成新的列表list3,最后输出结果。

list1 = [11, 22, 33, 44, 99]
list2 = [22, 33, 55, 66, 77, 88]
list3 = []

for i in list1:
    if i not in list2:
        list3.append(i)
print(list3)

   4.编写程序,实现分段函数的计算,分段函数的取值如下表所示。要求:可连续输入5次,每次的结果都将添加到列表中。

自变量x

因变量y

x<0

0

0≤x<5

x

5≤x<10

3x-5

10≤x<20

0.5x-2

x≥20

0

list1 = []
for i in range(5):
    x = eval(input('请输入 x 的值:'))
    if x < 0:
        y = 0
    elif 0 <= x < 5:
        y = x
    elif 5 <= x < 10:
        y = 3*x - 5
    elif 10 <= x < 20:
        y = 0.5*x - 2
    elif x >= 20:
        y = 0
    list1.append(y)
print(list1)

   5.一个正整数,如果它能被7整除,或者它的十进制表示法中某一位的数字为7,则称其为与7相关的数。现在请将所有小于n(n<100)的与7相关的正整数从小到大排列,并输出其中第三位到第八位的部分。

list1 = []
for i in range(100):
    if i % 7 == 0 or i % 10 == 7 or i // 10 == 7:
        list1.append(i)
print(list1[2:9])

   6.现有列表cities存放城市名称,但内容存在些许错误,请按照要求进行修改。要求:一、在北京和广州中间插入上海;二、删除不属于中国的城市;三、将省份名称改为其省会城市;四、在末尾加上台北。cities = ["北京", "广州", "波士顿", "深圳", "湖南", "成都", "洛杉矶", "武汉", "浙江", "香港", "澳门"]

cities = ["北京", "广州", "波士顿", "深圳", "湖南", "成都", "洛杉矶", "武汉", "浙江", "香港", "澳门"]
cities.insert(1, "上海")
cities[4] = "长沙"
cities[cities.index("浙江")] = "杭州"
for i in cities:
    if len(i) == 3:
        cities.pop(cities.index(i))
cities.append("台北")
print(cities)

   7.约瑟夫环是一个很有意思的算法。已知有41个人围坐在一张圆桌周围,从第1个人开始报数,数到3的那个人出列,他的下一个人又从1开始报数,数到3的那个人又出列;一次规律重复下去,直到圆桌周围的人数少于3时结束,输出剩下的人的序号。提示:41个人围成一个圈可以用一个列表来表示。

lst = list(range(41))
while len(lst) >= 3:
    lst = lst[3:] + lst[:2]
print(lst)

   8.微软产品一般都有一个25位的、用于区分每份微软产品的产品序列号。产品序列号由5组被“-”分隔开,由字母、数字混合编制的字符串组成,每组由5个字符串组成。例如:3CVX3-BJWXM-6HCYX-QEK9R-CVG4R,每个字符取自以下24个字母及数字之中的一个:BCEFGHJKMPQTVWXY2346789.编程;模拟生成微软产品序列号。(random.choice)

import random
char = 'BCEFGHJKMPQTVWXY2346789'
lst = []
for i in range(5):
    ls = random.sample(char,5)
    s = ''.join(ls)
    lst.append(s)
key = '-'.join(lst)
print(key)

2. Python 习题讲解

本次习题主要考验对列表和元组的掌握。

列表

以第 6 题为例: watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS3JlbGlubl9CaW9z,size_20,color_FFFFFF,t_70,g_se,x_16

从观察 cities 我们可以发现列表的特征是两端有 [ ] ,内部用 ,  分隔开众多元素

虽然本题的元素都是字符串,但列表元素可以有很多类型——如数字、元组、列表、字典

列表里面的元素是可以通过索引号获取的,这一点和字符串没有区别。因此我们可以通过索引号来对列表元素进行访问、修改

关于列表的函数&方法还有很多,大家可以通过这个链接去学习。https://www.runoob.com/python/python-lists.html

下面我们现在来看题目要求。

一、在北京与广州之间插入上海。

cities.insert(1, "上海")

这里我们使用 .insert 对列表进行插入操作,将指定对象插入列表的指定位置。因为上海在北京后面,所以这里索引号为 1

二、删除不属于中国的城市。

for i in cities:
    if len(i) == 3:
        cities.pop(cities.index(i))

本题内的所有其他城市都为三个字符,因此循环遍历列表找出长度为3的元素使用 pop() 函数删除即可。pop() 函数可移除列表中的一个元素默认最后一个元素),并且返回该元素的值。

这里我们由于不清楚字符的索引号,因此使用 index() 来获取,再将获取到的索引号放入 pop() 函数进行删除。

三、将省份名称改为其省会城市。

本题共有两处需要进行替换,因此这里我使用了两种不同的方法。

cities[4] = "长沙"
cities[cities.index("浙江")] = "杭州"

我们通过 湖南 的索引号 4 ,将湖南改成了长沙。通过 index() 的方法 获取 浙江 的索引号,将浙江改为了杭州。前者直接替换,后者先获取索引号再进行替换。

对于这道题,使用 index() 或许显得有些多余,但当我们不清楚某元素的具体位置时,index() 将会是很好用的工具。

四、在末尾加上台北。

cities.append("台北")

使用 append() 方法可以在列表末尾添加新的对象。需要添加什么就在括号里填入什么。

元组

以第 1 题为例:

student = ("小明", "小红", "小强")
score = (90, 85, 95)
for i in range(3):
    print(f"{student[i]}的数学成绩为{score[i]}")

通过观察可以得知元组的特征是两端有 ( ),内部用 ,  分隔开众多元素

元组和列表是很相似的,都可以利用索引号对里面的元素进行访问,区别在于元组的元素不可以修改。元组创建时是什么样,就是什么样。因此我们可以把不需要修改的内容存放在元组中。

创建空元组和空列表,只需要 xx = () 、 xx = [] 即可。但当里面只有一个元素的时候,二者就有区别了。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS3JlbGlubl9CaW9z,size_14,color_FFFFFF,t_70,g_se,x_16

 从图中我们可以看到,元组 tu 的类型是 int,与下面的元组 tup 仅有一个逗号的区别。也就是说,如果元组内只有一个元素,那么一定要在这个元素后面加上逗号,否则它就会被判断为整型。

元组只是不能进行修改,其他的地方和列表还是很相似的,比如拼接

189c3acd737f4bec9008c6da23266936.png

 如果我们不需要它,还可以将其删除

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAS3JlbGlubl9CaW9z,size_16,color_FFFFFF,t_70,g_se,x_16

关于元组还有很多其他的知识,大家可以通过这个链接学习。https://www.runoob.com/python3/python3-tuple.html

其他

join():序列中的元素以指定的字符连接生成一个新的字符串。key = '-'.join(lst) 便是用 - 符号来连接。

序列指的是一块可存放多个值连续内存空间,这些值按一定顺序排列,可通过每个值所在位置的编号(称为索引访问它们。

在 Python 中,序列类型包括字符串、列表、元组、集合字典。这些序列的操作基本上通用,但比较特殊的是,集合和字典不支持索引、切片、相加和相乘操作

random():可以返回随机生成的在 [0,1) 范围内一个实数。这里我们使用 import 函数将其导入。

注意:random()不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。

random模块的详细内容在此,请点击链接学习。https://www.runoob.com/python/func-number-random.html这里我们使用了 random 模块里的 sample() 方法该方法可以从指定序列随机截取指定长度的片段。random.sample(char,5) 便是随机截取 char 里面的 5 个元素。


如果你有什么好的建议,或者说这篇博客对你有帮助的话,都可以在下方评论区留言,我有时间一定会看。

那么,本此的博客就到此为止了,下次再见!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 程序设计习题(4) —— 列表与元组 的相关文章

随机推荐

  • 如何下载英伟达NVIDIA旧版本驱动,旧版本驱动官方网址

    https www nvidia cn Download Find aspx lang cn 也可以直接搜索英伟达官网 点击驱动程序 然后点击试用版驱动程序 里面不但有试用版的驱动 还有之前发布的所有驱动
  • 2023年信息素养大赛智能算法挑战复赛初中组

    智能算法挑战复赛初中组 总共 4 道题 1 修复机器人的对话词库错误 题目描述 基于人工智能技
  • 深度学习模型参数量/计算量(附计算代码)

    参考 https mp weixin qq com s biz MzI4MDYzNzg4Mw mid 2247546551 idx 2 sn f198b6365e11f0a18832ff1203302632 chksm ebb70e63dc
  • unity 性能查看工具Profiler

    文章目录 前言 profiler工具介绍 菜单栏 帧视图 模块视图 模块详细信息 通过profiler分析优化游戏性能 最后 前言 每次进行游戏优化的时候都用这个工具查看内存泄漏啊 代码优化啊之类的东西 真的好用 但是之前也就是自己摸索一下
  • 【FPGA多周期时序约束详解】- 解读FPGA多周期时序约束的全过程

    FPGA多周期时序约束详解 解读FPGA多周期时序约束的全过程 FPGA作为数字电路设计的常见工具 其设计中必然会遇到时序约束的问题 而多周期时序约束更是FPGA设计中不可避免的难点之一 本文将详细介绍FPGA多周期时序约束的全过程 并结合
  • PHP 使用 Kafka 安装拾遗

    最近项目开发中需要使用 Kafka 消息队列 经过检索 PHP下面有通用的两种方式来调用 Kafka php rdkafka 扩展 以 PHP 扩展的形式进行使用是非常高效的 另外 该项目也提供了非常完备的 文档 不过在 Mac 环境中安装
  • Android9 默认开启/关闭GPS

    gps默认打开 需要关闭的话 修改以下文件 frameworks base packages SettingsProvider res values defaults xml 将
  • xp系统蓝屏,xp系统蓝屏的详细解决过程

    xp系统蓝屏的详细解决过程 现在XP系统微软停止开发了 服务也升级不得了 刚刚使用时还是好好的 能够正常的运行 怎么一言不合就蓝屏了呢 那么xp蓝屏怎么办呢 跟你们分享一下小编解决xp蓝屏的经验吧 重新启动 快速按F8 用箭头上下选择 最后
  • 2022VLMo: Unified Vision-Language Pre-Training with Mixture-of-Modality-Experts

    摘要 我们提出了一个统一的视觉 语言预训练模型 VLMo 该模型与一个模块化的transformer网络共同学习一个双编码器和一个融合编码器 具体地 我们引入了模态混合专家 MoME Transformer 其中每个块包含一个特定于模态的专
  • tensorRT部署之 代码实现 onnx转engine/trt模型

    tensorRT部署之 代码实现 onnx转engine trt模型 前提已经装好显卡驱动 cuda cudnn 以及tensorRT 下面将给出Python C 两种转换方式 1 C 实现 项目属性配置好CUDA tensoeRT库 通常
  • 吴恩达机器学习笔记系列(五)——梯度下降

    一 gradient descent 梯度下降 1 概念 线性回归的目的就是找出使得误差 损失函数 最小的参数值 可以用梯度下降来确定 参数的大小 梯度下降是一种迭代方法 能够求解局部最小值 结果与初始点的选取有关 为了找到最小值 从某一点
  • ADFS 4.0 证书更新

    ADFS 4 0 证书更新 由于公网证书的过期 需要重新更新ADFS的服务通信证书 证书要求 带私钥 PFX格式 更换流程 证书安装到 证书 计算机 个人 安装后点开证书能看到 你有一个与证书对应的私钥 右击证书 gt 所有任务 gt 管理
  • 【uboot内核适配学习】uboot 修改默认ip

    1 修改默认ip作用 设备出场的时候都需要默认的ip 2 修改措施 找到uboot芯片配置文件 不同芯片厂家适配的文件必定是不一样的 位置也可能不一样 define CONFIG ETHADDR 00 40 5c 26 0a 5b MAC地
  • 面经——小米面经(2021春招)

    摘自 小米面经 2021春招 感谢小米 感谢雷总 感谢上官可编程 作者 阿波罗啦啦啦啦 发布时间 2021 05 01 11 08 41 网址 https blog csdn net weixin 44933419 article deta
  • 博客营销

    1 博客营销有什么价值 应注意什么 1 博客可以直接带来潜在用户 2 博客营销的价值体现在降低网站推广费用方面 3 博客文章内容为用户通过搜索引擎获取信息提供了机会 4 博客文章可以方便地增加企业网站的链接数量 5 可以实现更低的成本对读者
  • 指标体系建设

    1 背景 结合业务场景将多个不同指标和维度进行组合 从而针对某一真实业务场景进行数据分析和决策导向 并能在整体业务变化中发现和定位问题 2 概念理解与示例分析 2 1 指标体系 指标体系 名称 分类 解析 作用 示例 指标 结果型指标 时机
  • 汉诺塔问题 java

    汉诺塔问题 public class HanoiTower 编写一个main方法 public static void main String args Tower t1 new Tower t1 move 5 A B C 汉诺塔问题的解决
  • React事件处理及事件流

    React事件处理 React事件处理是通过将事件处理器绑定到组建上处理事件 事件触发的同时更新组建的内部状态 内部状态更新会触发组件的重绘 React 元素的事件处理和 DOM 元素的事件处理很相似 但语法上的略有区别 在React中事件
  • 如何删除gitee仓库下的文件

    有时我们可能在上传项目到github或者gitee时 忘记忽略了某个文件 就直接push上去了 最后发现上传多了 如何删除掉远程仓库中的文件呢 注 在github上我们只能删除仓库 无法删除文件夹或文件 所以只能通过命令 2 打开GitBa
  • Python 程序设计习题(4) —— 列表与元组

    目录 1 Python 习题部分 2 Python 习题讲解 列表 元组 其他 1 Python 习题部分 要想学习一门语言 便少不了练习 故附上部分 Python 习题 供大家学习参考 如有错误之处 还望指正 1 二年级一班举行了数学考试