python循环的使用(四)
一、嵌套循环对比
作用:直接借用别人实现好的功能来解决你遇到的问题。
python将1970年一月一日设置为第一天,time()得到的结果是从第一天到这这行代码执行的总秒数。
excel将1900年1月1日设为第一天,目前将9999年12月31日最后一天。
例子:
经典的"百马百担"问题,有一百匹马,驮一百担货,大马驮3担,中马驮2担,两只小马驮1担,问有大,中,小马各几匹?
import time # 导入时间模块
print(time.time())
start = time.time()
for x in range(0, 35): # x代表大马for y in range(0, 51):# y代表中马if 6 * x + 4 * y + (100 - x - y) == 200:print(f'大马使用{x}匹,中马使用{y}匹,小马使用{100 - x - y}匹')
end = time.time()
print(f'程序的执行花费时间为{end - start}')print('-----------------------------------')start = time.time()
for i in range(0, 35):for j in range(0, 51):for z in range(0, 101):if i + j + z == 100 and 6 * i + 4 * j + z == 200:print(f'大马{i}匹,中马{j}匹,小马{z}匹')
end = time.time()
print(f'程序的执行花费时间为{end - start}')
二、 随机模块( random)
random(a,b):从[a,b]中随机选取一个整数
练习: 数字炸弹游戏,给定一个范围中的随机一个数字,N个人去猜,猜对了有惩罚。
import random
num = random.randint(1, 100)
print(num)
flag = True
while flag:selfNum = int(input('请输入您猜的数字:'))if selfNum > num:print('再小一点')elif selfNum < num:print('再大一点')else:print('恭喜你猜对了,接受惩罚')# flag = Falsebreak
三、break和continue
循环关键字,只能放到循环中使用
break:被触发时,直接结束break所在循环
continue:直接结束当前循环进入下一次循环
for i in range(1, 21):if i % 5 == 0:print('******')continueelse:print(i)
案例:判断1~100之间的所有素数(质数)
素数:只有1和它本身俩个因子的数就做素数,最少的素数是2.
for i in range(1,101):if i == 1:print(f'{i}不是素数')elif i == 2:print(f'{2}是素数')else:for j in range(2,i):if i % j == 0:print(f'{i}不是素数')breakelse:print(f'{i}是素数')
应用场景:当所有情况都必须判断完才能下结论是使用for-else语句
用户名合法问题
“”"
语法:
for 变量 in 容器:
代码块
else:
代码块
当for循环正常结束时,else语句被执行;当for循环非正常结束时,else语句不执行
break、return等关键字会影响for循环的正常结束。
“”"
四、 列表
1、作用:一次性存放多个元素。
2、列表的性质:
(1).列表是可变的。(可以做修改,增删改)
(2).列表是有序的。(下标,每个元素有自己的固定位置)
(3).列表的容器标志:[]列表的类型:list.
(4).列表中可以存放任意类型的数据.(建议:一个列表中的数据类型保持一致)
(5).列表中允许出现重复元素
# 创建一个空列表:
list1 = []
list2 = list()
print(list1, list2)# 创建一个非空列表
list3 = [1, 1.1, True, None, 'ababs', [123], (1, 2, 3)]
print(list3)# len():能够查看容器中的元素个数
print(len(list3))# 对列表进行循环遍历
for i in list3:print(i, type(i))# 列表的重复和拼接
# 拼接:生成的是一个新的列表
list1 = [1,2,3]
list2 = [4,5,6]
list3 = [1,2,3]
print(list1 + list2 + list3)
# 重复
print(list1*5)
A、下标
有序容器中每个元素的位置索引
下标分为正向下标和负向下标
正向下标:从0开始,从左向右一次递增
负向下标:从-1开始,从右向左一次递减
list1 = ['王者荣耀', '阴阳师', '三国杀', '和平精英', '光遇']
# 通过下标获取元素:语法[下标]
print(list1[1])
print(list1[-4])
B、切片
作用:获取有序容器中部分元素
语法:容器[start: end: step]
step默认是1可以不写,表示从左向右取元素。start和end也都可以不写,表示代表开头和结尾
start和end可以使用正向下标和负向下标。切片是左闭右开区间。
list1 = ['王者荣耀', '阴阳师', '三国杀', '和平精英', '光遇']print(list1[1: -1]) print(list1[1:-1:2])print(list1[:])print(list1[:-1])print(list1[1:])print(list1[-1:-5:-1])print(list1[:: -1])print(list1[-1:-5:-3])
“”"
如果step>0, end对应的元素必须在start对应元素的后边。下一次获取的元素为本次获取元素的下标加步对应的元素长。
如果step<0, end对应的元素必须在start对应元素的前边。下一次获取的元素为本次获取元素的下标加步对应的元素长。“”"
** 练习:**
1.获取[‘柯南’,‘奥特曼’,‘海贼王’,‘斗破苍穹’]
2.获取[‘斗破苍穹’,‘甄嬛传’,‘百变小樱’]
3.获取[‘奥特曼’,‘百变小樱’,‘柯南’]
4.获取[‘柯南’]
list2 = ['柯南', '百变小樱', '奥特曼', '甄嬛传', '海贼王', '火影忍者', '斗破苍穹']
print(list2[::2])
print([list2[-1], list2[-4], list2[-6]])
print(list2[-5::-1])
print(list2[::7])
C、有序容器
有序容器的循环遍历分为直接遍历和间接遍历
- 直接遍历
list1 = ['A', 'B', 'C', 'D']
for i in list1:print(i)
- 间接遍历
for index in range(len(list1)):print(f'下标{index}---->元素{list1[index]}')for index in range(-len(list1),0):print(f'下标{index}---->元素{list1[index]}')
** 练习**:通过循环获取元素’C’的下标
list1 = ['A', 'B', 'C', 'D']
for i in range(len(list1)):if list1[i] == 'C':print(i)break
D、列表的增、删、改
- 增加
append:在列表的末尾追加一个元素
insert:在列表的任意位置添加一个元素
extend:将一个容器的元素条件到列表中
list1 = []
print(list1)
list1.append('python')
list1.append('java')
print(list1)list1.insert(1, 'C++')
print(list1)list2 = ['UI', 'C', 'Go', 'HTML', 'Python']
list1.extend(list2 )
print(list1)
- 修改: 通过下标修改元素
list1[1] = 'Python'
print(list1)
3.删除
del:通过下标删除元素,下标超出范围报错.
remove:删除指定元素,要删除的元素不存在报错.一次只删一个元素,从左向右.
pop:通过下标删除元素,下标超出范围报错;pop删除的元素还可以被找到.
clear:清空列表
del list1[0]
print(list1)list1.remove('C')
print(list1)
list1.remove('Python')
print(list1)content = list1.pop(0)
print(content)
print(list1)
list1.clear()
print(list1)
练习: 生者死者游戏。
30 个人在一条船上,超载,需要 15 人下船。于是人们排成一队,排队的位置即为他们的编号。报数从 1 开始,数到 9 的人下船。如此循环,直到船上仅剩 15 人为止,问都有哪些编号的人下船了呢?
peopleList = []
for i in range(1, 31):peopleList.append(i)
print(peopleList)while len(peopleList) > 15:num = 1while num < 9:num += 1peopleList.append(peopleList.pop(0))people = peopleList.pop(0)print(people)print(peopleList)
python循环的使用(四)相关推荐
- Python基础——第四章:Python循环语句
前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...
- Python基础教程(四):循环语句
Python 循环语句 本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次,下面是 ...
- 机器学习算法与Python实践之(四)支持向量机(SVM)实现
机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...
- python自动华 (四)
Python自动化 [第四篇]:Python基础-装饰器 生成器 迭代器 Json & pickle 目录: 装饰器 生成器 迭代器 Json & pickle 数据序列化 软件目录结 ...
- [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析
从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...
- 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档
孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...
- python循环语句嵌套_Python 循环语句
循环语句 循环语句主要是用于解决某些重复的代码工作,使需要重复的代码只写一遍即可. Python循环语句主要有两种:while循环和for...in...循环. 一.while循环 主要用于不确定循 ...
- 欢迎来到Python循环小课堂
Python 猜数游戏 用Python循环来实现简单的猜数游戏 用Python循环来实现简单的猜数游戏 下面是简单的循环,有注释很容易理解! print('---------------------- ...
- Python精确指南——第四章-部署和技巧
4 Python工程打包部署 Python程序在提供给用户使用时,要脱离Python开发环境运行,此时,需要对python工程进行打包. 常用的Python打包工具有PyInstaller ...
- python快速入门【四】-----各类函数创建
python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...
最新文章
- 【面试】shuffle函数的实现
- java integer valueof_对 Java Integer.valueOf() 的一些了解
- 昆士兰科技大学计算机专业,昆士兰科技大学QUT计算机科学Computer Science专业排名第101-125位(2021年THE世界大学商科排名)...
- python模块学习之glob模块
- python app自动化测试框架_appium+python,app自动化测试框架
- [转]EXCEL截取字符串中某几位的函数——LeftMIDRight及Find函数的使用
- delphi设计模式 多语言开发
- sap未分摊差异怎么处理_物料主数据价格控制及差异问题
- JDK17 带来什么新特性?网友:不好意思,我还在JDK6踏步走...
- 网页如何截屏长图:f12 Ctrl+Shift+p cap
- JAVA多线程之状态转换图
- Windows使用WakeOnLan配置【较详细】
- 什么软件能测试电脑能不能玩lol,怎么测试自己电脑能不能玩英雄联盟
- 上海法官招嫖爆料者讲述始末
- 通过数字抖动实现更高精度的PWM脉宽控制
- 8家公司笔面试经历-百度-联发科-瑞晟--
- LTE中物理资源块的进一步认识
- Fiddler抓取HTTPS最强攻略
- autojs-获取api接口JSON值
- php网页中出现问号,HTML_地址栏中的问号有什么作用,之前我们曾经解释?过链接地址 - phpStudy...