day03-分支和循环

本文详细介绍了Python编程中的变量、运算符和流程控制结构,包括顺序、分支和循环。讲解了if单分支、双分支和多分支结构,以及for循环的使用,并通过实例展示了如何根据条件执行不同代码块。还探讨了嵌套if和利用range()函数进行数字序列的生成。此外,文章提供了多个实战练习,帮助读者巩固所学知识。
摘要由CSDN通过智能技术生成

day03-分支和循环

回顾
  1. 变量

    命名规范:硬性, 非硬性

    变量赋值:同时赋值, 交换值

    底层原理

  2. 运算符

    算术运算符, 比较运算符, 逻辑运算符, 赋值运算符

    赋值运算符没有结果

    优先级

流程控制
"""
根据控制代码执行方式的不同,将代码分为3种结构:
1)顺序结构(默认)      -   代码从上往下按顺序依次执行,并且每条语句只执行一次
2)分支结构(if语句)    -   根据条件选择执行代码
3)循环结构(for,while)      -   让代码重复执行(代码写一遍,执行多次)
"""

顺序结构代码

a = 10
print(a)
分支结构
  1. if单分支结构 - 如果xxx就xxx
"""
语法:
if 条件语句:
    代码段

说明:
1) if - 关键字;固定写法
2) 条件语句 - 可以是任何有结果的表达式,例如:具体数据,已经赋值过的变量,有结果的某种运算的运算表达式
3) : - 固定写法(英文标点)
4) 代码段 - 结构上就是和if保持一个缩进1条或多条语句(至少一条);逻辑上就是满足条件才会执行的代码
"""

条件语句可以是任何有结果的表达式

if 19:
    print('满足条件才执行的代码')

练习1:根据年龄值打印’成年’

age = 18
if age >= 18:
    print('成年')

练习2:如果num能被4整除就打印’4的倍数’

num = 212
if num % 4 == 0:
    print('4的倍数')
  1. if双分支结构 - 如果xxx就xxx否则xxx
"""
语法:
if 条件语句:
    代码段1(条件成立时执行)
else:
    代码段2(条件不成立时执行)

补充:当条件语句不是布尔值,条件成立还是不成立看调价语句的结果转换成布尔值后是True还是False
    布尔类型转换 - 所有类型的数据都可以转换成布尔值
                转换的时候所有的零值和空值会转换成False,其他都是True
"""

练习:根据num的奇偶性打印’奇数’或者’偶数’

num = 31
if num % 2:
    print('奇数')
else:
    print('偶数')

练习2:根据year对应的年份打印’平年’ 或者 ‘闰年’

year = 2001
if (year % 4 == 0 and year % 100) or year % 400 == 0:
    print('闰年')
else:
    print('平年')

练习3:如果字符串str1是空串就打印’空字符串’,否则打印’非空字符串’

str1 = ''
if not str1:
    print('空字符串')
else:
    print('非空字符串')
  1. if多分支结构 - 根据不同条件做不同的事情:如果xxx就xxx,如果xxx就xxx,…
"""
方法1:    -   条件之间满足:如果其中一个条件成立,其他条件也可能成立
if 条件语句1:
    代码段1
if 条件语句2:
    代码段2
if 条件语句3:
    代码段3
...


方法2:    -   条件之间满足:如果其中一个条件成立,其他条件绝对不会成立
if 条件语句1:
    代码段1
elif 条件语句2:
    代码段2
elif 条件语句3:
    代码段3
...
else:
    代码段N
"""

如果考试100分-买车, 如果90多分-买电脑, 如果80多分-买鞋, 如果低于80分-打死

score = 82
if score == 100:
    print('买车')
if 90 <= score < 100:
    print('买电脑')
if 80 <= score < 90:
    print('买鞋')
if score < 80:
    print('打死')

# 方法2
if score == 100:
    print('买车')
elif 90 <= score < 100:
    print('买电脑')
elif 80 <= score < 90:
    print('买鞋')
elif score < 80:
    print('打死')

练习:根据年龄范围打印: 幼儿(03)、少年(417)、青年(1838)、中年(3969)、老年(70及70岁上)

age = 40
if age >= 70:
    print('老年')
elif age >= 39:
    print('中年')
elif age >= 18:
    print('青年')
elif age >= 4:
    print('少年')
elif age >= 0:
    print('幼儿')
else:
    print('年龄错误')
  1. if嵌套

根据num的值打印’偶数’,‘奇数’和’4的倍数’

例如:1->‘奇数’ 2->'偶数 16->‘偶数’,‘4的倍数’

num = 22
if not (num % 2):
    print('偶数')
    if not(num % 4):
        print('4的倍数')
else:
    print('奇数')
for循环
  1. for循环 - 让代码重复执行
"""
语法:
for 变量 in 序列:
    循环体
    
说明:
1)for,in - 关键字;固定写法
2)变量 - 变量名
3)序列 - 容器型数据类型的数据, 例如:字符串,列表,元组,集合,字典,迭代器,生成器,range
4): - 固定写法
5)循环体 - 结构上,循环体就是和for保持缩进的一条或者多条语句(至少一条);
          逻辑上,循环体中的代码就是需要重复执行的代码
          
执行过程:
    让变量去序列中取值,一个一个的取,取完为止,每取一个值就执行一次循环体.
for循环次数和序列中元素的个数有关
"""
  1. range函数 - 创建等差数列
"""
1)range(N) - 产生[0, N)的等差数列,差是1; 例如:range(3) - 0, 1, 2
2)range(M, N) - 产生[M, N)的等差数列,差是1; 例如:range(4, 7) - 4, 5, 6
2)range(M, N, step) - 产生[M, N)的等差数列,差是step; 
                      step > 0时M < N,例如:range(1, 10, 3) - 1, 4, 7
                      step < 0时M > N,例如:range(-1, -10, -3) - -1, -4, -7

"""
for i in range(-5, 5):
    print(i, end=' ')
print()

for i in range(-1, -10, -3):
    print(i, end=' ')
print()

练习:利用range函数产生一个数字序列: -1, 1, 3, 5, 7

for i in range(-1, 8, 2):
    print(i, end=' ')
print()

练习:利用range函数产生一个数字序列:0,1,2,3,4,5,6,7,8,9,10

for i in range(0, 11):
    print(i, end=' ')
print()

练习:利用range函数产生一个数字序列:0,3,6,9,12,15

for i in range(0, 16, 3):
    print(i, end=' ')
print()

产生:15, 13, 11, 9, 7

for i in range(15, 6, -2):
    print(i, end=' ')
print()
  1. 实战
  • 求和问题

练习1:用代码计算:1+2+3+…+100

sum1 = 0
for i in range(1, 101):
    sum1 += i
print(sum1)

练习2:求nums中所有元素的和

nums = [10, 29, 30, 40]
sum2 = 0
for i in nums:
    sum2 += i
print(sum2)

练习:求100以内所有奇数的和

sum3 = 0
for i in range(1, 100, 2):
    sum3 += i
print(sum3)

练习4:求nums中所有奇数的和

nums = [10, 29, 30, 25, 40, 8, 1]
sum4 = 0
for i in nums:
    if i % 2:
        sum4 += i
print(sum4)

练习5:计算100以内所有能被3整除或者能被5整除的数的和

sum5 = 0
for i in range(1, 100):
    if not (i % 3 and i % 5):
        sum5 += i
print(sum5)

sum5 = 0
for i in set(list(range(3, 100, 3)) + list(range(5, 100, 5))):
        sum5 += i
print(sum5)
  • 统计个数

练习1:统计100以内偶数的个数

print(len(range(2, 99, 2)))
count = 0
for i in range(2, 99, 2):
    count += 1
print(count)

练习2:统计100以内能被3整除或者能被4整除的数的个数

count = 0
for i in range(1, 100):
    if not (i % 3 and i % 4):
        count += 1
print(count)

count = 0
for i in set(list(range(3, 100, 3)) + list(range(4, 100, 4))):
    count += 1
print(count)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值