Day 05 python学习笔记

news2025/6/30 0:09:41

循环

应用:循环轮播图 最基础、最核心

循环:周而复始,谓之循环   (为了代码尽量不要重复)

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 += 1

index = 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 += 1
        break          #直接跳出循环包括else
    print('我错了,思密达~')
    i += 1
else:
    print('她原谅我了')    #不打印,循环未正常结束


结果:
我错了,思密达~
我错了,思密达~
不真诚



i = 1
while i <= 5:
    if i == 3:
        print('不真诚')
        i += 1
        continue        #循环继续进行,只暂停一次循环
    print('我错了,思密达~')
    i += 1
else:
    print('她原谅我了')


结果:
我错了,思密达~
我错了,思密达~
不真诚
我错了,思密达~
我错了,思密达~
她原谅我了

只有代签执行完毕了,才会被原谅
中途break,else下边缩进的代码不会执行
中途continue,else下边缩进的代码执行

规划好条件
练习:求1-100的累加和(终止条件 1-100)

count = 0
index = 0
while index <= 100:
    count += index
    index += 1
print(count)

结果:
5050

循环嵌套

举例:

坚持每天送10朵花100天,然后就可以表白成功

i = 1
while i <= 7:
    print(f"今天是第{i}天,准备表白思密达~")
    j = 1
    while j <= 10:
        print(f"送她第{j}朵花花")
        j += 1
    i += 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 = 1
    while j <= 10:
        print(f"送她第{j}朵花花")
        if j == 2:
            break     #只结束包含break最近(里)的一个循环
        j += 1
    i += 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 = 1
    while j <= i:     #打印一行
        print("*", end="")   #end去除换行
        j += 1
    print()    #一行结束换行
    i += 1


结果:
请输入打印的层数:5
*
**
***
****
*****

练习:

99乘法表

i = 1
while i <= 9:   #控制列数
    j = 1
    while j <= i:    #打印一行
        print(f"{i}*{j}={i*j}\t",end="" )   #\t水平制表符(相当于8个空格)
        j += 1                              #end取消换行
    i += 1
    print()

结果:
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
4



i = 2
for i in range(5):
    print(i)
print(i)   #所以建议不要用到临时变量

结果:
0
1
2
3
4
4

for循环的嵌套使用

空格缩进

练习:

for循环打印九九乘法表

i = 1
while i < 10:
    j = 1
    while j < i+1:
        print(f'{j}* {i} = {i * j}\t', end=' ')
        j += 1
    i += 1
    print()



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 -= 1000
        print(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下边缩进的代码会执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1085410.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

1315. 网格 - 卡特兰数

1315. 网格 - AcWing题库 只要是触及上面这条红线的&#xff0c;就以第一次触及的点为起点沿红线反转&#xff0c;终点的位置与红线对称的位置可以看作触及红线的路线的终点。 yx1 横坐标容易得出时m - 1&#xff0c;&#xff08;m n&#xff09; - (m - 1)得出纵坐标n 1 …

JVM面试题:(四)四种引用方式强弱软虚

四种引用方式&#xff1a; 强引用 强引用是平常中使用最多的引用&#xff0c;强引用在程序内存不足&#xff08;OOM&#xff09;的时候也不会被回收&#xff0c;使用 方式&#xff1a; String str new String(“str”); System.out.println(str); 软引用 软引用在程序内存不…

07-网络篇-抓包分析TCP

为了抓包方便一些&#xff0c;我在ubuntu虚拟机运行服务端程序&#xff0c;而在windows运行客户端程序&#xff0c;关于客户端与服务端程序如下。 ##1.程序 客户端&#xff1a; vs_client.cpp #include "stdafx.h" #include <iostream> #include <winsock2…

MapStruct_概念、如何使用、子集和映射、合并、Spring方式、表达式、自定义切面处理

文章目录 ①. 什么是MapStruct&#xff1f;②. 如何使用MapStruct?③. 子集和映射④. 合并映射⑤. Spring依赖注入⑥. 常量、默认值和表达式⑦. 自定义切面处理 ①. 什么是MapStruct&#xff1f; ①. MapStruct是一款基于Java注解的对象属性映射工具,使用的时候我们只要在接口…

SQL 教程||SQL 简介

SQL 简介&#xff08;开个新坑&#xff09; SQL&#xff08;结构化查询语言&#xff09;是用于访问和操作数据库中的数据的标准数据库编程语言。 SQL是关系数据库系统的标准语言。所有关系数据库管理系统(RDMS)&#xff0c;如MySQL、MS Access、Oracle、Sybase、Informix、Po…

第四章——密码学的数学引论

一.数论 1.素数 200以内的素数&#xff1a; 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 算术基本定理&#xff1a; 任何一个不等于0的正整数a都可以写…

接上面 通过索引index 和类型Java.lang.string.来注入

index 属性表示构造函数参数的索引&#xff0c;value 属性表示构造函数参数的值。

【web实现右侧弹窗】JS+CSS如何实现右侧缓慢弹窗动态效果『附完整源码下载』

文章目录 写在前面涉及知识点页面效果1、页面DOM创建1.1创建底层操作dom节点1.2 创建存放弹窗dom节点 2、页面联动功能实现&#xff08;关闭与弹出&#xff09;2.1 点击非右侧区域实现关闭2.2 点击叉叉及关闭按钮实现关闭功能 3、完整源码包下载3.1百度网盘3.2 123云盘3.3邮箱留…

没用的知识增加了,尝试用文心实现褒义词贬义词快速分类

尝试用文心实现褒义词贬义词快速分类 一、我的需求二、项目环境搭建千帆SDK安装及使用流程 三、项目实现过程创建应用获取签名调用接口计算向量积总结 百度世界大会将于10月17日在北京首钢园举办&#xff0c;今天进入倒计时五天了。通过官方渠道的信息了解到&#xff0c;这次是…

【APUE】文件系统 — 进程环境

目录 一、再提 main 函数 二、进程的终止 2.1 正常终止 2.1.1 从 main 函数用 return 返回 2.1.2 主动调用 exit 函数 2.1.3 钩子函数 2.1.4 调用 _exit 或 _Exit 2.2 异常终止 三、命令行参数的分析 3.1 getopt 3.2 示例 四、环境变量 4.1 简介 4.2 查看环境…

内网收集哈希传递

1.内网收集的前提 获得一个主机权限 补丁提权 可以使用 systeminfo 然后使用python脚本找到缺少的补丁 下载下来 让后使用exp提权 收集信息 路由信息 补丁接口 dns域看一看是不是域控 扫描别的端口 看看有没有内在的web网站 哈希传递 哈希是啥 哈希…

墨者学院 WordPress 远程命令执行漏洞(CVE-2018-15877)

1. 背景介绍 近日&#xff0c;WordPress 插件Plainview Activity Monitor被曝出存在一个远程命令执行漏洞。Plainview Activity Monitor 是一款网站用户活动监控插件。 远程攻击者可以通过构造的url来诱导wordpress管理员来点击恶意链接最终导致远程命令执行 2.影响范围 Pla…

ajax同步与异步,json-serve的安装与使用,node.js的下载

20.ajax json 轻量级的数据格式做配置文件网络传输 xml 重量级的数据格式 可扩展标记语言做配置文件网络传输 现在目前主流就是大量采用json做网络传输数据格式 1.ajax的概念: 与服务器进行’通信’的一种技术,能够实现异步的刷新页面 **同步:**按照顺序一步步的执行,容易造…

Python应用-矩阵乘法-特征提取

目录 常规运算应用场景&#xff1a;特征提取特征矩阵权重矩阵举例说明代码展示 常规运算 import numpy as npmatrix1 np.array([[1, 2], [3, 4]]) matrix2 np.array([[5, 6], [7, 8]]) result np.dot(matrix1, matrix2) print(result) 输出结果&#xff1a; [[19 22][43 …

是谁还没听过杨氏矩阵~原理和实现代码都已经准备好了

有一个数字矩阵&#xff0c;矩阵的每行从左到右是递增的&#xff0c;矩阵从上到下是递增的&#xff0c;请编写程序在这样的矩阵中查找某个数字是否存在。 要求&#xff1a;时间复杂度小于O(N); 看到这个题目时&#xff0c;我们会马上想到暴力求解&#xff0c;即遍历这个矩阵的每…

Excel往Word复制表格时删除空格

1.背景 在编写文档&#xff0c;经常需要从Excel往Word里复制表格 但是复制过去的表格前面会出现空格&#xff08;缩进&#xff09; 再WPS中试了很多方法&#xff0c;终于摆脱了挨个删除的困扰 2. WPS排版中删除 选择表格菜单栏-选在【开始】-【排版】选择【更多段落处理】-【段…

论文阅读/写作扫盲

第一节&#xff1a;期刊科普 JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。 JCR分区&#xff08;Journal Citation Reports&#xff09;&#xff1a;JCR分区是由Clarivate Ana…

优雅而高效的JavaScript——箭头函数

&#x1f917;博主&#xff1a;小猫娃来啦 &#x1f917;文章核心&#xff1a;优雅而高效的JavaScript——箭头函数 文章目录 前言箭头函数的基本语法和特点箭头函数的语法箭头函数的词法绑定特性箭头函数的this值箭头函数无法使用arguments对象 箭头函数与传统函数的比较箭头函…

端口被占用?两步解决端口占用问题

第一步&#xff1a;WinR 打开命令提示符&#xff0c;输入netstat -ano|findstr 端口号&#xff0c;找到被占用端口的进程 第二步&#xff1a; 杀死使用该端口的进程&#xff0c;输入taskkill /t /f /im 进程号&#xff08; 注意是进程号&#xff0c;不是端口号&#xff09;

身份证号码,格式校验:@IdCard(自定义注解)

目标 自定义一个用于校验 身份证号码 格式的注解IdCard&#xff0c;能够和现有的 Validation 兼容&#xff0c;使用方式和其他校验注解保持一致&#xff08;使用 Valid 注解接口参数&#xff09;。 校验逻辑 有效格式 符合国家标准。 公民身份号码按照GB11643&#xff0d;…