[Python] 循环语句

循环语句就是在符合条件的情况下,重复执行一个代码段 

1.while循环

while语句可用于在条件为真时反复执行代码块 

语法格式

while 条件语句:
    执行语句

当条件语句为真(True)时,就会执行while循环下的语句 

示例

实现1到100 的累加并输出求和结果

sum = 0
i = 1
while i <= 100:
    sum = sum+i
    i = i + 1

# 5050
print(sum)

提示Tips

① Python没有 i++或 i--这种自增或自减运算符,需要使用 i = i + 1或者 i = i - 1进行替代

② while循环必须要设置循环终止的条件,否则会陷入死循环

不过我们可以使用死循环来确保用户输入自己的名字

name = ''
while not name or name.isspace():
    name = input('Please enter your name: ')

print('Hello, {}!'.format(name))

while循环也可以进行嵌套使用

示例

使用while循环输出九九乘法表

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

代码运行结果如下所示

1*1=1    
1*2=2    2*2=4   
1*3=3    2*3=6   3*3=9   
1*4=4    2*4=8   3*4=12  4*4=16  
1*5=5    2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6    2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7    2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8    2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9    2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  

2.for循环

语法格式

for <variable> in <sequence>:
    <statements>

示例

使用for循环计算1-10的整数之和

sum = 0
for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
    sum = sum + x

# 55
print(sum)

for x in ...循环就是把列表中的每个元素代入变量 x,然后执行缩进语句sum = sum + x 

如果计算1-100的整数之和,按上述方式在列表中从1枚举到100有点困难,Python提供了一个创建范围的内置函数range()

语法格式

range(start, stop[, step])

start: 计数从 start 开始,默认是从 0 开始

stop: 计数到 stop 结束,但不包括 stop

step: 步长,默认为1,可选参数

range()函数可以生成一个整数序列,再通过list()函数可以转换为list列表的数据结构

# range(0, 5)
range(5)
# [0, 1, 2, 3, 4]
list(range(5))

示例

使用for循环计算1-100的整数之和

sum = 0
for x in range(1, 101):
    sum = sum + x

# 5050
print(sum)

我们也可以使用for循环迭代字典

dicts = {'x':1, 'y':2, 'z':3}

'''
x
y
z
'''
for key in dicts.keys():
    print(key)

'''
1
2
3
'''
for value in dicts.values():
    print(value)

'''
x corresponds to 1
y corresponds to 2
z corresponds to 3
'''
for key, value in dicts.items():
    print(key, 'corresponds to', value)

for循环语句也可以进行嵌套使用,我们将上述使用while循环输出九九乘法表替换成使用for循环实现,代码如下所示

for i in range(1,10):
    for j in range(1,i+1):
        print(f"{j}*{i}={j*i}",end='\t')
    print(" ")
print("\n")

3.跳出循环

通常循环会不断地执行代码块,直到条件为假或使用完序列中所有元素,但在有些情况下,可能会想中短循环或直接结束循环,这时我们就可以使用continue或break关键字实现跳出循环的功能

在循环过程中,可以通过continue语句,跳过当前的这次循环,直接开始下一次循环 

for循环结合continue使用 

students = ['Andy','Jack','Bob','Rita','Odin','Harry']

for i in students:
    if i == 'Rita':
        continue
    print(i)

执行结果如下所示

Andy
Jack
Bob
Odin
Harry

while循环结合continue使用  

'''
1
2
4
5
'''
n = 0 
while n < 5:
    n += 1
    if n == 3:
        continue
    print(n)

如果想要提前结束循环,可以使用break语句(在循环体内遇到break则会跳出循环,终止循环并且不论循环的条件是否为真,都不再继续循环 )

for循环结合break使用 

students = ['Andy','Jack','Bob','Rita','Odin','Harry']

for i in students:
    if i == 'Rita':
        break
    print(i)

执行结果如下所示

Andy
Jack
Bob

while循环结合break使用   

while True:
    flag = input('是否要退出程序?(y/n)')
    print(flag)
    if flag == 'y':
        break

执行结果如下所示

d6890307846d4298b9965e72f3217aa3.png

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

线性代数 --- 最小二乘在直线拟合上的应用与Gram-Schmidt正交化

最小二乘在直线拟合上的应用 在前一篇最小二乘的文章中&#xff1a; 线性代数 --- 投影与最小二乘 下(多元方程组的最小二乘解与向量在多维子空间上的投影)_松下J27的博客-CSDN博客多变量方程组的最小二乘&#xff0c;向量到多维子空间上的投影。https://blog.csdn.net/daduzi…

轻松实现文字转语音:推荐5款免费工具

随着人工智能技术的不断发展和普及&#xff0c;文字转语音技术也越来越成熟和普及&#xff0c;越来越多的人开始使用文字转语音工具来简化日常工作和生活。本文将为您推荐5款免费的文字转语音工具&#xff0c;让您轻松实现文字转语音。 1.Google 文字转语音 Google 文字转语音…

免费ChatGPT接入-国内怎么玩chatGPT

免费ChatGPT中文版 OpenAI 的 GPT 模型目前并不提供中文版的免费使用&#xff0c;但是有许多机器学习平台和第三方服务提供商也提供了基于 GPT 技术的中文版模型和 API。下面是一些常见的免费中文版 ChatGPT&#xff1a; Hugging Face&#xff1a;Hugging Face 是一个开源社区…

【LeetCode: 面试题 08.01. 三步问题 | 暴力递归=>记忆化搜索=>动态规划】

&#x1f34e;作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域新星创作者&#x1f3c6;&#xff0c;保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享&#x1f48e;&#x1f48e;&#x1f48e; &#x1f34e;座右…

PyTorch随笔 - Glow: Generative Flow with Invertible 1×1 Convolutions

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/129939225 论文&#xff1a;Glow - Generative Flow with Invertible 11 Convolutions 作者Kingma&#xff0c;来源于OpenAI&#xff0…

大地量子与亚马逊云科技合作,为新能源业务的发展提供更多的最佳实践

大地量子成立于2017年&#xff0c;致力于打造行业顶尖的时空数据算法体系和计算架构&#xff0c;助力用户实现数据驱动的业务升级。近期&#xff0c;大地量子在新能源功率预测业务中使用了亚马逊云科技&#xff0c;来满足全球天气预报系统对高算力和网络传输的需求。大地量子还…

JAVASE 继承

文章目录继承1.为什么需要继承2.继承的概念3.继承的语法4.父类成员访问4.1 子类中访问父类的成员变量4.2 子类中访问父类的成员方法5 super关键字6.子类的构造方法7.super和this8.再谈初始化9.protected关键字10.继承方法11.final 关键字12.继承与组合继承 1.为什么需要继承 …

【python+requests】接口自动化测试

这两天一直在找直接用python做接口自动化的方法&#xff0c;在网上也搜了一些博客参考&#xff0c;今天自己动手试了一下。 一、整体结构 上图是项目的目录结构&#xff0c;下面主要介绍下每个目录的作用。 Common:公共方法:主要放置公共的操作的类&#xff0c;比如数据库sql…

python--虚拟环境搭建(使用命令安装)

作用&#xff1a; 1.使不同应用开发环境相互独立 2.环境升级不影响其他应用&#xff0c;也不会影响全局的python环境 3.防止出现包管理混乱及包版本冲突 两种搭建虚拟环境方法&#xff1a; 1.使用pycharm创建虚拟环境&#xff08;之前的文章已经介绍过&#xff0c;不再赘述&am…

【ESP-IDF】你好世界

这里写目录标题创建项目小细节点使用过Arduino的朋友一定会觉得ESP-IDF编译起来又慢又麻烦&#xff0c;但是我们为什么还是要使用ESP-IDF呢&#xff1f;原因就在于它比起Arduino来说更加强大&#xff01;我们使用ESP-IDF能够更多地对ESP32的底层进行操作&#xff01; 创建项目 …

“智慧”的大楼,为啥落地这么难?

在5A级写字楼上班是什么感觉?      当你加班至凌晨,灯光和空调系统仍然会为你继续服务。      当你进入停车场,系统会自动引导至方便停车的空位。      当你点完外卖但无法抽身时,送餐机器人便会将午饭送到公司门口。    所谓5A,就是指建筑的高度智能化,它包含…

Java GenericObjectPool 对象池化技术--SpringBoot sftp 连接池工具类

通常一个对象创建、销毁非常耗时的时候&#xff0c;我们不会频繁的创建和销毁它&#xff0c;而是考虑复用。复用对象的一种做法就是对象池&#xff0c;将创建好的对象放入池中维护起来&#xff0c;下次再用的时候直接拿池中已经创建好的对象继续用&#xff0c;这就是池化的思想…

有些人失业是必然的,AIGC使用两周后体验

原文来自 鸟哥笔记 刘飞 沉浸式地体验过 Midjourney 和 ChatGPT 两周后&#xff0c;分享下我的观察和思考。 1. 神奇十一月 Midjourney 的 v4 版本是 11 月 5 日发布的&#xff0c;ChatGPT 是 11 月 30 日发布的&#xff0c;堪称 AIGC 应用历史上最神奇的十一月。 其实 Mid…

【第一节】- flink源码编译

分析flink源码,第一步从flink源码编译开始。 环境: scala 2.12 java 1.8 flink 1.17.0 maven 3.6.8 nodejs(这个去官网下载安装一下就好,npm -v 显示成功就好)1、首先在flink 官网下载最新的源码 下载链接: https://flink.apache.org/zh/downloads/ 2、下载完成后,解压…

USB土壤参数检测仪丨便捷、全面、耐用

土壤水分是农业科学灌溉的基础&#xff0c;无论是植物科学研究、还是农业增产增收&#xff0c;土壤中的水分、温度、电导率、酸碱度都十分重要。 但现在的问题是“如何迅速、便捷地获取土壤参数信息”&#xff1f; USB土壤参数检测仪 就能实现以上目的 ↓ ↓ ↓ USB土壤参数…

fiddler(抓包)的用法和HTTP 协议的基本格式

目录 fiddler(抓包)用法&#xff1a; HTTP 协议的基本格式 HTTP请求&#xff1a; 首行 认识HTTP方法 GET和POST的典型区别&#xff1a; 认识请求“报头”&#xff08;header&#xff09; HTTP 响应 HTTP状态码&#xff1a; 状态码的分类&#xff1a; 认识响应 …

厉害了!Facebook优惠广告让你的广告预算翻倍

如果你是一个企业主或者市场营销人员&#xff0c;你可能已经知道Facebook广告平台是一个强大的数字广告工具&#xff0c;可以帮助你推广产品和服务&#xff0c;并且吸引潜在客户到你的网站上。 而今天&#xff0c;我们将教你如何创建和投放Facebook优惠广告以及如何利用这些广…

【Linux】信号的捕捉

文章目录信号的捕捉∞图sigaction函数信号的捕捉 当我们在执行主流程的时候,可能因为某些情况而陷入内核,当内核处理完毕准备返回用户态时,就需要进行信号pending的检查,&#xff08;此时仍处于内核态,有权力查看当前进程的pending位图&#xff09; 在查看pending位图时,如果…

【Django网络安全】跨站点请求伪造保护,CSRF如何正确使用

Django网络安全 【Django网络安全】跨站点请求伪造保护,CSRF如何正确使用 文章目录Django网络安全前言一、CSRF攻击场景二、CSRF攻击的防御手段1.验证 HTTP Referer 字段2.请求地址添加token并验证三、Django的CSRF防御解析1.CSRF防护的过程2.cookie中的csrftoken3.session中的…

ArrayList与LinkList的区别

ArrayList底层的实现是Array, 数组扩容实现 新增数据空间判断, 新增数据的时候需要判断当前是否有空闲空间存储 扩容需要申请新的连续空间,把老的数组复制过去 新增新的内容, 回收老的数组空间 LinkList是一个双链表,在添加和删除元素时具有比ArrayList更好的性能, 但是再查…
最新文章