005:列表、循环、分支练习题
基础巩固
分别使用两种方法对列表去重
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] # 方法一: names = [] for i in name_list:if i not in names:names.append(i) print(names) # 方法二: index_ = 0 while index_ < len(name_list):if name_list.count(name_list[index_]) > 1:del name_list[index_]else:index_ += 1 print(name_list) # 方法三: name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] for i in range(len(name_list)-1,-1,-1):if name_list.count(name_list[i]) > 1 :del name_list[i] print(name_list)
自己写代码实现类似于index方法的功能
name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] # 查找第一个张三 print(name_list.index('张三')) # 查找第二个张三 # 方法一:利用index的指定范围求 print(name_list.index('张三',name_list.index('张三')+1)) # 方法二: del 可以删除指定范围 name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] first = name_list.index('张三') del name_list[0:name_list.index('张三')+1] name_list1 = name_list print(name_list.index('张三')+first+1) # 方法三 name_list = ['张三', '李四', '王五', '李四', '王五', '王五', '张三'] name_list1 = name_list[name_list.index('张三')+1:] print(name_list1.index('张三')+name_list.index('张三')+1)numList = [1,2,3,4,5,1,2,3] # 需要查找的元素 num = 1 for i in range(len(numList)):if numList[i] == num:print(f'要查找的{num}的下标为{i}')break # 指定位置查找 numList = [1,2,3,4,5,1,2,3] num = 1 # index_控制开始查找的位置 index_ = 1 for i in range(len(numList[index_:])):if numList[index_:][i] == num:print(f'要查找的{num}的下标为{i+index_}')break
自己写代码实现类似于reverse方法的功能
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3] nums.reverse() print(nums)print(nums[::-1])
自己写代码实现类似于count方法的功能
nums = [1, 2, 3, 1, 4, 2, 1, 3, 7, 3, 3] count_ = 0 symbol = 3 for i in nums:if i == symbol:count_ += 1 print(f'{symbol}出现了{count_}次')
输入三条边长,如果能构成三角形就计算周长和面积
a = float(input('请输入一条边长:')) b = float(input('请输入一条边长:')) c = float(input('请输入一条边长:')) if a + b > c and b + c > a and a + c > b:permiter = a + b + cprint(f'这个三角形的周长为{permiter}')area = (permiter * (permiter - a) * (permiter - b) * (permiter - c)) ** 0.5print(f'这个三角形的面积为{area}') else:print('这三条边不能组成三角形')
上述成绩列表为通过random模块结合列表推导式随机生成的5名同学的数学、语文、英语三科成绩,请分别求出每科的平均成绩。
"""import randomscore = [[random.randint(0, 100) for _ in range(3)] for _ in range(5)]score.insert(0, ['数学', '语文', '英语'])print(score)"""score = [['数学', '语文', '英语'], [46, 53, 20], [93, 99, 18], [21, 25, 9], [74, 43, 79], [87, 66, 13]]
Math = 0
Chinese = 0
English = 0
num = len(score[1:])
for i in range(1,len(score)-1):Math += score[i][score[0].index('数学')]Chinese += score[i][score[0].index('语文')]English += score[i][score[0].index('英语')]
print(Math/num,Chinese/num,English/num)length = len(score[1:])
for j in range(len(score[0])):# 求每个学课的总分sum = 0# print(score[0][j])for i in range(1,length+1):# print(score[i][j])sum += score[i][j]sum / lengthprint(f'{score[0][j]}的平均分是{sum / length}')
数学思维转换
五人分鱼。A、B、C、D、E 五人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。 B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉拿走自己的一份。 C、D、E依次醒来,也按同样的方法拿鱼。问他们至少捕了多少条鱼?
fish = 1 while True:total = fishfor _ in range(5):if (total-1) % 5 == 0:total = (total-1) // 5 * 4else:fish += 1breakelse:print(f'总鱼数是{fish}')break
判断一个数字是否是丑数(丑数定义详情见百度)
num = int(input('一个数字:')) while num % 2 == 0:num /= 2 while num % 3 == 0:num /= 3 while num % 5 == 0:num /= 5 if num == 1:print('True') else:print('False')num = 14 numCopy = num while num > 0 and type(num) == int:if num % 2 == 0:num //= 2elif num % 3 == 0:num //= 3elif num % 5 == 0:num //= 5elif num == 1:print(f'{numCopy}是丑数')breakelse:print(f'{numCopy}不是丑数')break else:print('输入错误')
英制单位英寸和公制单位厘米互换。如果输入的是厘米就转为英寸,反之转换为厘米。
注意:厘米 = 英寸 * 2.54
num = float(input('一个数字:')) unit = input('单位:') if unit == '厘米' or unit == 'cm':num1 = num/2.54print(f"{num}{unit}={num1:.2f}英寸") elif unit == '英寸' or unit == 'inch':num2 = num * 2.54print(f"{num}{unit}=%.2f厘米" % num2) else:print('输入错误')
005:列表、循环、分支练习题相关推荐
- 微课|中学生可以这样学Python(例6.2):列表循环左移位
适用教材: 董付国,应根球.<中学生可以这样学Python>.清华大学出版社,2017. 第6章 函数 6.6 精彩例题分析与解答 例6.2 列表循环左移位 京东购买链接:https ...
- 蜗牛学院 第二天 js循环和练习题
第二天 js循环和练习题 输入:window.prompt("请输入用户名:"); 输出:window.alert("输出的内容"):以弹出框的形式输出. do ...
- Python坑:bool是int的子类、列表循环中的变量泄露、lambda在闭包中会保存局部变量、重用全局变量
bool是int的子类 a = True print isinstance(a, int) print True == 1 print False == 0 运行结果: True True True ...
- 循环结构作业c语言,c语言循环结构练习题带答案
c语言循环结构练习题带答案 第5章 循环结构程序设计 5.1 基本知识点 Øwhile语句的使用格式和注意事项 Ødo-while语句的使用格式和注意事项 Øfor语句的使用格式和注意事项 Øbrea ...
- 循环结构作业c语言,C语言循环结构练习题带答案(最新整理)
<C语言循环结构练习题带答案(最新整理)>由会员分享,可在线阅读,更多相关<C语言循环结构练习题带答案(最新整理)(10页珍藏版)>请在人人文库网上搜索. 1.第 5 章循环结 ...
- Linux Shell脚本多循环语句练习题
Linux Shell脚本多循环语句练习题 99乘法表 矩形 正直角三角形 反直角三角形 倒直角三角形 等腰三角形 倒等腰三角形 菱形 平行四边形 直角梯形 等腰梯形 99乘法表 #!/bin/bas ...
- c语言循环与数组训练题,C语言循环数组练习题解读.doc
循环数组练习题 一.选择题 1.for(i=0;i<10;i++); 结束后, i 的值是: B A9B10C11D12 2.下面程序的循环次数是:D int k=0; while(k<1 ...
- php文章列表样式,PHPCMS V9 文章列表循环样式自定义方法
在此,再次分享Whidy的文章"phpcms文章列表循环不同样式制作方法",下面CMSYOU来与大家具体分享,原地址为http://whidy.net/phpcms-list-wi ...
- 【实用】JavaScript中Video使用详解过程(多视频列表循环播放)
做过一个项目里有用到插入多个视频类似列表循环播放的,视频信息是从后台数据库传入的 核心JS代码片段 <script type="text/javascript">var ...
- c语言break习题,C语言循环结构练习题.doc
C语言循环结构练习题C语言循环结构练习题 第5章 循环结构程序设计 5.1 基本知识点 (while语句的使用格式和注意事项 (do-while语句的使用格式和注意事项 (for语句的使用格式和注意事 ...
最新文章
- python简单代码加法-CPython 源码中整数加法的实现
- 邵阳学院学校云认证码_湖南所有五年制大专学校
- 如何访问ASP.Net网站bin目录内的文件
- 浅拷贝+引用计数--写时拷贝---模拟实现string容器
- 缺失值填充1——缺失值查看、确定值填充、参考值填充
- Android 再爆新漏洞,9.0 以下所有手机全部中招!
- 程序员如何避免身体被掏空?
- springboot无法加载oracle驱动终极解决
- linux系统在线搭建禅道
- Algorithms 学习笔记——1.1
- JAVA NIO介绍及使用
- 页面适配之pt、px、em、rem用法和特点
- SAP 之定义工厂(Plant)
- 文法俱乐部 第三章 动词时态
- KBEngine warring项目源码阅读(三) 实体文件与Account处理
- Oracle中joint,什么是关节中心化(Joint centration)?
- 【服务器数据恢复】XFS文件系统分区丢失怎么恢复数据?
- [Android][设置最小(大)宽高]
- 辞旧迎新,2013年年终感言
- 城市信息学其三-智能地理可实现个性化和可持续的未来城市交通
热门文章
- python什么字体好看_七个不一样的Python代码写法,让你写出一手漂亮的代码
- 查看linux版本32还是64位,查看linux系统版本是32位的还是64位的
- c++怎么判断系统是64位还是32位
- 学校校车运营各项安全管理制度_学校校车安全管理制度.doc
- JavaScript打造很酷的图片放大效果实例代码
- oracle漏洞pdf,Oracle DBA手记 4 数据安全警示录 pdf完整扫描版版
- html5 上标,HTML5 Canvas +下标和上标
- 一次 Young GC 的优化实践(FinalReference 相关)
- 解决safari浏览器拦截window.open
- 一眼看清高科技,深度解析人工智能技术脉络