菜鸟学习日记(python)——循环语句

news2024/12/16 15:44:18

python中的循环语句包括for循环语句和while循环语句,但是python中是没有do...while循环语句的。

while循环语句

while循环语句的一般格式为;

while condition:
    loop body

condition是循环判断条件,loop body是循环体。

当循环条件成立时,就执行循环体中的语句,循环条件不成立时,跳出循环。

下面是一个简单的实例:

# #计算0到100的和
sum=0
i=0
while i<=100:
    sum=sum+i
    i=i+1
print('0到100的整数和为:%d'%sum)

无限循环:

当我们设置条件表达式永远不为 false时,可以实现无限循环

#无限循环
while True:
    height=input('请输入你的身高(cm):')
    height=float(height)
    print('你的身高对应标准体重为:%fkg'%(height-105))

可以按终止按钮来退出死循环

无限循环在服务器上客户端的实时请求非常有用

while...else语句

while condition:
    loop body
else:
    CodeBlock

如果while后面的条件表达式(condition)成立,那么执行循环体中(loop body)的语句,不成立时,就执行else后面的(CodeBlock)语句。

简单实例如下:

#随机才一个0到10的整数
num=random.randint(0,10)    #随机生成一个0到10之间的整数
num2=int(input('请输入你猜想的数字(整数):'))       #输入猜想的数字
i=1         #i用于计算猜数的次数
while num2!=num:        #条件表达式
    print('猜错了,再猜一次')
    num2 = int(input('请输入你猜想的数字(整数):'))
    i = i + 1
else:
    print('一共猜了%d次猜对啦!'%i)          #条件表达式不成立就执行这条语句

如果while的循环体中只有一条语句的话,可以将这条语句和while写在同一行

flag=1
while flag:print('这是一个无限循环')

for循环语句

for循环的一般格式如下:

for <variable> in <sequence>:
    <statements1>

variable是一个变量名,sequence是变量范围,当变量在变量范围内时,执行statements1里面的语句,否则执行statements2中的语句

下面是简单的实例:

for num in range(1,5):      #range(1,5)表示1到5的整数
    print(num,end='\t')     #end='\t'表示制表符,也就是4个空格
print('\n')         #\n是换行符

str1='hello'        #字符串
for str in str1:
    print(str,end='\t')
print('\n')

list1=[1,2,3]       #列表
for num in list1:
    print(num,end='\t')
print('\n')

tuple1=(4,5,6)      #元组
for num in tuple1:
    print(num,end='\t')
print('\n')

#注意:集合是无序的,所以打印出来的数据也是无序的
set1={'t1','t2','t3'}       #集合
for str in set1:
    print(str,end='\t')
print('\n')

dict1={'name':'风之海蓝','sex':'男','age':33}        #字典
for str in dict1.values():
    print(str,end='\t')
print('\n')

需要注意的是,对于集合,打印出来的结果并不是有序的

for...else

它的一般格式为:

for <variable> in <sequence>:
    <statements1>
else:
    <statements2>

statements1是循环主体,statements2是循环结束后执行的语句

一个简单实例:

for num in range(5):
    print(num,end='\t')
else:
    print('end')

range()函数

如果需要遍历数字序列,可以使用内置 range() 函数。它会生成数列,就像上面的实例一样。

我们可以指定区间值,也可以指定步长

for num in range(0,10,2):       #0到10的整数,步长为2
    print(num,end='\t')
print('\n')
for num in range(0,10,3):       #0到10的整数,步长为3
    print(num,end='\t')
print('\n')
for num in range(0,-10,-3):       #0到-10的整数,步长为-3
    print(num,end='\t')
print('\n')
for num in range(-10,0,3):       #-10到0的整数,步长为3
    print(num,end='\t')

可以看到,range的区间可以是正数区间,也可以是负数区间,区间的右边界值不被包含在内,步长也可以是正数或者负数。但是要注意的是,区间如果是从小到大,那么步长的数值要为正,区间如果是从大到小,那么步长的数值要为负数,否则会取不到数值。

我们可以结合 range() 和 len() 函数来遍历一个序列的索引,如下所示:

list1=['t1','t2','t3']
for i in range(len(list1)):
    print(list1[i])

break和continue

在循环语句中,我们常常要用到break语句和continue语句,它们是用来跳出循环的,但是两者又有区别。

break:跳出整个循环。它可以跳出 for 和 while 的循环体,如果从 for 或 while 循环中使用break终止,那么对应的循环 else 块将不执行。

continue:跳出当前循环。也就是在当前循环中,continue后面的语句不执行了,直接进入下一轮循环。

以下是简单实例:

#for循环中使用break
for num in range(1,10):
    if num==5:
        break
    print(num,end='\t')
print('结束')

#for循环中使用continue
for num in range(1,10):
    if num == 5:
        continue
    print(num,end='\t')
print('结束')

#while中使用break
num = 10
while num > 0:
    num = num - 1
    if num == 5:
        break
    print('当前变量值为 :', num, end='\t')
print('结束')

#while中使用continue
num = 10
while num > 0:
    num = num - 1
    if num == 5:
        continue
    print('当前变量值为 :', num, end='\t')
print('结束')

可以看到,无论是在for循环中,还是在while循环中,如果使用的是break,那么它会跳出整个循环,后面的循环语句都不会执行了(如果有else子句,else子句里面的语句也不会执行)。但是如果用的是continue,那么只有当前循环中的剩余语句不会执行,后面循环中的语句以及else子句中的语句都会执行。

如果是在嵌套循环语句中,执行break,那么会跳出当前的整个循环,不会跳出外层循环

下面是一个简单的实例:

for n in range(2, 10):
    for x in range(2, n):
        if n % x == 0:
            print(n, '等于', x, '*', n // x)
            break
    else:
        # 循环中没有找到元素
        print(n, ' 是质数')

pass语句

 pass是一个空语句,使用它是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句。

以下是一个实例:

list1=['花花','壳哥','飒飒','绒绒','海鸥哥哥']
for str in list1:
    if str=='飒飒':
        pass
        print('这是%s'%str)
    print(str)
print('结束')

可以看到pass不会对程序造成影响,不影响程序的正常运行,只作占位使用

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

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

相关文章

【知识】如何区分图论中的点分割和边分割

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhang.cn] 以下两个概念在现有中文博客下非常容易混淆&#xff1a; edge-cut(边切割) vertex-partition(点分割)vertex-cut(点切割) edge-partition(边分割) 实际上&#xff0c;初看中文时&#xff0c;真的会搞不清楚。但…

滑动窗口练习(三)— 加油站问题

题目 测试链接 在一条环路上有 n 个加油站&#xff0c;其中第 i 个加油站有汽油 gas[i] 升。 你有一辆油箱容量无限的的汽车&#xff0c;从第 i 个加油站开往第 i1 个加油站需要消耗汽油 cost[i] 升。你从其中的一个加油站出发&#xff0c;开始时油箱为空。 给定两个整数数组…

调新浪分享

前端写一个按钮,通过按钮来调出新浪界面, window.location.href http://service.weibo.com/share/share.php?url 这行代码调出新浪分享界面,要是想要添加一些图片和文字 使用: window.location.href http://service.weibo.com/share/share.php?url encodeURIComponent…

软件设计不是CRUD(7):低耦合模块设计实战——组织机构模块(中)

接上文《软件设计不是CRUD&#xff08;6&#xff09;&#xff1a;低耦合模块设计实战——组织机构模块&#xff08;上&#xff09;》 组织机构功能是应用系统中常见的业务功能之一&#xff0c;但是不同性质、不同行业背景、不同使用场景的应用系统对组织机构功能的要求可能完全…

[CTFshow 红包挑战] 刷题记录

文章目录 红包挑战7红包挑战8红包挑战9 红包挑战7 考点&#xff1a;xdebug拓展 源码 <?php highlight_file(__FILE__); error_reporting(2);extract($_GET); ini_set($name,$value);system("ls ".filter($_GET[1])."" );function filter($cmd){$cmd s…

visual studio code 好用的插件

vscode-icons Better comments 该插件对不同类型的注释会附加了不同的颜色&#xff0c;更加方便区分&#xff0c;帮助我们在代码中创建更人性化的注释。 Error Lens Error Lens插件是一款可以检测你编写的代码的语法错误&#xff0c;并且会显示出对语法错误的诊断信息…

中科院分区和JCR分区有什么区别

文章目录 名词解释学科划分不同参考的影响因子不同期刊分区不同期刊分区阈值不同 名词解释 中科院分区&#xff1a;又称“中科院JCR分区”&#xff0c;是中国科学院文献情报中心世界科学前沿分析中心的科学研究成果&#xff0c;期刊分区表数据每年底&#xff08;每年12月中下旬…

基于c++版数据结构基于数组栈改-Python思维总结

##栈部分-&#xff08;叠猫猫&#xff09; ##抽象数据类型栈的定义&#xff1a;是一种遵循先入后出的逻辑的线性数据结构。 换种方式去理解这种数据结构如果我们在一摞盘子中取到下面的盘子&#xff0c;我们首先要把最上面的盘子依次拿走&#xff0c;才可以继续拿下面的盘子&…

Java8流式编程详解

简介 java8提供的流式编程使得我们对于集合的处理不再是临时集合加上各种还能for循环&#xff0c;取而代之的是更加简洁高效的流水线操作&#xff0c;所以笔者就以这篇文章总结一下流式编程中常见的操作。 前置铺垫 后文示例操作中&#xff0c;我们都会基于这个菜肴类的集合…

BUUCTF crypto做题记录(3)新手向

目录 一、Rabbit 二、篱笆墙的影子 三、丢失的MD5 四、Alice与Bob 一、Rabbit 得到的密文&#xff1a;U2FsdGVkX1/ydnDPowGbjjJXhZxm2MP2AgI 依旧是看不懂是什么编码&#xff0c;上网搜索&#xff0c;在侧栏发现Rabbit解码&#xff0c;直接搜索就能有在线解码网站 二、篱笆…

【Vue第3章】使用Vue脚手架_Vue2

目录 3.1 初始化脚手架 3.1.1 说明 3.1.2 具体步骤 3.1.3 模板项目的结构 3.1.4 笔记与代码 3.1.4.1 笔记 3.1.4.2 01_src_分析脚手架 3.2 ref与props 3.2.1 ref 3.2.2 props 3.2.3 笔记与代码 3.2.3.1 笔记 3.2.3.2 02_src_ref属性 3.2.3.3 03_src_props配置 3…

【Linux】:线程(二)互斥

互斥与同步 一.线程的局部存储二.线程的分离三.互斥1.一些概念2.上锁3.锁的原理4.死锁 一.线程的局部存储 例子 可以看到全局变量是所有线程共享的&#xff0c;如果我们想要每个线程都单独访问g_val怎么办呢&#xff1f;其实我们可以在它前面加上__thread修饰。 这就相当于把g…

Java面向对象实践小结(含面试题)

继承 作用 提高了代码的复用性。让类与类之间产生了关系。有了这个关系&#xff0c;才有了多态的特性。 代码示范 父类代码 public class Parent {public void say() {System.out.println("父类的say方法");} }子类代码&#xff0c;继承父类&#xff0c;也就拥有…

如何确认网站是否有漏洞,如何找出网站存在的漏洞,找到漏洞该如何处理

如何确认网站或者服务器是否有漏洞 判断一个网站是否是存在漏洞的方法&#xff1a; 1.可以借助德迅云安全漏洞扫描功能来检查漏洞。 2.打开德迅云安全首页&#xff0c;点击最上面导航栏中的“安全产品”。 3.滑到“漏洞扫描”&#xff0c;选择“产品价格”服务。 4.选择您需…

【图像分类】【深度学习】【Pytorch版本】 DenseNet模型算法详解

【图像分类】【深度学习】【Pytorch版本】 DenseNet模型算法详解 文章目录 【图像分类】【深度学习】【Pytorch版本】 DenseNet模型算法详解前言DenseNet讲解Dense Block(稠密块)Dense Layer(稠密层)Transition Layer 过渡层DenseNet模型结构 DenseNet Pytorch代码完整代码附加…

DM8/达梦 数据库管理员使用手册详解

1.1DM客户端存放位置 Windows&#xff1a;DM数据库安装目录中tool文件夹和bin文件夹中。 Linux&#xff1a;DM数据库安装目录中tool目录和bin目录中。 1.2DM数据库配置助手 1.2.1Windows创建数据库 打开数据库配置助手dbca 点击创建数据库实例 选择一般用途 浏览选择数据库…

【基于大数据的人肥胖程度预测分析与可控策略】

基于大数据的人肥胖程度预测分析与可控策略 前言数据获取与清洗数据挖掘与分类建模1. K-means聚类2. 层次聚类3. DBSCAN4. 分类建模 数据可视化模型肥胖程度预测分析与可控策略结语 前言 随着现代生活方式的改变&#xff0c;肥胖问题逐渐成为全球性的健康挑战。为了更好地理解…

湖科大计网:计算机网络概述

一、计算机网络的性能指标 一、速率 有时候数据量也认为是以10为底的&#xff0c;看怎么好算。&#xff08;具体吉大考试用什么待商榷&#xff09; 二、带宽 在模拟信号系统中带宽的含义&#xff0c;本课程中用到的地方是&#xff1a;香农定理和奈奎斯特定理公式的应用之中。 …

未用的引脚如何处理?--持续更新中

前言&#xff1a; 随着集成电路规模的越来越大&#xff0c;如今的大规模芯片都集成了很多功能模块&#xff0c;但是在实际的电路设计中我们又不可能把芯片所有的功能模块(或者说接口)全部用上&#xff0c;因此总会有或多或少的管脚会“用不上”&#xff0c;那这些未用的管脚一般…

maven上传jar包到代码仓库

一、前言 一般被引用的包开发都是要求放在nexus仓库中&#xff0c;等到有jar包服务需要引用该包的时候直接从nexus仓库中获取即可&#xff0c;实现了该引用包的公用 二、代码配置 编辑代码中的pom.xml文件配置 vi pom.xml <distributionManagement><repository>&…