控制流语句条件控制单条件判断多条件判断练习循环控制while语句for语句range函数练习break 和 continue 语句break语句continuepython基础学习路线·数据分析之python基础篇{基础语法}·数据分析之python基础篇{数据类型}·数据分析之python基础篇{控制流语句}·数据分析之python基础篇{函数}·数据分析之python基础篇{模块}·数据分析之python基础篇{文件操作}·数据分析之python基础篇{Pymysql}·数据分析之python基础篇{面向对象}条件控制计算机之所以能做很多自动化的任务因为它可以自己做条件判断。单条件判断esmp;只要看到if关键词了 , 就是进入条件语句 如果条件语句为Ture则进入分支语句条件后面要使用冒号 : 表示接下来是满足条件后要执行的语句块其中使用缩进来划分语句块相同缩进数的语句在一起组成一个语句块。a1ifa0:# 条件语句print(1)# 符合条件执行分支语句print(2)# 不符合条件跳出条件判断运行结果多条件判断if-else根据gif图if-else主要用来判断两个条件如果 if 后条件为 True 将执行 第一个分支语句语句如果if后条件为False则执行else下的分支语句a1ifa2:print(1)else:print(不成立)print(后面的代码)运行结果不成立 后面的代码注意else关键字可以换成elif关键字else关键字代表是“其他”的意思所以在else关键字的意思就是不满足前面所有条件判断语所以它的后面不允许有其他的条件判断句。a1ifa2:print(1)elsea1:# 这样就会报错print(不成立)print(后面的代码)if-elif-else这是用的最多的多条件语句判断。elif是else if的缩写完全可以有多个elif所以if语句的完整形式就是if条件判断1:执行1elif条件判断2:执行2elif条件判断3:执行3else:执行4明确条件后可以不写else语句比如ageint(input(请输入你家狗狗的年龄: ))print()ifage0:print(你是在逗我吧!)elifage1:print(相当于 14 岁的人。)elifage2:print(相当于 22 岁的人。)elifage2:human22(age-2)*5print(对应人类年龄: ,human)### 退出提示input(点击 enter 键退出)不明确条件后需要写上else语句比如age3ifage18:print(adult)elifage6:print(teenager)else:print(kid)布尔类型和其他数据类型之间的转换关系在if的条件判断语句中关于布尔类型。所有空值为假,其他为真ifdde:print(你好)运行结果你好关于假的布尔类型数据除了空值外0也会判断为False。if0:print(你好)print(哈哈)运行结果哈哈字符串为空会判断为Flase不过当字符串为0就判断为Tureaifa:print(你好)print(哈哈)运行结果哈哈a0ifa:print(你好)print(哈哈)运行结果你好 哈哈此外空的列表也会判断为Falsea[]ifa:print(你好)print(哈哈)运行结果哈哈if嵌套通过学习if的基本用法已经知道了当需要满足条件去做事情的这种情况需要使用if当满足条件时做事情A不满足条件做事情B的这种情况使用if-elif想一想坐火车或者地铁的实际情况是先进行安检如果安检通过才会判断是否有车票或者是先检查是否有车票之后才会进行安检即实际的情况某个判断是再另外一个判断成立的基础上进行的这样的情况该怎样解决呢答if嵌套if嵌套的格式if条件1:满足条件1做的事情1满足条件1做的事情2...(省略)...if条件2:满足条件2做的事情1满足条件2做的事情2...(省略)...# 先检票 , 如果有票, 则进站# 如果没票, 不能进站# 如果成功进站了, 进行安检# 如果没有危险物品, 则可以上车# 如果有危险物品, 被抓到派出所ticketTruedanger_thingFalseifticket:# 有票的print(您有票,可以进站)ifnotdanger_thing:# 没有危险物品print(恭喜您,可以登车了)else:print(您身上有危险物品, 请跟我走一趟吧!)else:# 没票print(对不起, 您没票, 不能进站)运行结果您有票,可以进站 恭喜您,可以登车了numint(input(输入一个数字))ifnum%20:ifnum%30:print(你输入的数字可以整除 2 和 3)else:print(你输入的数字可以整除 2但不能整除 3)else:ifnum%30:print(你输入的数字可以整除 3但不能整除 2)else:print(你输入的数字不能整除 2 和 3)练习练习一从键盘获取自己的年龄判断是否大于或者等于18岁如果满足就输出“哥已成年网吧可以去了”使用input从键盘中获取数据并且存入到一个变量中 使用if语句来判断 age18是否成立# 1 - 4 岁 婴儿# 4 - 18 岁 儿童# 18 - 35 青年# 35 - 55 中年# 55 以上 老年ageint(input(请输入您的年龄))ifage4:print(你是一个小baby)elifage18:print(你还未成年,不能去网吧)elifage35:print(你已经成年了, 可以去网吧玩游戏了)elifage55:print(你是一个中年人了, 不需要去网吧了)else:print(您是一个老年人, 和网吧没有关系了)练习二小明身高1.75体重80.5kg。请根据BMI公式体重除以身高的平方帮小明计算他的BMI指数并根据BMI指数低于18.5过轻 18.5-25正常 25-28过重 28-32肥胖 高于32严重肥胖 用if-elif判断并打印结果lengh1.75weight80.5BMIweight/(lengh*lengh)ifBMI18.5:print(过轻)elif18.5BMI25:print(正常)elif25BMI28:print(过重)elif28BMI32:print(肥胖)练习三情节描述上公交车并且可以有座位坐下。要求输入公交卡当前的余额只要超过2元就可以上公交车如果空座位的数量大于0就可以坐下cardMint(input(卡的余额是))ifcardM2:print(可以上公交车)setint(input(空座位为))ifset0:print(坐下)else:print(站着)else:print(不可以上公交车)练习四判断年份是否是闰年yearint(input(请输入年份))if((year%40)and(year%100!0))or(year%4000):print(您输入的年份{}年是闰年.format(year))else:print(您输入的年份{}年是平年.format(year))循环控制循环语句的使用场景:这一天老师让你抄写一百遍我错了,根据我们之前学习的知识就是运用print语句连续敲一百遍print(我错了),于是我们很自然的想到,是不是可以通过让一段代码重复运行的方法来减少工作量呢?借此我们可以借用循环语句来完成工作Python 中的循环语句有for 和 while。i0whilei100:print(我错了)i1# 或者foriinrange(0,100):print(我错了)while语句Python 中 while 语句的一般形式#while循环格式while条件表达式:做的事情...(省略)...比如同样需要注意冒号和缩进i0whilei5:print(当前是第{}次执行循环.format(i1),end)print(i{}.format(i))i1运行结果当前是第1次执行循环i0 当前是第2次执行循环i1 当前是第3次执行循环i2 当前是第4次执行循环i3 当前是第5次执行循环i4n100sum0counter1whilecountern:sumsumcounter counter1print(1 到 %d 之和为: %d%(n,sum))运行结果1 到 100 之和为: 5050while 循环使用 else 语句如果 while 后面的条件语句为 false 时则执行 else 的语句块。whileexpr:statement(s)else:additional_statement(s)expr 条件语句为 true 则执行 statement(s) 语句块如果为 false则执行 additional_statement(s)。count0whilecount5:print(count, 小于 5)countcount1else:print(count, 大于或等于 5)运行结果0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5if与while嵌套使用# 计算1~100之间偶数的累积和包含1和100i1sum_n0whilei100:ifi%20:sum_nsum_ni i1print(1~100的累积和为:{}.format(sum_n))运行结果1~100的累积和为:2550while对字符串循环可以使用while循环对字符串进行遍历,不过就需要配合字符串的索引功能了s做生意熟人登门绝不可以杀熟但是也不可以不收钱不赚不亏是最好的。否则越做生意就越没朋友。你次次亏本那人还喜欢时时登门证明对方不把你当朋友。你次次赚得比平时还多那就更明白了你根本不曾将那人当做朋友。若是这般反而爽利。若是前者就要揪心了。i0whileilen(s):# len(s)计算出s的长度print(s[i],end-)i1运行结果做-生-意--熟-人-登-门--绝-不-可-以-杀-熟--但-是-也-不-可-以-不-收-钱--不-赚-不-亏--是-最-好-的-。-否-则-越-做-生-意--就-越-没-朋-友-。-你-次-次-亏-本--那-人-还-喜-欢-时-时-登-门--证-明-对-方-不-把-你-当-朋-友-。-你-次-次-赚-得-比-平-时-还-多--那-就-更-明-白-了--你-根-本-不-曾-将-那-人-当-做-朋-友-。-若-是-这-般--反-而-爽-利-。-若-是-前-者--就-要-揪-心-了-。-for语句for循环和编程语言中常见的循环不太一样,它实际上不是一个循环,而是一个遍历功能,会依次对一个可迭代的数据中的每一个数据进行操作.在Python中 for循环可以遍历任何序列的项目如一个列表或者一个字符串等。#for循环的格式for临时变量in遍历的范围列表或者字符串等:循环满足条件时执行的代码for循环对列表遍历foriin[1,2,3,4,5,6]:print(第{}次承认错误.format(i))运行结果第1次承认错误 第2次承认错误 第3次承认错误 第4次承认错误 第5次承认错误 第6次承认错误forstudent_namein[张三,李四,王五]:# 把这个学生的姓氏打印出来print(student_name[0])print(-*30)运行结果张------------------------------ 李------------------------------ 王------------------------------s[1,2,3,4,5,6,7,8,9,10]n0foriins:niprint(n)运行结果55for循环对字符串遍历name我想去打游戏,不想学习forxinname:print(x*4)print(-*30)for循环使用 else 语句forninrange(2,10):forxinrange(2,n):ifn%x0:print(n,等于,x,*,n//x)breakelse:# 循环中没有找到元素print(n, 是质数)range函数如果你需要遍历数字序列可以使用内置range()函数。它会生成数列例如:foriinrange(5):print(i,end )运行结果0 1 2 3 4foriinrange(1,101):# 判断 当前的 这个i 是不是偶数ifi%20:# 说明是偶数niprint(n)运行结果2550# 可以使用range()函数来创建一个列表list(range(5))运行结果[0, 1, 2, 3, 4]可以使用range指定区间的值foriinrange(5,9):print(i,end )运行结果5 6 7 8# 计算0-100之间的和# 先定一个累加器n0foriinrange(101):# 也可以写成for i in range(1, 101):# 每次把遍历出来的i 1 的值 累加到 n 上面去niprint(n)运行结果5050使range以指定数字开始并指定不同的增量foriinrange(0,10,3):# 也可以理解为3的倍数print(i)运行结果0 3 6 9# 甚至可以是负数有时这也叫做步长foriinrange(-10,-100,-30):print(i,end )运行结果-10 -40 -70结合range()和len()函数以遍历一个序列的索引a[Google,Baidu,Runoob,Taobao,QQ]foriinrange(len(a)):print(i,a[i])运行结果0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ练习练习一使用1-100中所有7的倍数的且为偶数的数字打印出来n0foriinrange(1,101):if(i%70)and(i%20):print(i)练习二利用for循环将下面这首诗中的剑,酒,魔几个字替换成Xs御剑乘风来除魔天地间 有酒乐逍遥无酒我亦颠 一饮尽江河再饮吞日月 千杯醉不倒唯我酒剑仙。foriinlist(s):ifi酒ori剑ori魔:ss.replace(i,x)print(s)# 或者foriin[剑,酒,魔]:ss.replace(i,X)print(s)break 和 continue 语句break语句break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止任何对应的循环 else 块将不执行。name我想要去打游戏,不想学习foriinname:ifi,:breakprint(i,end)运行结果我想去打游戏i0whilei10:i1ifi5:breakprint(i,end)运行结果1 2 3 4continuecontinue 语句被用来告诉 Python 跳过当前循环块中的剩余语句然后继续进行下一轮循环。name我想要去打游戏,不想学习foriinname:# 如果遇到了逗号, 就不打印了ifi,:continueprint(i,end)运行结果我想要去打游戏不想学习scores[98,88,66,44,55,101,76,22]forscoreinscores:ifscore0orscore100:# 分数异常breakprint(score,end )运行结果98 88 66 44 55i0whilei10:ii1ifi5:continueprint(i,end )运行结果1 2 3 4 6 7 8 9 10注意:break/continue只能用在循环中除此以外不能单独使用break/continue在嵌套循环中只对最近的一层循环起作用