基础语言-第四天-分支结构和循环

本文详细介绍了Python编程中的分支结构,包括if单分支、if双分支和多分支结构,并通过实例解析了其执行过程。此外,还讲解了循环结构,如for循环和while循环,以及如何利用range函数控制循环次数。同时,展示了循环在累计求和、统计个数等场景的应用,强调了for循环和while循环的选择原则。

第四天-分支结构和循环

程序执行过程(顺序结构):

​ 默认情况下,程序从上往下按顺序一条一条的执行,每一条

语句都会执行并且只会执行一次。

一、分支结构

  1. if单分支结构 -

    让程序根据条件执行代码;如果xxx(满足条件执行某个操作,条件不满足的时候这个操作就不执行)

  • 语法:
    if 条件语句:
    代码块

  • 说明:

    1)if -

    关键字:固定写法
    2)条件语句 -

    可以使任何有结果的表达式(比如:具体的数据、运算表达式、已经定义过的变量等,只有赋值语句不行);一般将结果是布尔的表达式作为条件

    3): -

    固定写法(注意输入法问题)
    4) 代码段 -

    结构上,就是和if保持一个缩进的一条或者多条语句(至少一条!!!);
    逻辑上,就是满足条件才会执行的代码。

  • 执行过程:

    先判断条件语句是否成立(如果条件语句结果不是布尔,就转换成布尔看是否是True),如果成立就执行代码段;条件不成立,代码段就不执行。

例子:

num = 230
if num % 2:
    print('=====')
    
结果:
不打印
因为230%2==0
0 = False
条件不成立,所以不打印
  1. if 双分支结构 - 如果xxx就xxx否则就xxx

    条件成立执行某个操作,不成立执行另外一个操作

  • 语法

    if 条件语句: 代码段1(满足条件执行的代码)else: 代码段2(不满足条件执行的代码)

  • 练习1:根据age的值打印成年或者未成年

age = 29
if age >= 18:
    print('已成年')
else:
    print('未成年,还是个宝宝呢')

结果:

已成年

  • 练习2:根据year的值打印’闰年’或者’平年’
year = 2004
if (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0):
    print('闰年')
else:
    print('平年')

结果:

闰年

  1. 多分支结构 - 如果xx就xxx,如果xx就xxx,如果xx就xxx,…(根据不同的条件做不一样

    的事情)

  • 方法1:直接使用多个单分支结构

    多个条件之间不存在‘其中一个条件成立,另外的条件就不成立’的情况

    if 条件1:
    代码段1
    if 条件2:
    代码段2
    if 条件3:
    代码段3

  • 方法2:使用elif对应的分支结构

    多个条件之间存在’其中一个条件成立,另外的条件就不成立’的情况

    if 条件1:
    代码段1
    elif 条件2:
    代码段2
    elif 条件3:
    代码段3

    else:
    代码段N

  • 注意:方法2后面的条件是在前面的条件不成立的基础上进行判断的,
    如果前面的某个条件成立,后面的条件不会再判断。

例子1:如果num是偶数打印偶数,如果num能被3整除打印3的倍数,如果num能被5整

除打印5的倍数

num = 50
if num % 2 == 0:
    print('偶数')
if num % 3 == 0:
    print('3的倍数')
if num % 5 == 0:
    print('5的倍数')

结果:

偶数

5的倍数

例子2:根据百分制分数,给学生打等级:A(大于等于90分)

score = int(input('请输入您的分数:'))
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 60:
    print('C')
else:
    print('D')

结果:

请输入您的分数:67

​ C

  1. if嵌套(if分支结构的内部又有分支结构)
  • 例子:如果num是偶数就打印偶数,是奇数打印奇数,如果num能被4整除,打印’4

    的倍数’

# 3  ->  奇数
# 6 -> 偶数
# 8  -> 偶数、4的倍数
num = int(input('请输入一个整数:'))
if num % 2 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
else:
    print('奇数')

结果:

请输入一个整数:8

偶数

4的倍数

二、循环

  1. 循环结构 - 让代码重复执行(代码写一遍,重复执行多次)

比如:

for _ in range(10):
    print(100)
  1. for循环
  • 语法:
    for 变量 in 序列:

    ​ 循环体

  • 说明:

    1) for - 关键字,固定写法

    2) 变量 - 变量名(可以是已经定义过的变量的变量名也可以是没有定义过的变量的变量名)
    3)in - 关键字;固定写法

    4)序列 - 必须是容器型数据类型的数据

    ​ 例如:字符串、列表、字典、元组、集合、range、迭代器、生成器等。

    5): - 固定写法

    6)循环体 -

    结构上,循环体就是和for保持一个缩进的一条或者多条语句(至少一句)

    逻辑上,就是需要重复执行的代码

    例子:

    for x in 'abc':
        print('hello world!')
        print(100)
    
  • 执行过程

让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体。

(想要控制for循环的循环次数,只需要控制序列中元素的个数)

  1. range函数 - 创建等差数列
  • range(N) - 产生[0,N)的等差数列,差是1

例如: range(5) - 0,1,2,3,4

for x in range(10):
    print(x)
  • range(M,N) - 产生[M,N)的等差数列,差是1

例如:range(5,10) - 5,6,7,8,9

for x in range(5, 10):
    print(x)
  • range(M,N,step) - 产生[M,N)的等差数列,差是step

例如:range(10,20, 2) - 10,12,14,16,18

for i in range(10, 20, 2):
    print(i)
  1. for循环的应用
  • 累计求和

求和套路:

1)准备数据

2)定义变量保存最后的和(变量的默认值是0)

3)通过循环依次获取求和对象,得到一个求和对象就往保存的变量中加一个。

例子:求1-100的和

# 计算1+2+3+...+100的和
sum1 = 0
for x in range(1, 101):
    sum1 += x
print(sum1)

例子2:求总分

scores = [28, 34, 78, 90, 89, 96, 76, 99]
sum1 = 0
for i in scores:
    sum1 += i
print(sum1)
  • 统计个数

    1)定义变量保存最后的个数(变量默认值是0)

    2)通过循环获取每一个统计对象,获取到一个统计对象,个数就在原来的基础上加1

例子1:统计nums中偶数的个数

# 统计nums中偶数的个数
nums = [21, 23, 44, 89, 66, 70, 55]
count = 0
for i in nums:
    if i % 2 == 0:
        count += 1
print(count)

结果:

3

例子2:统计100以内偶数的个数

# 案例:统计100以内偶数的个数
count = 0
for x in range(0, 100, 2):
    count += 1
print(count)

结果:

50

  1. while循环
  • 语法:

    while 条件语句:

    ​ 循环体(需要重复执行的代码)

  • 执行过程

    不断判断条件语句是否为True,如果是就执行循环体,如果不是循环直接结束。

    控制次数的方式:保证条件一开始就是True,经历过指定次数以后条件会由True变成False。

    死循环:条件语句一直都是True。

    例子:打印0-100

    # 打印0,1,2,3,4,5,...,100
    num = 0
    while num <= 100:
        print(num)
        num += 1
    
  1. for循环和while循环的选择
  • 如果循环次数确定使用for循环;如果循环次数不确定,使用while循环。

  • 循环次数不确定 - 程序员在写代码时无法确定这个循环会重复多少次。

while True:
    需要执行的代码
    if 循环结束条件:
        break
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值