洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句

【微电网优化】基于粒子群求解CHP机组、气网、电网、储热罐和电锅炉微电网优化模型附matlab代码 1 简介 我国风力发电近年发展迅速,装机容量已成为全球首位.随着风力发电在电力系统中的渗透率不断提高,我国多个地区(尤其是"三北"地区)已经面临着十分严峻的风电消纳问题,产生不容忽视的弃风问题.针对目前我国风电消纳存在的困难,本文提出粒子群优化CHP机组、气网、电网、储热罐和电锅炉微电网控制策略. 2 部分代码 Ppv=[0;0;0;0;0;0;9.86000000000000;19.0100000000000;33.1000000000000;45.0700000000000;64.7900000 阅读详情

所有的编程语言里都有判断语句和循环语句。

判断语句则是用来分支程序流程的

循环语句则是为了实现一个效果,让程序的规律性的重复操作

不用说,分支和循环自然在python里也是有的

一,条件判断:if,if……else

1.在python里if可以单独出现,也可以和else配套出现,但是else不能单独出现

这里则要提到一个在编程里一个共有的特性:

悬挂else:即出现多余或者不和if匹配的else,就叫悬挂else,当出现悬挂else是会导致程序报错的。但在python里强制限制else属于哪一个循环里,对缩进严格要求,所以不会出现悬挂else,也就是前面提到的【else不能单独出现】。

2.if格式:

a:

  • if   XX:
  •   suite(语句体套件)

b:

  • if   XX:
  •   suite
  • else:
  •   suite

3.使用条件判断案列:

代码:

# -*- coding:utf-8 -*-
print("猜一个幸运数字,游戏开始!")#提示游戏开始
temp=input("请输入你觉得对的数字:")#这一句是和用户交互得到一个值,并赋值给temp
guess=int(temp)#这一句将temp变量转换成整形,方便下面的条件判断
if guess>8:
    print("大了")#如果guess变量大于8,则运行print
else:#否则的话
    if guess == 8:
        print("哇,猜对了")#如果guess等于8,运行print
    else:
        print ("小了")#如果不等于8也不大于8,运行print
print("游戏结束")#提示游戏结

 

运行结果:

因为没有猜对,再运行两次:

 

第三次终于对了,判断语句就是这样使用的

不过这个小程序看起来还不够完善,可以优化一下:

# -*- coding:utf-8 -*-
print("猜一个幸运数字,游戏开始!")
guess=int(input("请输入你觉得对的数字:"))
if guess>8:
    print("大了")
elif guess == 8:    #注意elif
    print("哇,猜对了")
else:
    print ("小了")
print("游戏结束")

这里elif等同于else+if

但是还是不够完善,因为每次运行代码只有一次猜的机会,觉得有点少了,可以猜多次吗?当然可以,所以得用上下面要说的循环

二,循环

在python里有两种循环,while循环和for循环,并注意在python里没有when语句和switch语句

1.while循环

1)格式:

a:

  • while  XX:
  •   suite

b:

  • while  XX:
  •   suite
  • else:
  •   suite

是的,while语句可以和else配套使用

2)从实例中剖析while循环:

代码:

# -*- coding:utf-8 -*-
print("猜一个幸运数字,游戏开始!")
guess=int(input("请输入你觉得对的数字:"))
while guess!=8:
    guess=int(input("请重新输入你觉得对的数字:"))
    if guess>8:
        print("大了")
    else:
        print ("小了")
        
print("猜对了")

 运行结果:

效果是实现了,但是又有个两个小问题:

问题1.为什么我要在while语句里还要在再一次为guess赋值

 因为在当while运行时,首先判定的就是当第一次用户输入时能不能满足条件,满足条件则循环,而这里的不等于8,第一次输入是5,5确实不等于8,所以满足条件运行,但是,如果不重新赋值,guess则会在整个程序里一直指向5这个值,永远满足条件,永远循环,就成了一个死循环,直到耗尽你的计算机资源让计算机崩溃宕机为止:

不给guess再一次赋值的效果:

这里我把程序终止了,所以有个keyboardInterrupt键盘异常出现,关于异常的后面会讲解,暂时可以忽略

所以,在while里的那一句重新赋值很重要,防止发生死循环,并且切记,在使用循环时如果产生了死循环是编程的大忌

问题2.在第一次输入5的时候,并没有给出提示是大了还是小了,这个需要改善的

所以稍微改动一下代码:

# -*- coding:utf-8 -*-
print("猜一个幸运数字,游戏开始!")
while True:
    guess=int(input("请输入你觉得对的数字:"))
    if guess>8:
        print("大了")
    elif guess<8:
        print ("小了")
    else:
        print("猜对了")

 运行结果:

这样就可以在第一次输入值时给出提示,但是你应该发现了,我已经输入了正确答案,程序还是没有退出,还在运行,这个情况要怎么解决呢?此时又需要一点新的知识——break和continue语句

break:用于满足条件时跳出本层循环,且只能跳过一层循环

continue:用于满足条件时跳过本层循环内的某一次循环,如果在本次循环内下面条件满足则运行完再进入下一次循环

上面的代码,我加入break后:

# -*- coding:utf-8 -*-
print("猜一个幸运数字,游戏开始!")
while True:
    guess=int(input("请输入你觉得对的数字:"))
    if guess>8:
        print("大了")
    elif guess<8:
        print ("小了")
    else:
        print("猜对了")
        break

 运行结果:

这样的话,就完美的解决一个问题,并且前面那个死循环问题如果使用break也可以避免,但是代码还是有问题的,我只是给下解决了死循环这个问题的效果,所以不给出代码,只是做下演示:

继续看看break和continue的用法:

 代码:

# -*- coding:utf-8 -*-
i=1
while True:
    while i!=8:
        i+=1      #姑且认为同i=i+1,但其实不等价于,自己可以用id函数查看
        if i<5:
            continue
            print('i的值目前小于5')          
        
        if i==5:
            print('i的值为%d'%i)
            break
    print('跳出了内层循环')
    break
print('跳出了外层循环')

 

 运行结果:

感觉不大明显对吧,break应该很好理解,但是continue还是有点不大懂,对吧?这样,我去掉continue看看效果:

图解:

只能搞成这个样子了,还不懂的话,自己复制代码拿来运行,多体会

3)练习:用while循环打印斐波那契数列

代码:

# -*- coding:utf-8 -*-
list1=[0,1]
n1=list1[0]
n3=n2=list1[1]
n=int(input('请输入一个你希望打印出多少项斐波那契数列里的数:'))
if n<1:
    print("输入有误!")
while (n-2)>0:
    n3=n2+n1
    n1=n2
    n2=n3
    n-=1
    list1.append(n3)
print('斐波那契数列的前%d项:'%len(list1))
print(list1)

 

结果:

2.for循环

1)说到for循环,就得说说迭代这个词

迭代:指的是按照某种顺序逐个访问列表中的每一项,for语句就是迭代最好的体现和解释

for循环和while循环差不多,不过for来得更简洁

2)格式:

a:

for XX in 表达式:

  suite

b:

for XX  in 表达式:

  suite

else:

  suite

3)实例:

是不是很好的解释了迭代这个词

for和while没什么差别,while能用的for都能用,if条件判断和break,continue语句都可以使用,所以不再练习举例了,不过你可以自己尝试用for循环输出一个斐波那契数列

 

但是for在有些方面优于while循环:

用for可以迭代的优势

比如用for可以很快的生成一个列表,这种方法叫列表生成器和列表解析,后面的章节会讲解

 

GEE训练教程:基于Sentinel-2卫星的归一化建筑指数(NDBI)等的进行城市扩张分析 本文介绍利用Sentinel-2卫星数据和谷歌地球引擎平台监测印度卡姆鲁普都会区2018-2024年城市扩张的方法。通过计算归一化建筑指数(NDBI)、植被指数(NDVI)和水体指数(MNDWI),采用多阈值规则识别建设用地,并量化不同年份的城市扩张面积。代码实现了从数据预处理、指数计算到面积统计的完整流程,为城市扩张研究提供了可复制的技术方案。关键参数包括年份选择、云覆盖阈值和分类阈值,均可根据研究需求调整。该方法能有效追踪城市边界变化,为城市规划提供数据支持。 阅读详情

相关推荐

5分钟搞懂深度学习如何革新声源定位:从GCC-PHAT到DNN的实战对比

本文深入对比了深度学习与传统GCC-PHAT方法在声源定位领域的实战表现。通过具体实验数据,展示了DNN模型在强混响、低信噪比等复杂场景下,如何实现定位准确率的显著提升,并探讨了其数据驱动范式带来的鲁棒性优势与工程部署挑战。

3a9bq4r8t2y的博客 223

python 一些魔法

1. range(object): """ range(stop) -> range object range(start, stop[, step]) -> range object Return an object that produces a sequence of integers from start (inclusive) to ...

weixin_34119545的博客 214

使用PackStack工具自动化部署OpenStack

搭建 OpenStack 环境,每个组件的安装和配置都需要熟悉其特定的依赖关系、参数设置等,对于初学者来说容易出错。PackStack 工具通过集成一系列脚本和配置文件,便于快速搭建OpenStack练习环境。CPU:支持 Intel VT - x 或 AMD - V 硬件虚拟化技术,并且要在 BIOS 里开启此功能。内存:16GB以上存储:200GB以上可用空间(2)VMware WorkStation16.0以上版本(3)远程连接工具(如Xshell、MobaXterm)

2301_80440447的博客 4094

python when语句_python循环语句

The for statementThe for statement is used to iterate over the elements of a sequence (such as a string, tuple or list) or other iterable object:for_stmt ::= "for" target_list "in" expression_list ":...

weixin_39830020的博客 716

超详细版risc-v五级流水线cpu硬件设计实现解析

深入剖析risc-v五级流水线cpu的硬件架构与设计细节,涵盖指令流程、模块划分与关键时序控制,帮助理解risc-v五级流水线cpu的工作机制与优化策略。

weixin_42437253的博客 1631

STM32F407+LWIP实战:NETCONN接口TCP服务器避坑指南(附正点原子例程解析)

本文深入解析了基于STM32F407和LWIP协议栈构建高响应TCP服务器的实战要点。针对使用NETCONN接口时常见的连接不稳定、数据延迟及内存泄漏等问题,提供了从NETCONN运行模型、服务器实现、参数优化到内存管理的全方位避坑指南,并结合正点原子例程,给出了具体的调试技巧与解决方案。

weixin_29188043的博客 402

Python 如何实现当循环(When)和直到循环(Until)

目录当循环(When)直到循环(Until) 当循环(When) 直接使用 while 就可以了 print "Please input a number" a = int(raw_input()) # when while a != 10: # do print "%s is wrong. Try it again." % (a) a = int(raw_input()) ...

mshdyh的博客 3万+

电流采样电路设计:差分放大与ADC采集详解

在电机控制、电源管理、电池监测等应用中,电流采样是一个关键环节。通常,我们使用小阻值的采样电阻将电流信号转换为电压信号,再通过运放放大后送入ADC进行采集。本文将详细分析一种基于差分放大器的电流采样电路,包括信号放大、参考电压偏置、滤波保护以及ADC转换计算等内容。

W0s477的博客 2万+

Python Pandas 中的 case_when() 方法详解

在本文中,深入探讨了 Pandas 中的方法的用法,包括基本用法和高级用法。这个方法对于数据分析和数据转换任务非常有用,可以根据条件创建新的列,处理多条件组合和缺失值,并生成新的数据集。希望通过本文的示例代码和解释,能更好地理解和运用方法。这将有助于更灵活地处理各种数据分析和数据处理任务。

aobulaien001的博客 1406

“华为杯”研究生数学建模竞赛2019年-【华为杯】D题:汽车行驶工况构建(附获奖论文和MATLAB代码实现)

映了汽车道路行驶的运动学特征。准差、加速度标准差这九个特征参数用于后续的数据分析,建立了合理的汽车运动特征评。特征参数与所属类特征参数的特征值的相关性大小替代误差进行排序的,计算得到汽车行。对于问题一,我们首先对原始数据进行了时间变量转换,将原本的年月日时分秒的计。紧接着进行了运动学片段的划分,引入九个特征参数,通过主成分分析、本文研究的是汽车行驶工况构建,汽车行驶工况是描述汽车行驶的速度。的合理性评价标准,对两种方法都进行了合理性评价,得到的。进行了合理性评价,得到了最优的汽车行驶工况曲线。

getusushu的博客 1000

7.26华为OD机试真题 新系统 - 炸弹人的雷区数量 (Java/Py/C/C++/Js/Go)

7.26华为OD机试真题 新系统 - 炸弹人的雷区数量 (Java/Py/C/C++/Js/Go)

算法大师! 792

python基础——while循环语句

1.while循环基本使用 循环的作用就是让指定的代码重复的执行 . while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行 需求--打印5遍Hello World 思考--如果要求打印100遍怎么办? 1.1 while语句基本语法 初始条件设置——通常是重复执行的 计数器 while条件(判断 计数器 是否达到 目标次数): 条件满足时,做的事情A 条件满足时,做的事情B 条件满足时,做的事情C ........... 处理条件(计数器+ 1) 注意: while

weixin_48124413的博客 1万+

基于MATLAB的Hough变换指针式仪表识别

综上所述,本文介绍了如何使用MATLAB中的Hough变换算法来实现指针式仪表的自动识别和读数。通过图像预处理、Hough变换和直线提取,我们可以准确地检测指针的位置,并进一步进行仪表读数。本文将介绍如何使用MATLAB中的Hough变换算法来实现指针式仪表的自动识别和读数。在指针式仪表识别中,我们可以利用Hough变换来检测仪表盘上的指针。以上是基于MATLAB的Hough变换指针式仪表识别的详细步骤和源代码示例。根据指针在仪表盘上的位置,我们可以进行角度计算或使用其他技术来获取准确的读数。

techDM的博客 462

python when语句_洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句...

所有的编程语言里都有判断语句和循环语句。判断语句则是用来分支程序流程的循环语句则是为了实现一个效果,让程序的规律性的重复操作不用说,分支和循环自然在python里也是有的一,条件判断:if,if……else1.在python里if可以单独出现,也可以和else配套出现,但是else不能单独出现这里则要提到一个在编程里一个共有的特性:悬挂else:即出现多余或者不和if匹配的else,就叫悬挂els...

weixin_39634067的博客 1151

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python不用if编一个数字游戏_洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句...

所有的编程语言里都有判断语句和循环语句。判断语句则是用来分支程序流程的循环语句则是为了实现一个效果,让程序的规律性的重复操作不用说,分支和循环自然在python里也是有的一,条件判断:if,if……else1.在python里if可以单独出现,也可以和else配套出现,但是else不能单独出现这里则要提到一个在编程里一个共有的特性:悬挂else:即出现多余或者不和if匹配的else,就叫悬挂els...

weixin_39954674的博客 285

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

python用for循环输出直角三角形_使用FOR循环语句在屏幕上输出一个由星号组成的直角三角形...

题目要求:请用C++的信息输出方式,使用循环语句在屏幕上输出一个由星号组成的直角三角形,形状如下:***************要求:完全使用C++的信息输出方式,即cout以及流插入操作符编写,不得使用c语言中的printf等函数使用循环语句进行星号的输出控制,可以使用for、while、do-while任何一种。代码如下:#includeusing namespace std;int main...

weixin_39779032的博客 4362

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 968

python学习总结(函数进阶)

-------------------程序运行原理-------------------1、模块的内建name属性,主模块其值为main,导入模块其值为模块名1、创建时间,py文件比pyc文件新,则从新生成pyc。2、magic num,做运行前版本测试,版本不同重新生成pyc。3、PyCodeObject对象,源代码中的字符串,常量值,字节码指令,原始代码行号的对应关系。 2、LEGB规则1、L...

weixin_33801856的博客 243

python when语句_使用sqlpar解析CASE WHEN语句

这个项目确实有点缺乏文件记录。我查看了examples并扫描了一下源代码。不幸的是,文档中并没有包括Token和TokenList类上对该任务有用的所有方法。在例如,一个重要但被忽略的方法是^{} method,它使您比其他方法更容易遍历嵌套的标记列表;^{}方法只在树中生成未分组的标记,而CASE是一个分组标记,因此,单纯地看文档,您可能会发现很难对解析的令牌树做一些有用的事情。在我在代码库中注...

weixin_30438795的博客 600

Python while 循环语句详解:基础语法、常见应用场景及注意事项

Python循环语句 - while循环语句、while循环的嵌套应用

weixin_43263566的博客 1万+

【python入门篇——7】循环控制(if、while、for、range)

range() 函数默认 0 为起始值,不过可以通过添加参数来指定起始值:range(2, 5) ,这意味着值为 2 到 5(但不包括 5)for 语句不能为空,但是如果某种原因写了无内容的 for 语句,可以使用 pass 语句来避免错误。a > b,所以第一个条件不成立,elif条件也不成立,所以执行else打印‘a 大于 b’函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。实例:定义两个变量,a 和 b,如果b大于a,将“b大于a”打印到屏幕。

weixin_45014379的博客 2035

python case when用法_SQL之CASE WHEN用法详解

简单CASE WHEN函数:CASE SCORE WHEN 'A' THEN '优' ELSE '不及格' ENDCASE SCORE WHEN 'B' THEN '良' ELSE '不及格' ENDCASE SCORE WHEN 'C' THEN '中' ELSE '不及格' END等同于,使用CASE WHEN条件表达式函数实现:CASE WHEN SCORE = 'A' THEN '优'WH...

weixin_35733852的博客 2370

【Python】if语句、for语句、while语句

官方文档: 4. 其他流程控制工具 — Python 3.11.0a0 文档 一、if语句 if a == 2: print("a==2") elif a == 1: print("a==1") else: print("False") 二、for语句 for i in [1, 2, 3, 4]: print(i, end="") 因为list中当前int对象被删除了, 字典遍历时不使用列表副本,报错! ...

fftx_00的博客 464

python else单独使用_python -else 的使用

else一般我们最常用的是if....else...做判断语句我们还可以使用其他方式如 for..else 或 while ...else 和try..except...elsefor...else#查找10以内的所有质数num = []for i in range(2, 10): # 循环出2以上的所有数字for j in range(2, i): # 循环出被查找的数字和比自身小且&gt...

weixin_39693438的博客 2164

chatgpt赋能python:Python中如何不适用if语句

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

虚幻私塾 522

Python 中的else语句

在其他语言中,除了条件语句,是不会见到else分支的,但在Python中,while和for循环中,也是可以使用else语句的。它们的工作顺序为:在循环中使用时,else语句只在循环完成后执行,也就是说,break语句也会跳过else代码块,只要循环是正常结束,而不是通过break,else语句就会执行。 while-else举例: Python代码   #!/usr/bin/env pyt

happyzhouxiaopei的专栏 937
上一篇: 洗礼灵魂,修炼python(9)--灵性的字符串
下一篇: 洗礼灵魂,修炼python(11)--python函数,模块
geekbyte.
博客等级 码龄11年 308粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值