控制流语句

  • 条件控制
    • 单条件判断
    • 多条件判断
    • 练习
  • 循环控制
    • while语句
    • for语句
      • range函数
    • 练习
  • break 和 continue 语句
    • break语句
    • continue

 python基础学习路线:

   · 数据分析之python基础篇{基础语法}
   · 数据分析之python基础篇{数据类型}
   · 数据分析之python基础篇{控制流语句}
   · 数据分析之python基础篇{函数}
   · 数据分析之python基础篇{模块}
   · 数据分析之python基础篇{文件操作}
   · 数据分析之python基础篇{Pymysql}
   · 数据分析之python基础篇{面向对象}

条件控制

  计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。

单条件判断

 &esmp;只要看到if关键词了 , 就是进入条件语句 ,如果条件语句为Ture,则进入分支语句,条件后面要使用冒号 : 表示接下来是满足条件后要执行的语句块 其中使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块。

a = 1
if a < 0: # 条件语句print(1)  # 符合条件,执行分支语句
print(2) # 不符合条件,跳出条件判断
 运行结果:2

多条件判断

if-else

   根据gif图,if-else主要用来判断两个条件,如果 if 后条件为 True, 将执行 第一个分支语句语句,如果if后条件为False,则执行else下的分支语句

a = 1
if a == 2:print(1)
else:print('不成立')print('后面的代码')
 运行结果:不成立后面的代码

注意:else关键字可以换成elif关键字

   else关键字,代表是“其他”的意思,所以在else关键字的意思就是不满足前面所有条件判断语,所以它的后面不允许有其他的条件判断句。

a = 1
if a == 2:print(1)
else a == 1: # 这样就会报错print('不成立')print('后面的代码')

if-elif-else

  这是用的最多的多条件语句判断。elif是else if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

if <条件判断1>:<执行1>
elif <条件判断2>:<执行2>
elif <条件判断3>:<执行3>
else:<执行4>

  明确条件后,可以不写else语句,比如:

age = int(input("请输入你家狗狗的年龄: "))
print("")
if age <= 0:print("你是在逗我吧!")
elif age == 1:print("相当于 14 岁的人。")
elif age == 2:print("相当于 22 岁的人。")
elif age > 2:human = 22 + (age -2)*5print("对应人类年龄: ", human)### 退出提示
input("点击 enter 键退出")

  不明确条件后,需要写上else语句,比如:

age = 3
if age >= 18:print('adult')
elif age >= 6:print('teenager')
else:print('kid')

布尔类型和其他数据类型之间的转换关系

  在if的条件判断语句中,关于布尔类型。所有空值为假,其他为真

if 'dde':print('你好')
 运行结果:你好

  关于假的布尔类型数据,除了空值外,0也会判断为False。

if 0:print('你好')
print('哈哈')
 运行结果:哈哈

   字符串为空会判断为Flase,不过当字符串为0,就判断为Ture

a = ""
if a:print('你好')
print('哈哈')
 运行结果:哈哈
a = "0"
if a:print('你好')
print('哈哈')
 运行结果:你好哈哈

   此外,空的列表也会判断为False

a = []
if a:print('你好')
print('哈哈')
 运行结果:哈哈

if嵌套

  通过学习if的基本用法,已经知道了

  当需要满足条件去做事情的这种情况需要使用if 当满足条件时做事情A,不满足条件做事情B的这种情况使用if-elif

  想一想:坐火车或者地铁的实际情况是:先进行安检如果安检通过才会判断是否有车票,或者是先检查是否有车票之后才会进行安检,即实际的情况某个判断是再另外一个判断成立的基础上进行的,这样的情况该怎样解决呢?答:if嵌套

if嵌套的格式if 条件1:满足条件1 做的事情1满足条件1 做的事情2...(省略)...if 条件2:满足条件2 做的事情1满足条件2 做的事情2...(省略)...
# 先检票 , 如果有票, 则进站
# 如果没票, 不能进站
# 如果成功进站了, 进行安检
# 如果没有危险物品, 则可以上车
# 如果有危险物品, 被抓到派出所
ticket = True
danger_thing = False
if ticket :# 有票的print('您有票,可以进站')if not danger_thing:  # 没有危险物品print('恭喜您,可以登车了')else:print('您身上有危险物品, 请跟我走一趟吧!')else: # 没票print('对不起, 您没票, 不能进站')
 运行结果:您有票,可以进站恭喜您,可以登车了
num=int(input("输入一个数字:"))
if num%2==0:if num%3==0:print ("你输入的数字可以整除 2 和 3")else:print ("你输入的数字可以整除 2,但不能整除 3")
else:if num%3==0:print ("你输入的数字可以整除 3,但不能整除 2")else:print  ("你输入的数字不能整除 2 和 3")

练习

  练习一:从键盘获取自己的年龄,判断是否大于或者等于18岁,如果满足就输出“哥,已成年,网吧可以去了”使用input从键盘中获取数据,并且存入到一个变量中 使用if语句,来判断 age>=18是否成立

# 1 - 4 岁  婴儿
# 4 - 18 岁  儿童
# 18 - 35 青年
# 35 - 55 中年
# 55 以上  老年
age = int(input('请输入您的年龄'))
if age <= 4:print('你是一个小baby')
elif age <= 18:print('你还未成年,不能去网吧')
elif age <= 35:print('你已经成年了, 可以去网吧玩游戏了')
elif age <= 55:print('你是一个中年人了, 不需要去网吧了')
else:print('您是一个老年人, 和网吧没有关系了')

  练习二:小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻 18.5-25:正常 25-28:过重 28-32:肥胖 高于32:严重肥胖 用if-elif判断并打印结果:

lengh  = 1.75
weight = 80.5
BMI = weight/(lengh*lengh)
if BMI < 18.5:print('过轻')
elif 18.5<=BMI<25:print('正常')
elif 25<=BMI<28:print('过重')
elif 28<= BMI < 32:print('肥胖')

  练习三:情节描述:上公交车,并且可以有座位坐下。要求:输入公交卡当前的余额,只要超过2元,就可以上公交车;如果空座位的数量大于0,就可以坐下

cardM =int(input('卡的余额是:'))
if  cardM >= 2:print('可以上公交车')set = int(input('空座位为:'))if set > 0:print('坐下')else:print('站着')
else:print('不可以上公交车')

  练习四:判断年份是否是闰年

year = int(input('请输入年份:'))
if ((year%4==0) and (year%100!= 0)) or (year%400==0):print('您输入的年份:{}年是闰年'.format(year))
else:print('您输入的年份:{}年是平年'.format(year))

循环控制

  循环语句的使用场景:这一天老师让你抄写一百遍"我错了",根据我们之前学习的知识,就是运用print语句,连续敲一百遍,print("我错了"),于是我们很自然的想到,是不是可以通过让一段代码重复运行的方法来减少工作量呢?

借此,我们可以借用循环语句来完成工作,Python 中的循环语句有 for 和 while。

i = 0
while i < 100:print("我错了")i += 1
# 或者
for i in range(0,100):print("我错了")

while语句

  Python 中 while 语句的一般形式:

#while循环格式
while 条件表达式:条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3...(省略)...

  比如:

  同样需要注意冒号和缩进

i = 0
while i<5:print("当前是第{}次执行循环:".format(i+1),end="")print("i={}".format(i))i+=1
 运行结果:当前是第1次执行循环:i=0当前是第2次执行循环:i=1当前是第3次执行循环:i=2当前是第4次执行循环:i=3当前是第5次执行循环:i=4
n = 100sum = 0
counter = 1
while counter <= n:sum = sum + countercounter += 1print("1 到 %d 之和为: %d" % (n,sum))
 运行结果:1 到 100 之和为: 5050

while 循环使用 else 语句

  如果 while 后面的条件语句为 false 时,则执行 else 的语句块。

while <expr>:<statement(s)>
else:<additional_statement(s)>

  expr 条件语句为 true 则执行 statement(s) 语句块,如果为 false,则执行 additional_statement(s)。

count = 0
while count < 5:print (count, " 小于 5")count = count + 1
else:print (count, " 大于或等于 5")
 运行结果:0  小于 51  小于 52  小于 53  小于 54  小于 55  大于或等于 5

if与while嵌套使用

# 计算1~100之间偶数的累积和(包含1和100)i = 1
sum_n = 0
while i<=100:if i%2 == 0:sum_n = sum_n + ii+=1print("1~100的累积和为:{}".format(sum_n))
 运行结果:1~100的累积和为:2550

while对字符串循环

  可以使用while循环对字符串进行遍历,不过就需要配合字符串的索引功能

s = """做生意,熟人登门,绝不可以杀熟,但是也不可以不收钱,不赚不亏,是最好的。否则越做生意,就越没朋友。你次次亏本,那人还喜欢时时登门,证明对方不把你当朋友。你次次赚得比平时还多,那就更明白了,你根本不曾将那人当做朋友。若是这般,反而爽利。若是前者,就要揪心了。"""i = 0
while i < len(s):  # len(s)计算出s的长度print(s[i],end='-' )i += 1
 运行结果:做-生-意-,-熟-人-登-门-,-绝-不-可-以-杀-熟-,-但-是-也-不-可-以-不-收-钱-,-不-赚-不-亏-,-是-最-好-的-。-否-则-越-做-生-意-,-就-越-没-朋-友-。-你-次-次-亏-本-,-那-人-还-喜-欢-时-时-登-门-,-证-明-对-方-不-把-你-当-朋-友-。-你-次-次-赚-得-比-平-时-还-多-,-那-就-更-明-白-了-,-你-根-本-不-曾-将-那-人-当-做-朋-友-。-若-是-这-般-,-反-而-爽-利-。-若-是-前-者-,-就-要-揪-心-了-。-

for语句

  for循环和编程语言中常见的循环不太一样,它实际上不是一个循环,而是一个遍历功能,会依次对一个可迭代的数据中的每一个数据进行操作.

在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

#for循环的格式for 临时变量 in 遍历的范围(列表或者字符串等):循环满足条件时执行的代码

  for循环对列表遍历

for i in [1,2,3,4,5,6]:print('第{}次承认错误'.format(i))
 运行结果:第1次承认错误第2次承认错误第3次承认错误第4次承认错误第5次承认错误第6次承认错误
for student_name in ['张三' , '李四' , '王五']:# 把这个学生的姓氏打印出来print(student_name[0] )print('-'*30)
 运行结果:张------------------------------李------------------------------王------------------------------
s = [1,2,3,4,5,6,7,8,9,10]
n = 0
for i in s:n += i
print(n)
 运行结果:55

for循环对字符串遍历

name = '我想去打游戏,不想学习'for x in name:print(x*4)print('-'*30)

for循环使用 else 语句

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

range函数

  如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:

for i in range(5):print(i,end=" ")
 运行结果:0 1 2 3 4
for i in range(1,101):# 判断 当前的 这个i 是不是偶数if i % 2 == 0: # 说明是偶数n +=i
print(n)
 运行结果:2550

# 可以使用range()函数来创建一个列表
list(range(5))
 运行结果:[0, 1, 2, 3, 4]

可以使用range指定区间的值

for i in range(5,9):print(i,end=" ")
 运行结果:5 6 7 8
# 计算0-100之间的和
# 先定一个累加器
n = 0
for i in range(101): # 也可以写成for i in range(1, 101):# 每次把遍历出来的i + 1 的值  累加到 n 上面去n += i
print(n)
 运行结果:5050

使range以指定数字开始并指定不同的增量

for i in range(0, 10, 3): # 也可以理解为3的倍数print(i)
 运行结果:0 3 6 9
# 甚至可以是负数,有时这也叫做'步长'
for i in range(-10, -100, -30) :print(i,end=" ")
 运行结果:-10 -40 -70

结合range()和len()函数以遍历一个序列的索引

a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ']
for i in range(len(a)):print(i, a[i])
 运行结果:0 Google1 Baidu2 Runoob3 Taobao4 QQ

练习

  练习一:使用1-100中所有7的倍数的且为偶数的数字打印出来

n = 0
for i in range(1,101):if (i%7 == 0) and (i%2 == 0):print(i)

  练习二:利用for循环将下面这首诗中的剑,酒,魔几个字替换成X

s = """御剑乘风来,除魔天地间,
有酒乐逍遥,无酒我亦颠,
一饮尽江河,再饮吞日月,
千杯醉不倒,唯我酒剑仙。"""
for i in list(s):if i == '酒' or i== '剑'or i == '魔':s = s.replace(i, 'x')
print(s)
# 或者
for i in ['剑','酒','魔']:s = s.replace(i,'X')
print(s)

break 和 continue 语句

break语句

  break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。

name = '我想要去打游戏,不想学习'
for i in name:if i == ',':breakprint(i,end="")
 运行结果:我想去打游戏
i = 0while i<10:i += 1if i == 5:breakprint(i,end="")
 运行结果:1 2 3 4

continue

  continue 语句被用来告诉 Python 跳过当前循环块中的剩余语句,然后继续进行下一轮循环。

name = '我想要去打游戏,不想学习'
for i in name:# 如果遇到了逗号, 就不打印了if i == ',':continueprint(i,end="")
 运行结果:我想要去打游戏不想学习
scores = [98, 88, 66, 44, 55, 101, 76 ,22]
for score in scores:if score  < 0 or score > 100:# 分数异常breakprint(score,end=" ")
 运行结果:98 88 66 44 55
i = 0while i<10:i = i+1if i==5:continueprint(i,end=" ")
 运行结果:1 2 3 4 6 7 8 9 10

 注意:break/continue只能用在循环中,除此以外不能单独使用
   break/continue在嵌套循环中,只对最近的一层循环起作用

python基础篇{控制流语句}相关推荐

  1. python基础篇——for语句

    for 语句 for循环可以遍历任何序列的项目 for i in range () 就是给i赋值: 比如 for i in range (1,3):就是把1,2依次赋值给i range () 函数的使 ...

  2. 程序员前辈归纳整理Python中的控制流语句的知识点(要记得收藏)

    这篇文章主要归纳整理了Python中的控制流语句的知识点,来自于IBM官方网站技术文档,需要的朋友可以参考下 程序流 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一 ...

  3. python包括哪些部分_第一部分 Python基础篇

    第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...

  4. 杨洋python课程提高篇_杨洋老师《全民一起玩Python 基础篇+提高篇》

    全民一起玩Python 基础篇+提高篇 适用人群: 想用轻松系统的方式,从零开始真正理解掌握Python.进而学习办公.网抓.数据.AI.网站等技术的各界人士 课程概述: 制作精细.自带吐槽,每节课程 ...

  5. 杨洋python课程提高篇_杨洋老师:全民一起玩Python 基础篇+提高篇,老师幽默严谨不枯燥的学习编程...

    课程介绍 本套课程出自杨洋老师的全民一起玩Python 基础篇+提高篇官网售价299元,程保持了杨洋博士老师幽默严谨不枯燥的学习编程,清晰全面的授课风格,配有丰富的教学演示和插图.动画,是初学者学习P ...

  6. python while循环语句-python while循环控制流语句结构与用法

    python while循环语句和for语句都是python的主要循环结构.while语句是python中最通用的迭代结构,也是一个条件循环语句.while与if语句有哪些不同,标准语法结构及循环使用 ...

  7. Python基础之循环语句

    Python基础之循环语句 一.循环语句介绍 1.循环语句理解 2.循环语句示意图 二.循环语句的分类 三.循环控制语句 四.while循环 1.while死循环 2.while条件循环 五.brea ...

  8. 面试题之第一部分(Python基础篇) 80题

    第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...

  9. 经典Python面试题之Python基础篇

    Python基础篇 1. 为什么学习Python? 2. 通过什么途径学习的Python? 3. Python和Java.PHP.C.C#.C++等其他语言的对比? 4. 简述解释型和编译型编程语言? ...

最新文章

  1. linux Address already in use 端口被占用解决办法
  2. 谈谈你对Android NDK的理解
  3. ms查约束具体代码_记 Arthas 实现一次 CPU 排查与代码热更新
  4. Centos7配置为NAT服务器
  5. cmd输入net start mysql提示:服务名无效(解决方案笔记)
  6. Hibernate(7)关联关系_单向1对n
  7. php面向对象之策略模式,php策略模式的学习--引自《深入php面向对象模式与实践》...
  8. 阿里合伙人名单曝光;百度网盘回应“不买会员限速”;库克:不担心苹果在华表现 | 极客头条...
  9. 将参数传递给Bash函数
  10. linux之debian自动登录
  11. GetLogicalDrives,GetLogicalDriveStrings,GetDri...
  12. 190217每日一句
  13. ymodem传输的终端工具_国六在线监控OBD终端H6S信息安全防篡改技术实现
  14. 为什么苹果允许用户安装未受信任的企业级开发者所开发的软件?
  15. ih5长图如何滑动_iH5中级教程:微场景H5必备,横向滑动切换
  16. VS code实现前后端交互及大屏可视化(Flask+Mysql+Echarts+HTML+JS+CSS)
  17. Windows MFC 工程应用开发与框架原理完全剖析教程(下)
  18. Java10进制转16进制,16进制转10进制
  19. xmind怎么导出为pdf?Xmind最全入门教程
  20. 函数式编程-纯函数篇

热门文章

  1. ✯GLSL-2-着色器概述
  2. Matlab之绘制带帷幕的网格曲面图
  3. 如何写好eggjs单元测试
  4. 电商市场数据分析,2022年总零售额13.79万亿,订单总数高达1083亿笔
  5. matlab选取第一列和第三列,如何用matlab提取一个矩阵的第一列和第三列?
  6. 网络安全——Nikto的使用
  7. 使用 JS 阻止网页的内容被选中
  8. 5.4.1 边缘检测—梯度算子
  9. 四川盛世华飞教育科技:电商设计的工作流程全解!
  10. 如何实现消息功能_微信服务号功能助手发送消息模板如何实现