热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python条件赋值for_第三章:Python之流程控制

第一节:if分支初步用法程序流程顺序结构分支结构循环结构三种程序流程分支结构if分支的三种语法格式if分支的三种语法格式#第一种和第二种代码示例ageint(inpu

第一节:if分支初步用法

  • 程序流程
    • 顺序结构
    • 分支结构
    • 循环结构
4e6a4213f74b9cc0c787843abfca5c96.png

三种程序流程

  • 分支结构
    • if分支的三种语法格式
8c1cd3c4dbc4e946b8d504a7476c0620.png

if分支的三种语法格式

# 第一种和第二种代码示例age = int(input("请输入你的年龄: "))if age > 25: print("您的年龄大于25") print("您已经成年,建议不要依赖父母")else: print("您似乎还是一个宝宝") print("暂时还可以住在父母家") # 第三种代码示例score = int(input("请输入你的年龄: "))if score > 90: print("优秀") print("发奖金")elif score > 80: print("良好") print("发奖状")elif score > 70: print("中等") print("还需努力")elif score > 60: print("刚好及格") print("需要加把劲")else: print("不及格")

  • 分支结构的注意点
    • 统一的缩进,一般四个空格(提示错误:indent、indentation level)
    • 不要忘记冒号:冒号代表条件的结束,执行体的开始(提示错误:SyntaxError: invalid syntax)

第二节:if分支的深入用法

  • if条件的类型
    • if条件可以是任意类型
    • False、None、0、" "、()、[]、{}这些都会被当成false处理
  • if条件的逻辑错误
    • else的隐含条件是对前面的条件进行取反
    • 当程序使用if elif时候,务必要先处理范围小的条件,如果你先处理范围大的条件,你的程序就可能引发逻辑错误
  • if表达式
    • 相当于三目运算符
    • pass语句相当于一个空语句,保持程序的完整

age &#61; int(input("请输入您的年龄&#xff1a; "))print(&#39;您的年龄大于25&#39;) if age > 25 else print(&#39;您的年龄小于25&#39;) if age <25 else print(&#39;您的年龄等于25&#39;)

第三节&#xff1a;循环的初步用法

  • 循环的意义
    • 循环语句满足循环条件情况下&#xff0c;反复执行一段语句&#xff0c;被反复执行的语句称为循环体
    • 当反复执行循环体的时候&#xff0c;合适时候需要将循环条件改成假&#xff0c;不然程序会一直执行下去&#xff0c;形成死循环
    • 死循环实际上就是无限的循环
  • while循环
    • while循环的语法格式
3ab23e7cf90e34aa220f742455908ca8.png

while循环语法格式

i &#61; 0while i <10: print(&#39;i的值: %d&#39; % i) #每次循环改变i的值&#xff0c;合适时候退出程序&#xff0c;避免死循环 i &#43;&#61; 1

    • while循环遍历列表

my_data &#61; [&#39;java&#39;, &#39;swift&#39;, &#39;python&#39;, &#39;kotlin&#39;]i &#61; 0# 通过让下标从0循环到len-1&#xff0c;这样既可遍历列表while i

  • for-in循环
    • 专门用来遍历范围、列表、元素、字典等可迭代对象包含的元素
    • 语法格式&#xff1a;
31118798b225af5bb82940b266559130.png

for-in循环语法格式

# for-in循环遍历字符串(序列)s &#61; &#39;fkjava&#39;# s序列有几个元素&#xff0c;for-in循环就重复几次&#xff0c;循环计数器会自动、依次等于每个元素for c in s: print(c) # for-in循环遍历字典my_data &#61; {&#39;java&#39;: 59, &#39;swift&#39;: 29, &#39;python&#39;: 45, &#39;kotlin&#39;: 44} # 用序列的解包同时遍历了key-valuefor key, value in my_data.items(): print(key, value)

    • for-in 循环的说明&#xff1a;
      • for-in循环中的变量的值是受for-in控制的&#xff0c;会自动被赋值&#xff0c;程序对for-in循环的循环计数器赋值在语法上是允许的&#xff0c;但是没有意义&#xff0c;而且非常容易导致错误
      • 可遍历任何可迭代的对象&#xff0c;所谓可迭代对象就是该对象包含一个_iter_方法&#xff0c;且该方法的返回值对象具有next()方法即可

第四节&#xff1a;循环的深入用法和循环嵌套

  • for-in循环遍历列表、字典
    • 使用for-in循环遍历列表和元组时&#xff0c;列表和元组有几个元素&#xff0c;for-in循环体就执行几次&#xff0c;针对每个元素执行一次&#xff0c;循环计数器会依次被赋值为元素的值
    • for-in循环也可根据索引来遍历列表和元组&#xff0c;只要让循环计数器遍历0到列表长度的区间
    • for-in循环遍历字典包含的方法
      • items():返回该字典中所有key-value对的列表
      • keys():返回字典中所有key的列表
      • values():返回字典中所有value的列表

# for-in循环遍历rangefor i in range(10): print(i) # for-in循环遍历字典my_data &#61; {&#39;python&#39;: 89, &#39;swift&#39;: 92, &#39;java&#39;: 78, &#39;kotlin&#39;: 77}# my_data的values()本身就是一个可迭代的对象 返回字典的所有valuefor v in my_data.values(): print(v) my_data &#61; {&#39;python&#39;: 89, &#39;swift&#39;: 92, &#39;java&#39;: 78, &#39;kotlin&#39;: 77}# my_data的keys()本身就是一个可迭代的对象 返回字典的所有keyfor k in my_data.keys(): print(k) my_data &#61; {&#39;java&#39;: 59, &#39;swift&#39;: 29, &#39;python&#39;: 45, &#39;kotlin&#39;: 44} # 用序列的解包同时遍历了key-valuefor key, value in my_data.items(): print(key, value)

  • 循环使用else
    • python的循环都可以定义else语句块&#xff0c;当循环条件为false时&#xff0c;程序会执行else语句块
    • 循环的else块&#xff0c;是Python的一个特殊语法(其他编程语言通常不支持)&#xff0c;else语句块的主要作用是以便生成更优雅的Python代码

# else语句块的主要作用是以便生成更优雅的Python代码&#xff0c;没有也可以for c in &#39;fkjava.org&#39;: print(c)else: print(&#39;循环结束&#39;)

  • 嵌套循环
    • 把一个循环放在另一个循环体内&#xff0c;就可形成嵌套循环
71c293de1eaf3553a1ac0a83ac0d2719.png

循环嵌套示意图

# 嵌套循环&#xff0c;对于外层循环而言&#xff0c;内层循环就相当于一条语句# 内层循环执行N次&#xff0c;外层循环执行M次&#xff0c;内层循环的循环体共执行M*N次for i in range(10): j &#61; 0 while j <20: print("i: %d, j: %d" % (i, j) ) j &#43;&#61; 1

第五节&#xff1a;列表推导式与循环控制

  • 列表推导式
    • for表达式用于利用其它区间、元组、列表等可迭代对象创建新的列表&#xff0c;for表达式语法格式&#xff1a;[表达式 for 循环计数器 in 可迭代对象]
    • for表达式与for循环区别
      • for表达式后面没有冒号
      • for表达式必须用方括号括起来

# 列表推导式是控制前面的表达式执行多少次# 表达式的多次执行结果将作为列表的元素r &#61; [&#39;表达式&#39; for i in range(10)]print(r)r &#61; [&#39;i * 2&#39; for i in range(10)]print(r)# 计算1-100的总和sum对整个列表元素求和print(sum([i for i in range(101)]))

  • 使用break跳出循环
    • 使用break可以提前跳出循环&#xff0c;而不是等循环条件为false时才退出循环
    • 带else块的for循环&#xff0c;如果使用break强行终止循环&#xff0c;程序将不会执行else块

for i in range(100): print(i) # brank可提前结束程序 if i > 5: break#当有break时else块将不被执行else&#xff1a; print(&#39;循环结束&#39;)

  • 使用continue忽略本次循环
    • continue只是忽略本次循环的剩下的语句&#xff0c;接着开始下一次循环&#xff0c;并不会终止循环
    • 把continue语句放在循环的最后一行&#xff0c;那么这条continue语句是没有任何意义的

for i in range(100): print(i) # continue忽略本次循环剩下的语句&#xff0c;接着开始下一次循环 if i > 5: continue print(&#39;循环第%d次&#39; % i)

  • 使用return结束函数
    • return作用是结束函数
    • 无论return处于多深的嵌套循环中&#xff0c;return总可以结束函数



推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 本文介绍了贝叶斯垃圾邮件分类的机器学习代码,代码来源于https://www.cnblogs.com/huangyc/p/10327209.html,并对代码进行了简介。朴素贝叶斯分类器训练函数包括求p(Ci)和基于词汇表的p(w|Ci)。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
author-avatar
Vicky小希希
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有