19.7.25分支和循环

分支结构

# python中的分之结构只有if语句
# if语句
'''
1)结构1:满足某个条件才执行某段代码
a.语法
if 条件语句:
    代码段
其他语句
    
b.说明:
        if   ---  关键字,固定写法
        条件语句    ---     可以是一个具体的数据,也可以是一个已经赋值过的变量,或者是运算表达式(不能是赋值语句)
        : -- 固定写法
        代码段: ---   一条或者多条和if保持一个缩进的语句(任何语句)

c.执行过程:
先判断条件语句的结果是否为True(如果不是布尔就先转换成布尔)
如果为True就执行代码段,然后执行其他语句,如果是False,不执行代码段,直接执行其他语句

2)结构2:满足某个条件执行条件代码,不满足这个条件的时候执行另一段代码(if - else)
a.语法:
if 条件语句:
    代码段1
else:
    代码段2
    
b.说明:
if/else -- 关键字,固定写法
        条件语句    ---     可以是一个具体的数据,也可以是一个已经赋值过的变量,或者是运算表达式(不能是赋值语句)
        : -- 固定写法
        代码段1: ---   和if保持一个缩进的一条或者多条语句(满足if后面的条件才会执行)
        代码段2: ---   和else保持一个缩进的一条或者多条语句(不满足if后面的条件才会执行)
        
执行过程:先判断条件语句是否为True,如果为True就执行代码段1,否则执行代码段2

3)结构3:条件有多个(有关联)的时候执行不同的代码段(if - elif -elif -··· - elif)
a.语法
if 条件语句1:
    代码段1
elif 条件语句2:
    代码段2
    ···
else:
    代码段N
其他语句

执行过程:
先判断条件语句1是否为True,如果为True就执行代码段1,然后整个if结构执行其他语句,如果语句1为False,就判断条件语句2,以此类推
如果所有的条件语句都是False,就执行代码段N,再执行其他语句

补充:布尔值转换 --- python中所有的数据都能转换成布尔,
        所有为0为空的值都会转换成False,其他都是True
'''
#例子
 num = int(input('请输入一个整数:'))
 if num % 2 == 0:  # if num & 1 == 0
    print('偶数')


 age = int(input('输入年龄:'))
 if age >= 18:
     print('可以进网吧')
 else:
     print('不可以进网吧')


 age = int(input('输入年龄:'))
 if age <= 4:
     print('幼儿')
 elif 5 <= age <= 12:
     print('儿童')
 elif 13 <= age <= 18:
     print('青少年')
 elif 19 <= age <= 28:
     print('青年')
 elif 29 <= age <= 40:
     print('壮年')
 elif 41 <= age <= 60:
     print('中年')
 else:
     print('老年')


# if语句嵌套
# 在if结构中的if、else、elif后面的代码中,还可以其他的if语句
num = int(input('请输入一个整数:'))
if num & 1 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
else:
    print('奇数')

for循环

# python中是循环有两种:for-in循环和while循环

# 解决的问题:如果某段代码需要重复执行,就使用循环结构

# for循环
'''
1)语法
for 变量 in 序列:
    循环体
    
2)说明
for  -  关键字
变量名 -  要求和声明变量的时候的变量名一样
in  -  关键字
序列 -  容器型数据类型的数据,例如:字符串,列表,元祖,字典,集合,迭代器,集成器,range
循环体 - 和for保持一个缩进的一条或者多条语句;循环体中的代码就是需要重复执行的代码

3)执行过程
让变量去序列中取值,一个一个的取,取完为止;每取一个值执行一次循环体。
(python中控制for循环的循环次数,是通过控制in后面序列元素的个数来控制的)
'''

# range函数- 产生指定范围内的数字序列
'''
range(N) ---  产生0到N-1的整数数列
range(M, N) ---  产生M到N-1的整数数列
range(M, N, step) --- 从M开始每次加step产生下一个数,直到N前一个为止
'''
 1加到100
 n = 0
 for x in range(101):
     n += x
 print(n)
# 统计100以内能够被2整除,但不能被3整除的数的个数
 count = 0
 for num in range(101):
     if num & 1 == 0 and num % 3 != 0:
         count += 1
 print('个数:', count)

while循环

# while循环
'''
1)语法
while 条件语句:
    循环体
    
2)说明
while - 关键字
条件语句 - 条件语句    ---     可以是一个具体的数据,也可以是一个已经赋值过的变量,或者是运算表达式(不能是赋值语句)
: -- 固定写法
循环体-- 和while保持一个缩进的一条或者多条语句(需重复的在循环体中)

3)执行过程
先判断条件语句是否为Ture是的话就执行循环体执行完之后在判断···
当判断为False时循环结束,执行后面的程序

4)for和while循环怎么选
循环次数确定时用for,反之用while,死循环也要用while

'''
# 输入数字直到输入0为止:
 num = int(input('请输入数字:'))
 while num != 0:
     num = int(input('请输入数字:'))
 print(num)

# 输入数字,直到输入的数字为0,统计其中偶数的个数:
count = 0
num = int(input('请输入数字:'))
while num != 0:
    if num & 1 == 0:
        count += 1
    num = int(input('请输入数字:'))
print(count)

三个循环关键字

# 1.continue
'''
只能出现在循环体中的关键字

当执行循环体的时候遇到了continue,当次循环结束,执行进入下次循环的判断
'''
# 2.break
'''
只能用在循环体中的关键字;
执行循环体的时候,如果遇到break整个循环直接结束
'''
# 100000 1+2+···+x+···和最接近的x值
 a = 100000
 sum1 = 0
 num = 1
 while True:
     sum1 += num
     if sum1 > a:
         print(num - 1)
         break
     num += 1

# 3.else
'''
当循环自然结束else后面的代码段不受影响,如果遇到break则循环不会执行(else后面的代码段不会执行)
'''
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容