分支语句和循环语句

一、分支语句

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")

 
posted @ 2020-04-10 17:50  灬丿骑猪看夕阳O~O  阅读(349)  评论(0)    收藏  举报