Day 05 python学习笔记
循环
应用:循环轮播图 最基础、最核心
循环:周而复始,谓之循环 (为了代码尽量不要重复)
while循环
while的格式
索引定义
while 表达式(只要结果为布尔值即可):
循环体
通过条件的不断变化,从而确定循环体是否继续执行
例:


死循环(无限循环)
while Ture: (非0即为真)
循环体
循环中断
continue:终端本次循环,直接进入下一次循环

break:直接结束循环,遇见break,直接全部gameover

例:
输出0-100
index = 0
while index <= 100:print(index)index += 1
让其在输出49后终止循环
index = 1
while index <= 100:if index == 50:break #直接跳出循环print(index)index += 1index = 1
while index <= 100: #continue会使代码回到这if index == 50:continue #回到循环判断条件处print(index)index += 1 #本代码会输出0-49后卡住,因为陷入死循环index = 0
while index < 100: #注意代码这边改为 < 无 =index += 1 #顺序改变,结果会输出0-49,51-100(无50)if index == 50:continue print(index)
print("循环结束") #只会在最后执行一次(只有在while后且缩进的才归其管)
while……else
while condition:代码
else:代码
else后面的代码:当循环正常结束之后要执行的代码
例:
i = 1
while i <= 5:if i == 3:print('不真诚')i += 1break #直接跳出循环包括elseprint('我错了,思密达~')i += 1
else:print('她原谅我了') #不打印,循环未正常结束结果:
我错了,思密达~
我错了,思密达~
不真诚i = 1
while i <= 5:if i == 3:print('不真诚')i += 1continue #循环继续进行,只暂停一次循环print('我错了,思密达~')i += 1
else:print('她原谅我了')结果:
我错了,思密达~
我错了,思密达~
不真诚
我错了,思密达~
我错了,思密达~
她原谅我了
只有代签执行完毕了,才会被原谅
中途break,else下边缩进的代码不会执行
中途continue,else下边缩进的代码会执行
规划好条件
练习:求1-100的累加和(终止条件 1-100)
count = 0
index = 0
while index <= 100:count += indexindex += 1
print(count)结果:
5050
循环嵌套
举例:
坚持每天送10朵花100天,然后就可以表白成功
i = 1
while i <= 7:print(f"今天是第{i}天,准备表白思密达~")j = 1while j <= 10:print(f"送她第{j}朵花花")j += 1i += 1
print(f"坚持到{i-1}天表白成功")结果:
。。。
送她第9朵花花
送她第10朵花花
今天是第6天,准备表白思密达~
送她第1朵花花
送她第2朵花花
送她第3朵花花
送她第4朵花花
送她第5朵花花
送她第6朵花花
送她第7朵花花
送她第8朵花花
送她第9朵花花
送她第10朵花花
今天是第7天,准备表白思密达~
送她第1朵花花
送她第2朵花花
送她第3朵花花
送她第4朵花花
送她第5朵花花
送她第6朵花花
送她第7朵花花
送她第8朵花花
送她第9朵花花
送她第10朵花花
坚持到7天表白成功
内层添加break
i = 1
while i <= 7:print(f"今天是第{i}天,准备表白思密达~")j = 1while j <= 10:print(f"送她第{j}朵花花")if j == 2:break #只结束包含break最近(里)的一个循环j += 1i += 1
print(f"坚持到{i-1}天表白成功")结果: #外层循环不结束
今天是第1天,准备表白思密达~
送她第1朵花花
送她第2朵花花
今天是第2天,准备表白思密达~
送她第1朵花花
送她第2朵花花
今天是第3天,准备表白思密达~
送她第1朵花花
送她第2朵花花
今天是第4天,准备表白思密达~
送她第1朵花花
送她第2朵花花
今天是第5天,准备表白思密达~
送她第1朵花花
送她第2朵花花
今天是第6天,准备表白思密达~
送她第1朵花花
送她第2朵花花
今天是第7天,准备表白思密达~
送她第1朵花花
送她第2朵花花
坚持到7天表白成功
练习:
打印:
*
**
***
****
*****
i = 1
n = int(input("请输入打印的层数:"))
while i <= n:j = 1while j <= i: #打印一行print("*", end="") #end去除换行j += 1print() #一行结束换行i += 1结果:
请输入打印的层数:5
*
**
***
****
*****
练习:
99乘法表
i = 1
while i <= 9: #控制列数j = 1while j <= i: #打印一行print(f"{i}*{j}={i*j}\t",end="" ) #\t水平制表符(相当于8个空格)j += 1 #end取消换行i += 1print()结果:
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
for循环
基础语法:
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
轮询机制
对一批内容进行挨个处理---待办事项逐个完成的机制
遍历循环,一次取出
无法定义循环条件,理论上,无法构建无限循环

迭代容器中每一个元素
例:
#while循环 缺点:不能对无索引下标的容器进行迭代(例:集合)
list = [3,4,5,6]
i = 0 #i作为索引下标
while i < len(list):print(list[i])i +=1#for遍历
for i in list: #i为临时变量,从list中取出元素依次放入i中print(i)结果:
3
4
5
6
3
4
5
6例:
#for既能遍历有序的容器,也能遍历无须的
set_01 = {1,2,3,"l love you"}
for i in set_01:print(i)结果:
1
2
3
l love you
练习:
”l love you“ 判断是否有o几个
name = 'l love you'
count = 0
for i in name:if i == "o":count += 1
print(f"一共有{count}个o")结果:
一共有2个o
不止能迭代容器,还可以完成普通循环
rang语句

range语句:获得一个简单的数字序列(生成一系列连续的整数)
格式:
range(start,end,step)
例:
range(num) :[0,num) (左闭右开,序列0 - num-1)从0开始,到5结束的数字序列,不包含5本身
range(5)===>[0,1,2,3,4] 默认从0开始
range(1,5)===>[1,2,3,4] 从1-5,不包含5
range(1,10,2)===>[1,3,5,7,9]第三个数字代表数字之间的步长,不含10本身
特别:
for i in range(100,0,-2): #step为复数,注意start与end也须反过来print(i)结果:
100
98
96
...
10
8
6
4
2

练习:
1、求1-100的累加和(终止条件 1-100)
例:
sum = 0
for i in range(0,101):sum += i
print(sum)结果:
5050
2、

例:
num = int(input("请输入遍历终止值:"))
count = 0
for i in range(1, num+1):if i % 2 == 0:count += 1
print(f"有{count}个偶数")结果:
请输入遍历终止值:5
有2个偶数
for循环变量的作用域
临时变量在编程规范上,作用范围,只限定在for循环内部
实际上,for循环外部可以访问到,编程规范上,是不允许,不建议的
例:(不规范)

想要使用,在循环之前将该变量定义
例:
for i in range(5):print(i)
print(i)结果:
0
1
2
3
4
4i = 2
for i in range(5):print(i)
print(i) #所以建议不要用到临时变量结果:
0
1
2
3
4
4
for循环的嵌套使用
空格缩进

练习:
for循环打印九九乘法表

i = 1
while i < 10:j = 1while j < i+1:print(f'{j}* {i} = {i * j}\t', end=' ')j += 1i += 1print()1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
练习:
# 打印几层:5 # * # ** # *** # **** # *****
layer = int(input("请输入打印的层数:"))
for i in range(1, layer+1):#先打印空格space_nums = layer - i #空格数 = 总行数 - 第几行(即 * 数) for j in range(space_nums): #或者(1,space_nums+1),两相同print(" ", end="")#打印 *for j in range(i): #j临时变量,两个j互不影响print("*", end="")print()结果:
请输入打印的层数:5**********
*****
循环中断
continue:终端本次循环,直接进入下一次循环

break:直接结束循环,遇见break,直接全部gameover

循环综合案例

import random
money = 10000
for i in range(1, 21): score = random.randint(1, 10) #1-10的随机数生成if score < 5:print(f"员工{i}绩效为{score},不发工资")continue# 判断余额if money >= 1000:money -= 1000print(f"员工{i}发放工资1000,公司账户剩余{money}")else:print(f"当前余额剩余{money},不发了,下个月吧")break结果:
员工1绩效为3,不发工资
员工2发放工资1000,公司账户剩余9000
员工3绩效为1,不发工资
员工4发放工资1000,公司账户剩余8000
员工5发放工资1000,公司账户剩余7000
员工6发放工资1000,公司账户剩余6000
员工7发放工资1000,公司账户剩余5000
员工8绩效为1,不发工资
员工9发放工资1000,公司账户剩余4000
员工10发放工资1000,公司账户剩余3000
员工11绩效为1,不发工资
员工12发放工资1000,公司账户剩余2000
员工13发放工资1000,公司账户剩余1000
员工14绩效为4,不发工资
员工15绩效为1,不发工资
员工16发放工资1000,公司账户剩余0
当前余额剩余0,不发了,下个月吧

for……else
同while......else
else后面的代码:当循环正常结束之后要执行的代码·
中途break,else下边缩进的代码不会执行
中途continue,else下边缩进的代码会执行
相关文章:
Day 05 python学习笔记
循环 应用:循环轮播图 最基础、最核心 循环:周而复始,谓之循环 (为了代码尽量不要重复) while循环 while的格式 索引定义 while 表达式(只要结果为布尔值即可): 循环体 通过条件的不断变化,从…...
Python如何17行代码画一个爱心
🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…...
生产环境中常用Linux命令
太简单的我就不讲解啦,浪费时间,直接将生产中常用的 文章目录 1.总纲2.整机 top3.CPU vmstat3. 内存 free4. 硬盘: df5. 磁盘IO iostat6. 网络IO ifstat7: 内存过高的情景排查 1.总纲 整机:topcpu:vmstat内存:free硬盘:df磁盘io: iostat网络io:ifstat 2.整机 top 首先们要查…...
【使用 TensorFlow 2】03/3 创建自定义损失函数
一、说明 TensorFlow 2发布已经接近5年时间,不仅继承了Keras快速上手和易于使用的特性,同时还扩展了原有Keras所不支持的分布式训练的特性。3大设计原则:简化概念,海纳百川,构建生态.这是本系列的第三部分,…...
Vue3中使用v-model高级用法参数绑定传值
Vue3中使用v-model高级用法参数绑定传值 单个输入框传值多个输入框传值,一个组件接受多个v-model值 单个输入框传值 App.vue <template><p>{{firstName}}</p><hello-world v-model"firstName"></hello-world> </template><…...
你的工作中,chatGPT可以帮你做什么?
如何在工作中使用 ChatGPT 的 10 种实用方法 现在您已经知道如何开始使用 ChatGPT 并了解其基本功能(提示 -> 响应),让我们探讨如何使用它来大幅提高工作效率。 1. 总结报告、会议记录等 ChatGPT可以快速分析大文本并识别关键点。例如&a…...
k8s简单部署nginx
文章目录 1. 前言2. 部署nginx2.1. **创建一个nginx的Deployment**2.2. **创建一个nginx的service** 3. 总结 1. 前言 前文提要: kubeadm简单搭建k8s集群第三方面板部署k8s 上篇文章我们简单部署了k8s的集群环境,相比一定迫不及待的想部署一个实际应用了…...
小黑子—MyBatis:第四章
MyBatis入门4.0 十 小黑子进行MyBatis参数处理10.1 单个简单类型参数10.1.1 单个参数Long类型10.1.2 单个参数Date类型 10.2 Map参数10.3 实体类参数(POJO参数)10.4 多参数10.5 Param注解(命名参数)10.6 Param注解源码分析 十一 小…...
Docker快速上手:使用Docker部署Drupal并实现公网访问
文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal6. 固定Drupal 公网地址 前言 Dupal是一个强大的CMS,适用于各种不同的网站项目,从小型个人博客到大型企业级门户网站。它的学习…...
React知识点系列(1)-每天10个小知识
目录 1.什么是 React,以及它在前端开发中的优势是什么?2.你是如何组织和管理 React 组件的?3.你能解释一下 React 的生命周期方法吗?你通常在哪个生命周期方法中发起网络请求?4.什么是 React Hooks?你常用哪…...
substring 和 substr 的区别
1、结论 两个方法都用于截取字符串,其用法不同: 1)相同点: ① 都用于截取字符串; ② 第一个参数都是表示提取字符的开始索引位置; 2)不同点: ① 第一个参数的取值范围不同&…...
产品经理的工作职责是什么?
产品经理的工作职责主要包括以下几个方面: 1. 产品策划与定义:产品经理负责制定产品的整体策略和规划,包括产品定位、目标用户、市场需求分析等。他们需要与团队合作,定义产品的功能和特性,明确产品的核心竞争力和差异…...
智能井盖传感器:提升城市安全与便利的利器
在智能化城市建设的浪潮中,WITBEE万宾智能井盖传感器,正以其卓越的性能和创新的科技,吸引着越来越多的关注。本文小编将为大家详细介绍这款产品的独特优势和广阔应用前景。 在我们生活的城市中,井盖可能是一个最不起眼的存在。然而…...
给你一个项目,你将如何开展性能测试工作?
一、性能三连问 1、何时进行性能测试? 性能测试的工作是基于系统功能已经完备或者已经趋于完备之上的,在功能还不够完备的情况下没有多大的意义。因为后期功能完善上会对系统的性能有影响,过早进入性能测试会出现测试结果不准确、浪费测试资…...
点燃市场热情,让产品风靡全球——实用推广策略大揭秘!
文章目录 一、实用推广策略的重要性1. 提高产品知名度和认可度2. 拓展产品市场和用户群体3. 增强企业品牌形象和市场竞争力 二、实用推广策略的种类1. 社交媒体推广2. 定向推广3. 口碑营销4. 内容推广 三、实用推广策略的实施步骤1. 研究目标用户和市场需求,明确产品…...
Python操作Hive数据仓库
Python连接Hive 1、Python如何连接Hive?2、Python连接Hive数据仓库 1、Python如何连接Hive? Python连接Hive需要使用Impala查询引擎 由于Hadoop集群节点间使用RPC通信,所以需要配置Thrift依赖环境 Thrift是一个轻量级、跨语言的RPC框架&…...
客户收到报价后突然安静了,怎么办?
外贸人常常会有这样的经历:与意向度很高的客户数封邮件沟通报价之后,突然客户那边就沉静下来了,而不知所措,遇到这样的客户,应该怎么办呢? Vol.1 了解客户信息 首先自身要养成一个好习惯,针对…...
O2OA(翱途)常见知识之 mysql 数据库备份
概述 系统运行一段时间后,可能发生各种情况导致数据丢失,如硬件故障、人为错误、软件错误、病毒攻击等。定期备份可以帮助您保护数据免受这些风险的影响,以便在需要时能够恢复数据。 O2OA应用本身可以通过dump配置每天自定备份数据ÿ…...
如何让你的程序支持lua脚本
最近做了一个控制机械臂的程序,使用C语言开发的,调试的时候总是需要修改代码来调整运动轨迹, 总是要编译,实在烦人 不过有个方法就是使用lua来调试运动逻辑 代码如下 static int lua_up(lua_State*l) {size_t stepluaL_checkinteger(l,1);//向上动作up(step);return 0; }st…...
什么是系统架构师?什么是系统架构?
1. 什么是系统架构师? 系统架构设计师(System Architecture Designer)是项目开发活动中的关键角色之一。系统架构是系统的一种整体的高层次的结构表示,是系统的骨架和根基,其决定了系统的健壮性和生命周期的长短。 系统架构设计…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
HTML 列表、表格、表单
1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
基于matlab策略迭代和值迭代法的动态规划
经典的基于策略迭代和值迭代法的动态规划matlab代码,实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...
掌握 HTTP 请求:理解 cURL GET 语法
cURL 是一个强大的命令行工具,用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中,cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...
