Python Day3 分支和结构【零基础】

发布于:2023-02-18 ⋅ 阅读:(454) ⋅ 点赞:(0)

Day3 分支和结构

在学习编程的过程中是万万不能少了分支的,那么来一起看看在Python里的分支结构是怎么样的吧!

1. 分支结构

1.if多分支结构 - 如果xxx就xxx,如果xxx就xxx,如果xxx就xxx,…(根据不同的条件做不同的事情)

  • 方法1:直接多个单分支结构
if 条件1:
    代码段1
if 条件2:
    代码段2
if 条件3:
    代码段3
  • 方法2:使用elif的多分支结构
if 条件1:
    代码段1
elif 条件2:
    代码段2
elif 条件3:
    代码3
...
else:
    代码段N

注:
方法1:从上往下判断条件,每个条件都会被判断,且执行所有符合条件的代码块。
方法2:从上往下判断条件,遇到某个条件成立时就执行其代码块,后面的条件就直接忽略,整个结构中只执行一个条件。

1.2 案列

  1. 案列1:根据百分制分数,给学生打等级:A(大于等于90分)、B([80, 90))、C([60, 90))、C(小于60)
  • 方法1:
score = 95
if score >= 90:
    print('A')
if 80 <= score < 90:
    print('B')
if 60 <= score < 80:
    print('C')
if score < 60:
    print('D')

A

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

请输入您的分数:99
A

  1. 案例2:如果num是偶数就打印偶数,是奇数打印奇数,再判断是否是3的倍数,如果num能被4整除,打印’4的倍数’
# 3  ->  奇数
# 6  -> 偶数
# 8  -> 偶数、4的倍数
num = int(input('请输入一个整数:'))
if num % 2 == 0:
    print('偶数')
    if num % 4 == 0:
        print('4的倍数')
else:
    print('奇数')
    if num % 3 == 0:
        print('是3的倍数')

请输入一个整数:56
偶数
4的倍数

注:print的缩进和哪个条件一致,就打印哪个条件执行的结果

2. for循环

2.1 循环结构

循环结构 - 让代码重复执行

for _ in range(5):
    print(100)

100
100
100
100
100

2.2 for循环

  1. 语法:
for 变量 in 序列:
    循环体
  1. 说明:
    1)for:关键字,固定写法
    2)变量:变量名,可以是已经被定义过的,也可以没有被定义过的变量的变量名
    3)in:关键字,固定写法
    4)序列:必须是容器型数据类型的数据,列如:字符串、列表、字典、元组、集合、range、迭代器、生成器等
    5): :冒号,固定写法
    6)循环体:
  • 结构上:循环体就是和for后面的语句保持一个缩进的语句(可以是多条,至少是一条)
  • 逻辑上:就是需要重复执行的代码(块)
  1. 执行过程:让变量去序列中取值,取一个值执行一次循环体,直到序列中的值被取完为止。想要控制循环次数,就直接控制序列元素个数即可。
for i in 'abc':
    print('i:', i)
    print('Hello World')
    print(100)

i: a
Hello World
100
i: b
Hello World
100
i: c
Hello World
100

for i in 'abc':
    print('Hello World!')

Hello World!
Hello World!
Hello World!

2.3 range函数

作用:创建等差数列
1)range(N) - 产生[0, N)的等差数列,差是1
列如:
range(5) - 0,1,2,3,4
range(6) - 0,1,2,3,4,5

for i in range(10):
    print(i)

0
1
2
3
4
5
6
7
8
9

2)range(M, N) - 产生[M, N)的等差数列,差是1
列如:range(5, 10) - 5,6,7,8,9

for i in range(10, 15):
    print(i)

10
11
12
13
14

3)range(M, N, step) - 产生[M, N)的等差数列,差是step
列如:
range(10, 20, 2) - 10,12,14,16,18
range(9, 0, -2) - 9, 7, 5, 3,1

for i in range(10, 20, 2):
    print(i)

10
12
14
16
18

3. for的应用

3.1 累积求和

  1. 求和套路:
    1)准备数据
    2)定义变量保存最后求和结果(变量默认值一般是0)
    3)通过循环依次获取求和对象,得到的对象就逐一保存到结果变量中
  2. 练习
  • 计算1+2+3+4+…+100的和
sum1 = 0
for i in range(1, 101):
    sum1 += i  # sun1 = sum1 + i
print(sum1)

5050

  • 计算列表中的总和
scores = [28, 34, 78, 90, 89, 96, 76, 99]
sum1 = 0
for x in scores:
    sum1 += x
print(sum1)

590

  • 练习1:求2+3+4+…+50的和
sum1 = 0
for i in range(2, 51):
    sum1 += i
print(sum1)

1274

  • 练习2:求3+6+9+12+…+99的和
sum2 = 0
for i in range(3, 100, 3):
    sum2 += i
print(sum2)

1683

  • 练习3:求100以内所有偶数的和
# 0+2+4+6+...+98
sum3 = 0
for i in range(0, 100, 2):
    sum3 += i
print(sum3)

2450

  • 练习4:求100以内所有能被3整除但是不能被5整除的数的和
# 3+6+9+12+18+21+24+27+...+99
# 方法1:
sum4 = 0
for i in range(100):
    if i % 3 == 0 and i % 5 != 0:
        sum4 += i
print(sum4)

# 方法2:
sum4 = 0
for i in range(100):
    if i % 3 == 0:
        if i % 5 != 0:
            sum4 += i
print(sum4)

# 方法3:
sum4 = 0
for i in range(3, 100, 3):
    if i % 5 != 0:
        sum4 += i
print(sum4)

1368
1368
1368

  • 练习5:已知列表list1,求列表中所有数字的和
sum5 = 0
list1 = [10, 1.23, 'abc', True, 20, 'mn', None]
for i in list1:
    if type(i) == int or type(i) == float:
        sum5 += i
print(sum5)

31.23

3.2 统计个数

  1. 方法
    1)统计序列中元素个数,并保存到事先定义好的变量中(变量默认值一般为0)
    2)通过循环获取每一个统计对象,获取一个对象,变量值就加1
  2. 练习
  • 练习1:统计100以内偶数的个数
count = 0
for x in range(0, 100, 2):
    count += 1
print(count)

50

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

3

  • 练习3:统计scores中不及格学生的人数
scores = [99, 80, 67, 55, 40, 81, 72, 51]
count = 0
for x in scores:
    if x < 60:
        count += 1
print(count)

3

  • 练习4:统计nums中个位数大于5的数的个数
nums = [21, 23, 44, 89, 70, 66, 55]
count = 0
for x in nums:
    if x % 10 > 5:
        count += 1
print(count)

2

4. while循环

4.1 语法

while 条件语句:
    循环体(需要重复执行的代码)
其他代码

执行过程:
1)不断判断条件语句是否为True,如果是就执行循环体,如果不是就不再执行循环体。
2)控制次数的方式:保证条件一开始是True,经历过指定次数以后由True变成False
3)死循环 - 条件语句一直都是True,那就一直执行
练习:打印0-100

i = 0
while i <= 100:
    print(i)
    i += 1

0
1
2

98
99
100

4.2 for循环和while循环的选择

1)如果循环次数确定,使用for循环
2)如果循环次数不确定,使用while循环

  • 循环次数不确定 - 程序员写代码时自己都不知道要重复多少次(次数是由使用程序的用户确定的)
"""
提示用户输入密码,直到输入正确为止:
156324

请输入密码(6位):726162
请输入密码(6位):615252
请输入密码(6位):192822
....
请输入密码(6位):156324
"""
pw = '156234'
value = None
while value != pw:
    value = input('请输入密码(6位):')

请输入密码(6位):123456
请输入密码(6位):156234

while True:
    需要重执行代码
    if 循环结束条件:
        break
本文含有隐藏内容,请 开通VIP 后查看