python基础篇{控制流语句}
控制流语句
- 条件控制
- 单条件判断
- 多条件判断
- 练习
- 循环控制
- 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基础篇{控制流语句}相关推荐
- python基础篇——for语句
for 语句 for循环可以遍历任何序列的项目 for i in range () 就是给i赋值: 比如 for i in range (1,3):就是把1,2依次赋值给i range () 函数的使 ...
- 程序员前辈归纳整理Python中的控制流语句的知识点(要记得收藏)
这篇文章主要归纳整理了Python中的控制流语句的知识点,来自于IBM官方网站技术文档,需要的朋友可以参考下 程序流 Python 解释器在其最简单的级别,以类似的方式操作,即从程序的顶端开始,然后一 ...
- python包括哪些部分_第一部分 Python基础篇
第⼀一部分 Python基础篇 1. 为什什么学习Python? 朋友推荐,比较简单易学,生态圈比较强大 发展趋势:人工智能.数据分析 2. 通过什什么途径学习的Python? 廖雪峰.网络博客.相关 ...
- 杨洋python课程提高篇_杨洋老师《全民一起玩Python 基础篇+提高篇》
全民一起玩Python 基础篇+提高篇 适用人群: 想用轻松系统的方式,从零开始真正理解掌握Python.进而学习办公.网抓.数据.AI.网站等技术的各界人士 课程概述: 制作精细.自带吐槽,每节课程 ...
- 杨洋python课程提高篇_杨洋老师:全民一起玩Python 基础篇+提高篇,老师幽默严谨不枯燥的学习编程...
课程介绍 本套课程出自杨洋老师的全民一起玩Python 基础篇+提高篇官网售价299元,程保持了杨洋博士老师幽默严谨不枯燥的学习编程,清晰全面的授课风格,配有丰富的教学演示和插图.动画,是初学者学习P ...
- python while循环语句-python while循环控制流语句结构与用法
python while循环语句和for语句都是python的主要循环结构.while语句是python中最通用的迭代结构,也是一个条件循环语句.while与if语句有哪些不同,标准语法结构及循环使用 ...
- Python基础之循环语句
Python基础之循环语句 一.循环语句介绍 1.循环语句理解 2.循环语句示意图 二.循环语句的分类 三.循环控制语句 四.while循环 1.while死循环 2.while条件循环 五.brea ...
- 面试题之第一部分(Python基础篇) 80题
第一部分(python基础篇)80题 为什么学习Python?==*== # 1. python应用于很多领域,比如后端,前端,爬虫,机器学习(人工智能)等方面,几乎能涵盖各个开发语言的领域,同时它相 ...
- 经典Python面试题之Python基础篇
Python基础篇 1. 为什么学习Python? 2. 通过什么途径学习的Python? 3. Python和Java.PHP.C.C#.C++等其他语言的对比? 4. 简述解释型和编译型编程语言? ...
最新文章
- linux Address already in use 端口被占用解决办法
- 谈谈你对Android NDK的理解
- ms查约束具体代码_记 Arthas 实现一次 CPU 排查与代码热更新
- Centos7配置为NAT服务器
- cmd输入net start mysql提示:服务名无效(解决方案笔记)
- Hibernate(7)关联关系_单向1对n
- php面向对象之策略模式,php策略模式的学习--引自《深入php面向对象模式与实践》...
- 阿里合伙人名单曝光;百度网盘回应“不买会员限速”;库克:不担心苹果在华表现 | 极客头条...
- 将参数传递给Bash函数
- linux之debian自动登录
- GetLogicalDrives,GetLogicalDriveStrings,GetDri...
- 190217每日一句
- ymodem传输的终端工具_国六在线监控OBD终端H6S信息安全防篡改技术实现
- 为什么苹果允许用户安装未受信任的企业级开发者所开发的软件?
- ih5长图如何滑动_iH5中级教程:微场景H5必备,横向滑动切换
- VS code实现前后端交互及大屏可视化(Flask+Mysql+Echarts+HTML+JS+CSS)
- Windows MFC 工程应用开发与框架原理完全剖析教程(下)
- Java10进制转16进制,16进制转10进制
- xmind怎么导出为pdf?Xmind最全入门教程
- 函数式编程-纯函数篇