一、嵌套循环对比

作用:直接借用别人实现好的功能来解决你遇到的问题。

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、有序容器

有序容器的循环遍历分为直接遍历和间接遍历

  1. 直接遍历
list1 = ['A', 'B', 'C', 'D']
for i in list1:print(i)
  1. 间接遍历
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、列表的增、删、改

  1. 增加
    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)
  1. 修改: 通过下标修改元素
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循环的使用(四)相关推荐

  1. Python基础——第四章:Python循环语句

    前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...

  2. Python基础教程(四):循环语句

    Python 循环语句 本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的. 编程语言提供了各种控制结构,允许更复杂的执行路径. 循环语句允许我们执行一个语句或语句组多次,下面是 ...

  3. 机器学习算法与Python实践之(四)支持向量机(SVM)实现

    机器学习算法与Python实践之(四)支持向量机(SVM)实现 zouxy09@qq.com http://blog.csdn.net/zouxy09 机器学习算法与Python实践这个系列主要是参考 ...

  4. python自动华 (四)

    Python自动化 [第四篇]:Python基础-装饰器 生成器 迭代器 Json & pickle 目录: 装饰器 生成器 迭代器 Json & pickle 数据序列化 软件目录结 ...

  5. [Python人工智能] 三十四.Bert模型 (3)keras-bert库构建Bert模型实现微博情感分析

    从本专栏开始,作者正式研究Python深度学习.神经网络及人工智能相关知识.前一篇文章开启了新的内容--Bert,首先介绍Keras-bert库安装及基础用法及文本分类工作.这篇文章将通过keras- ...

  6. 孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档

    孤荷凌寒自学python第五十四天使用python来删除Firebase数据库中的文档 (完整学习过程屏幕记录视频地址在文末) 今天继续研究Firebase数据库,利用google免费提供的这个数据库 ...

  7. python循环语句嵌套_Python 循环语句

    循环语句 ​循环语句主要是用于解决某些重复的代码工作,使需要重复的代码只写一遍即可. Python循环语句主要有两种:while循环和for...in...循环. 一.while循环 主要用于不确定循 ...

  8. 欢迎来到Python循环小课堂

    Python 猜数游戏 用Python循环来实现简单的猜数游戏 用Python循环来实现简单的猜数游戏 下面是简单的循环,有注释很容易理解! print('---------------------- ...

  9. Python精确指南——第四章-部署和技巧

    4       Python工程打包部署 Python程序在提供给用户使用时,要脱离Python开发环境运行,此时,需要对python工程进行打包. 常用的Python打包工具有PyInstaller ...

  10. python快速入门【四】-----各类函数创建

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

最新文章

  1. 【面试】shuffle函数的实现
  2. java integer valueof_对 Java Integer.valueOf() 的一些了解
  3. 昆士兰科技大学计算机专业,昆士兰科技大学QUT计算机科学Computer Science专业排名第101-125位(2021年THE世界大学商科排名)...
  4. python模块学习之glob模块
  5. python app自动化测试框架_appium+python,app自动化测试框架
  6. [转]EXCEL截取字符串中某几位的函数——LeftMIDRight及Find函数的使用
  7. delphi设计模式 多语言开发
  8. sap未分摊差异怎么处理_物料主数据价格控制及差异问题
  9. JDK17 带来什么新特性?网友:不好意思,我还在JDK6踏步走...
  10. 网页如何截屏长图:f12 Ctrl+Shift+p cap
  11. JAVA多线程之状态转换图
  12. Windows使用WakeOnLan配置【较详细】
  13. 什么软件能测试电脑能不能玩lol,怎么测试自己电脑能不能玩英雄联盟
  14. 上海法官招嫖爆料者讲述始末
  15. 通过数字抖动实现更高精度的PWM脉宽控制
  16. 8家公司笔面试经历-百度-联发科-瑞晟--
  17. LTE中物理资源块的进一步认识
  18. Fiddler抓取HTTPS最强攻略
  19. autojs-获取api接口JSON值
  20. php网页中出现问号,HTML_地址栏中的问号有什么作用,之前我们曾经解释?过链接地址 - phpStudy...

热门文章

  1. 3dsmax-骨骼蒙皮插件weightPro使用
  2. 青岛abb焊接机器人编程招聘_ABB机器人焊接编程程序详细介绍
  3. ARM/X86/PowerPC/MIPS了解
  4. CDR文件如何转为AI文件
  5. mysql实现oracle的同义词_Oracle的同义词(synonyms)详解
  6. python之numpy基础_Python之NumPy学习(基础篇)
  7. 给大家介绍一下oTree,希望对大家有一点帮助
  8. 贴片光耦的类型及作用!
  9. 沉思录(一)学习本身就是一件孤独而又崇高的事业
  10. Linux中使用crond工具创建定时任务