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

Python基础:条件与循环

条件语句if条件:if语句的条件表达式结果布尔值为真时执行if语句后的代码。if语法:ifexpression:expr_true_suitesd1

条件语句


  • if条件:if语句的条件表达式结果布尔值为真时执行if语句后的代码。
  • if语法:

if expression:expr_true_suite

sd1 = 3
sd2 = 3
if sd1 == sd2:print('the square\'s area is',sd1*sd2)

  • if else语句:与 if 搭配使用的 else,如果 if 语句的条件表达式结果布尔值为假,那么程序将执行 else 语句后的代码。
  • 代码块必须缩进,else语句不缩进注意冒号
  • if-else语法:

if expression:expr_true_suite
else:expr_false_suite

sd1 = int(input('the first side:'))
sd2 = int(input('the second side:'))
if sd1 == sd2:print('the square\'s area is',sd1*sd2)
else:print('the rectangle\'s area is',sd1*sd2)

  • if elif语句:elif相当于else if一般用来验证多个表达式是否为真,elif后面所加条件的布尔值为真时执行elif后的代码,解决多分支结构
  • if elif语句的语法

if expression:expr_true_suite
elif expression2:expr_true_suite
elif expressionN:expr_true_suite
else:none_of_the_above_suite

grade = int(input('请输入分数:'))
if 90 < grade <&#61; 100:print(&#39;成绩为优&#39;)
elif 80 < grade <&#61; 90:print(&#39;成绩为良&#39;)
elif 70 < grade <&#61; 80:print(&#39;成绩为差&#39;)
else:print(&#39;成绩不及格&#39;)

  • 重点注意&#xff1a;if三种语句缩进的使用
  • 条件嵌套&#xff1a;在条件语句中继续加入条件

grade &#61; int(input(&#39;请输入分数&#xff1a;&#39;))
if 90 < grade <&#61; 100:print(&#39;成绩为优&#39;)
elif 80 < grade <&#61; 90:if grade > 85:print(&#39;成绩为中&#39;)else:print(&#39;成绩为良&#39;)
elif 70 < grade <&#61; 80:print(&#39;比较差&#39;)
else:print(&#39;成绩不及格&#39;)

grade &#61; int(input(&#39;请输入分数&#xff1a;&#39;))
if 90 < grade <&#61; 100:print(&#39;成绩为优&#39;)
elif 80 < grade <&#61; 90:print(&#39;成绩为中&#39;)
elif 70 < grade <&#61; 80:if grade > 75:print(&#39;成绩为良&#39;)else:print(&#39;比较差&#39;)
else:print(&#39;成绩不及格&#39;)

  • 猜数字小游戏&#xff1a;

from random import randint
x &#61; randint(0,300)
guess &#61; int(input(&#39;请输入一个0到300之间的数字&#xff1a;&#39;))
if guess > x:print(&#39;大了大了&#39;)
elif guess < x:print(&#39;小了小了&#39;)
else:print(&#39;恭喜你猜中了&#xff01;&#39;)

  • 条件表达式&#xff1a;三元操作符&#xff1a;x if E else y

x &#61; 3
t &#61; 1 if x > 0 else 0
print(t)

  • 断言&#xff08;assert&#xff09;&#xff1a;
  • 当关键字后边的条件为假时&#xff0c;程序自动崩溃并抛出AssertionError的异常

assert 5 > 8

  • 后边的条件为真时&#xff0c;自动跳过&#xff0c;一般用assert在程序中置入检查点

assert 5 < 8

  • assert可以用来确保程序中的某个条件一定为真时让程序继续工作。

range()函数

  • 产生一系列整数&#xff0c;返回一个range对象&#xff0c;为左闭右开区间

range(start,end,step&#61;1)//开始值&#xff0c;结束值&#xff0c;步长
range(start,end)#步长为1
range(end)#默认从0开始步长为1,步长是1的就是默认参数值的差
>>> list(range(3,11,2))
[3, 5, 7, 9]
>>> list(range(3,11))
[3, 4, 5, 6, 7, 8, 9, 10]
>>>

循环


  • while循环
  • while语法

while expression:suite_to_repeatsum &#61; 0
j &#61; 1
while j < 10:sum &#43;&#61; jj &#43;&#61; 1
print(sum)
print(j)

  • for循环&#xff1a;获取可迭代对象&#xff1a;iterable_object一次性产生一个迭代器iterator,可迭代对象指可以按次序迭代&#xff0c;也就是循环的对象&#xff0c;迭代器是一个特殊的可迭代对象&#xff0c;可以在迭代到某一个元素时候&#xff0c;才计算这个元素&#xff0c;适合遍历很大甚至无限的集合&#xff0c;枚举序列元素函数&#xff1a;enumerate()函数返回的就是迭代器
  • for语句的执行时执行时先取可迭代对象里面的一个值&#xff0c;执行语句序列&#xff0c;再取下一个值&#xff0c;在执行语句序列&#xff0c;直到没有元素可取
  • for循环语法

for iter_var in iterable_object:suite_to_repeat

  • range()函数返回的是可迭代对象

for i in range(3,11,2):print(i,end&#61;&#39; &#39;)
for i in range(3,11,2):print(i)#打印出来的是一个竖列

  • 字符串属于序列本身也是可迭代的

s &#61; &#39;python&#39;
for i in s:print(i,end&#61;&#39; &#39;)

  • for循环在遍历序列类型对象时有两种遍历方式&#xff1a;一种就是直接遍历每一个序列项称为序列项迭代&#xff0c;第二种是遍历序列当中每一个元素的索引&#xff0c;通过索引返回元素&#xff0c;这种方式称为索引迭代&#xff0c;序列索引是从0开始的&#xff0c;通过索引访问元素的方式是sequcence[index]

s &#61; &#39;python&#39;
for i in range(len(s)):#索引从0到字符串的长度减1print(s[i],end&#61;&#39; &#39;)#访问以后输出

  • for循环就是将一些复杂的语法机制隐藏起来用户只需要简单的方式就能表达功能

>>> x &#61; iter(range(3,11,2))//首先用iter()函数基于可迭代对象产生一个迭代器
>>> next(x)//再调用迭代器对象的next()方法获取每一个值
3
>>> next(x)
5
>>> next(x)
7
>>> next(x)
9
>>> next(x)

  • 判断可迭代对象或者迭代器的方法

>>> from collections.abc import Iterator,Iterable
>>> isinstance(range(10),Iterator)
False
>>> isinstance(iter(range(10)),Iterator)
True#迭代器
>>> isinstance(range(10),Iterable)
True#可迭代对象

  • 猜数小游戏利用循环

from random import randint#不限次数
x &#61; randint(0,300)
guess &#61; int(input(&#39;请输入一个0到300之间的数字&#xff1a;&#39;))
while guess !&#61; x:if guess > x:print(&#39;大了大了&#39;)guess &#61; int(input(&#39;请重新输入一个0到300之间的数字&#xff1a;&#39;))else:print(&#39;小了小了&#39;)guess &#61; int(input(&#39;请重新输入一个0到300之间的数字&#xff1a;&#39;))
print(&#39;恭喜你猜对了&#xff01;&#39;)
###
from random import randint
x &#61; randint(0,300)
for count in range(5):guess &#61; int(input(&#39;请输入一个0到300之间的数字&#xff1a;&#39;))if guess &#61;&#61; x:print(&#39;恭喜你猜对了&#39;)elif guess > x:print(&#39;大了大了&#39;)else:print(&#39;小了小了&#39;)
###
from random import randint
x &#61; randint(0,300)
i &#61; 0
while i<5:guess &#61; int(input(&#39;请输入一个0到300之间的数字&#xff1a;&#39;))if guess &#61;&#61; x:print(&#39;恭喜你猜对了&#39;)elif guess > x:print(&#39;大了大了&#39;)else:print(&#39;小了小了&#39;)i &#43;&#61; 1

  • 利用辗转相除法计算x和y的最大公约数&#xff1a;

x &#61; eval(input(&#39;x&#61;&#39;))//转换数据类型相当于去掉引号
y &#61; eval(input(&#39;y&#61;&#39;))
if x < y:x,y &#61; y,x
while x % y !&#61; 0:r &#61; x % yx &#61; yy &#61; r
print(&#39;最大公约数为&#39;,y)

  • 把一元分成一分、两分和五分凑成一元钱的方案

i,j,k &#61; 0,0,0
count &#61; 0
for i in range(21):for j in range(51):k &#61; 100 - 5*i - 2*jif k >&#61; 0:count &#43;&#61; 1
print(&#39;count&#61;&#39;,count)

break和continue语句


  • break语句&#xff1a;终止当前循环&#xff0c;执行循环之后的语句
  • 求素数小练习&#xff1a;算法&#xff1a;不能被2~根号x都不能整除的

from math import sqrt
j &#61; 2
while j <&#61; 100:i &#61; 2k &#61;sqrt(j)while i <&#61; k:if j % i &#61;&#61; 0:breaki &#43;&#61; 1if i > k:print(j,end&#61;&#39; &#39;)j &#43;&#61; 1

from math import sqrt
for j in range(2,101):k &#61; int(sqrt(j))flag &#61; 1for i in range(2,k &#43; 1):if j % i &#61;&#61; 0:flag &#61; 0breakif (flag):print(j,end&#61;&#39; &#39;)

sum &#61; 0
i &#61; 1
while i <&#61; 5:sum &#43;&#61; ii &#43;&#61; 1if i &#61;&#61; 3:breakprint(&#39;i&#61;{},sum&#61;{}&#39;.format(i,sum))
i&#61;2,sum&#61;1

  • coutinue语句&#xff1a;当条件满足时候跳出后面的语句&#xff0c;执行循环剩余的周期&#xff0c;只停止了当前的一轮循环
  • 停止当前循环&#xff0c;重新进入循环

sum &#61; 0
i &#61; 1
while i <&#61; 5:sum &#43;&#61; ii &#43;&#61; 1if i &#61;&#61; 3:continueprint(&#39;i&#61;{},sum&#61;{}&#39;.format(i,sum))
i&#61;2,sum&#61;1
i&#61;4,sum&#61;6
i&#61;5,sum&#61;10
i&#61;6,sum&#61;15

  • while循环则判断循环条件是否满足

  • for循环判断迭代是否结束

  • 循环中的else&#xff1a;如果循环代码从break处终止&#xff0c;跳出循环&#xff0c;如果正常结束循环&#xff0c;则执行else中代码

  • enumerate()函数&#xff1a;内置函数返回枚举对象


推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 本文讨论了如何使用IF函数从基于有限输入列表的有限输出列表中获取输出,并提出了是否有更快/更有效的执行代码的方法。作者希望了解是否有办法缩短代码,并从自我开发的角度来看是否有更好的方法。提供的代码可以按原样工作,但作者想知道是否有更好的方法来执行这样的任务。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 本文介绍了在处理不规则数据时如何使用Python自动提取文本中的时间日期,包括使用dateutil.parser模块统一日期字符串格式和使用datefinder模块提取日期。同时,还介绍了一段使用正则表达式的代码,可以支持中文日期和一些特殊的时间识别,例如'2012年12月12日'、'3小时前'、'在2012/12/13哈哈'等。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
author-avatar
疯狂一夏531
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有