分支语句和循环语句
一、分支语句
1.概念
在生活中,所谓的判断,指的是如果某些条件满足才能做某件事情;条件不满足时则不能做
在编程中,判断所给定的条件是否满足,根据判断的结果对应执行不同的语句,Python中的分支语句只有if语句
2.使用
2.1if单分支
语法:
if 表达式:
语句
说明:当程序执行到if语句时,首先判断“表达式”的值,如果表达式的值为“真”,则执行缩进的语句;如果表达式的值为“假”,则跳过整个if语句继续向下执行
import random
#if语句是一个代码块,在Python中通过缩进区分代码块
1.需求:基本使用
num1 = 50
num2 = 60
注意:通过缩进区分代码块的时候,一般使用4个空格或者tab键,但是一定不要tab键和空格混合使用
if num1 == num2:
print("ok")
print("over")
2.需求:判断一个人是否成年,如果未成年不让进网吧
age = int(input("请输入你的年龄:"))
if age < 18:
print("未成年人禁止进入网吧")
3.需求:从控制台输入一个数,判断该数是否是偶数
n = int(input("请输入一个数:"))
if n % 2 == 0:
print("%d是一个偶数" % (n))
4.需求:随机获取一个数,和控制台输入的数相比较,如果相等,则中奖【模拟彩票】
产生随机数
第一步:import random ,尽量书写在文件的最开头
第二步:random.choice(range())
range(start,end,step):是一个容器,其中可以存储多个数据【整数】
注意:
end不会包含在内,前闭后开区间
start默认为0,step默认为1
2.2if双分支
语法:
if 表达式:
语句1
else:
语句2
说明:当程序执行到if-else语句时,首先判断“表达式”的值,如果表达式的值为“真”,则执行语句1;如果表达式的值为“假”,则执行语句2
import random
if-else语句:双分支
1.需求:判断一个人是否成年,如果未成年不让进网吧
age = int(input("请输入你的年龄:"))
if age < 18:
print("未成年人禁止进入网吧")
else:
print("欢迎光临,多多充值")
2.需求:从控制台输入一个数,判断该数是否是偶数
n = int(input("请输入一个数:"))
if n % 2 == 0:
print("%d是一个偶数" % (n))
else:
print("%d是一个奇数" % (n))
2.3if多分支
语法:
if 表达式1:
语句1
elif 表达式2:
语句2
elif 表达式3:
语句3
….
elif 表达式n:
语句n
else:
语句m
说明:当程序执行到if-elif语句时,首先计算表达式1的值,如果表达式1的值为真,那么执行语句1,执行完语句1则直接跳出整个if-elif语句,代码继续向下执行;
else if———>elif
import random
if-elif-else语句:多分支
1.需求:猜数字大小游戏
#获取随机数
sysData = random.choice(range(1,101)) #1~100
print(sysData)
#输入
guess = int(input("请输入1~100之间的一个整数:"))
#比较,两个数比较大小,有三种情况,三种及三种以上的情况则使用多分支
if sysData > guess:
print("对不起,你猜的数字偏小")
elif sysData < guess:
print("对不起,你猜的数字偏大")
else:
print("恭喜恭喜,好运连连!")
2.4三者的区别
n = 3
#多分支:实现多选一
if n > 0:
print("a")
elif n > 1:
print("b")
elif n > 2:
print("c")
elif n > 3:
print("d")
else:
print("e")
单分支:要么执行,要么不执行
if n > 0:
print("a")
if n > 1:
print("b")
if n > 2:
print("c")
双分支:实现二选一
if n > 3:
print("d")
else:
print("e")
2.5嵌套if语句
语法:
if 表达式1:
语句1
if 表达式2:
语句2
说明:当表达式1和表达式2的值都为真时,才会执行语句2
注意:单分支,双分支和多分支相互之间可以进行嵌套
需求:假设有个人加你好友,如果性别为女,还是一个美女,则欣然同意,如果不符合,则残忍拒绝
gender = "男"
isBeauty = True
if gender == "女":
if isBeauty:
print("欣然同意")
else:
print("不好意思,有主了")
else:
print("对男的不感兴趣")
注意:
a.只有当设置的多个条件同时成立时,才会执行最里层的语句
b.理论上嵌套的层数没有限制,但是,为了代码的可读性和可维护性,建议嵌套最多三层
二、循环语句
1.概念
在生活中,循环指的是一个现象周期性或者重复性的出现
在编程中,在满足条件的情况下,反复执行某一段代码,在编程语言中出现的这种现象被称为循环,这段被重复执行的代码被称为循环体
Python中提供的循环语句有:while语句和for语句
2.while语句
2.1基本使用
语法:
while 表达式:
语句
说明:当程序在从上往下执行的过程中,遇到while语句时,首先计算表达式的值,如果表达式的值为假,则跳过整个while语句,程序继续向下执行;如果表达式的值为真,则执行对应的语句;执行完语句,再去计算表达式的值,如果表达式的值为假,则跳过整个while语句,程序继续向下执行;如果表达式的值为真,则执行对应的语句。。。如此循环往复,直到表达式的值为假,整个循环才停止
1.需求:打印10遍hello world
print("hello world")
print("hello world")
print("hello world")
print("hello world")
。。。。。。
#在条件成立的前提下,if只会执行一次
if 1:
print("if~~~hello world")
#在条件成立的前提下,while会执行多次
while 1:
print("while~~~~hello world")
#a.定义一个变量,赋初始值
n = 0
#b.设置循环的条件
while n < 10: #n <= 9
#c.循环体:需要反复执行的代码
print("hello world")
#d.循环之后的操作表达式:改变n的值
n += 1 #n = n + 1
print("over")
2.需求:打印0~9的数字
n1 = 0
while n1 <= 9:
print(n1)
n1 += 1
3.需求:求1~100之间所有整数的和
n3 = 1
sum3 = 0 #0对加法运算没有影响
while n3 <= 100:
sum3 += n3 #求和
n3 += 1
print(sum3)
4.需求:求1~100之间所有奇数的和
#方式一
n4 = 1
sum4 = 0
while n4 <= 100:
sum4 += n4
n4 += 2
#方式二
n4 = 1
sum4 = 0
while n4 <= 100:
if n4 % 2 == 1: #n4 % 2 != 0
sum4 += n4
n4 += 1
5.需求:求10的阶乘
n5 = 1
r = 1
while n5 <= 10:
r *= n5
n5 += 1
print(r)
2.2else分支和死循环
1.死循环
使用场景:如果不确定循环的次数,则可以采用死循环
while 1:
循环体
while True:
循环体
#2.else分支
m = 0
while m > 5:
print("1111")
m += 1
else:
print("else被执行了")
"""
if-else:如果if的条件成立,则else没有执行的机会
while-else:一般情况下,当while执行完毕之后,再执行else
一般情况下,while中的else都会执行
2.3嵌套循环
1.基本工作原理
m = 0
#外层循环
while m < 5:
n = 0
#内层循环
while n < 3:
print("%d=%d" % (m,n))
n += 1
m += 1
"""
分析:
外层循环:5次
每次外层循环会执行内层循环
内层循环:3次
"""
print("=" * 30)
#2.需求:打印九九乘法表
行 列
1x1=1 1 1
1x2=2 2x2=4 2 2
1x3=3 2x3=6 3x3=9
....
...
1x9=9 2x9=18 3x9=27 ...... 8x9=72 9x9=81 9 9
规律:
a.总共有9行,行的取值范围:1~9
b.列数随着行数的变化而变化,列的取值范围:1~当前行
"""
#外层循环:控制行
line = 1
while line <= 9:
#内层循环:控制列
colum = 1
while colum <= line:
#列 * 行 = 乘积
#通过自定义end的值阻止换行
print("%dx%d=%d" % (colum,line,line * colum),end=" ")
colum += 1
line += 1
print() # print()默认可以换行
二、循环语句之for语句
1.基本使用
语法:
for 变量名 in 序列:
循环体
功能:for循环主要用于遍历任何序列,比如列表,字符串,元组,字典和集合等
遍历:指的是依次访问列表中的每一个元素,获取每个元素值
说明:按照顺序获取列表中的每个元素,赋值给变量名,再执行语句,如此循环往复,直到取完列表中所有的元素为止
1.遍历序列
a.遍历列表(列表稍后会更新)
list1 = ["abf","cbc",100,False,34]
#注意:循环的次数由序列中元素的个数决定
for ele in list1:
print(ele)
b.遍历字符串
for ch in "abcdef":
print(ch)
2.else分支:一般情况下,else都会被执行
for ch in "":
print("for被执行")
print(ch)
else:
print("else被执行")
3.需求:打印1~50的整数
注意:如果序列存在,则直接使用,如果没有序列,则用range()生成
for m in range(1,51):
print(m)
需求:打印1~50的偶数
for m in range(1,51):
if m % 2 == 0:
print(m)
for m in range(2,51,2):
print(m)
#需求:统计1~100之间个位数为2且是3的倍数的数的个数
n = 1
count = 0
while n <= 100:
if (n % 10 == 2) and (n % 3 == 0):
count += 1
n += 1
print(count)
count = 0
for m in range(1,101):
if (m % 10 == 2) and (m % 3 == 0):
count += 1
print(count)
2.遍历列表
list1 = [346,65,100]
1.直接遍历元素
for num1 in list1:
print(num1)
2.直接遍历索引
for i in range(len(list1)):
print(i,list1[i]
3.嵌套for循环
1.需求:打印九九乘法表
外层循环:1-9
内层循环:1~当前行数
i = 1
while i <= 9:
j = 1
while j <= i:
print("%dx%d=%d" % (j,i,i * j),end=" ")
j += 1
print()
i += 1
for n in range(1,10):
for m in range(1,n + 1):
print("%dx%d=%d" % (m,n,n * m),end=" ")
print()
2.需求:遍历嵌套列表
list1 = [["a","b","c"],[22,44],[True,9,45.6]]
list1[0]相当于一个标量,表示小列表
print(list1[0][2])
遍历元素
for sublist in list1:
print(sublist)
for ele in sublist:
print(ele)
遍历索引
for i in range(len(list1)):
#list1[i]获取的是小列表
for j in range(len(list1[i])):
print(list1[i][j])
3.break和continue
3.1break
作用:跳出for和while的循环体【直接跳出整个循环,继续执行循环后面的代码】
注意:跳出距离最近的for或者while语句
3.2continue
作用:跳过当前正在执行的循环,然后继续进行下一轮循环【结束本次循环,继续执行下一次循环】
1.break
for i in range(10):
if i == 4:
#直接结束循环
break
print(i)
print("over")
注意:break跟if语句没有关系,if语句仅仅是一个条件的限制
for m in range(5):
for n in range(3):
if n == 1:
#break出现在嵌套循环中,则直接跳出当前循环【就近原则】
break
print(m,n)
2.coutinue
for i in range(10):
if i == 4:
#结束当前正在执行的循环,继续下一次循环
continue
print(i)
for m in range(5):
for n in range(3):
if n == 1:
#continue结束的是当前的正在执行的循环,就近原则
continue
print(m,n)
3.pass,占位语句,没有实际意义,只是为了保证代码结构的完整性
if True:
pass
while True:
pass
print("gsg")





浙公网安备 33010602011771号