python分支结构

简介: python分支结构详解

程序结构

  • 程序三种结构

    • 顺序
    • 循环
    • 分支

分支结构

  • 分支结构基本语法

    if 条件表达式

      语句一
      语句二
      语句三
      ......
  • 条件表达式就是计算结果必须为布尔值的表达式
  • 表达式后面的冒号不能少
  • 注意if后面出现的语句,如果属于if语句块,则必须同一缩进等级
  • 条件表达式结果为True执行if后面的缩进的语句块
# if 语句联系
# 如果你们都给我钱,我就发财了
a = " "

# 字符串的真假:
# 只有空字符串为False,其余全为True
if a:
    print("我就发财了")
    print("哈哈")
     
print("日子还得过呀")
我就发财了
哈哈
日子还得过呀


# if联系二

age = 19

if age > 16:
    print("喝酒去")
    
print("下次你请我")
喝酒去
下次你请我

双向分支

  • if...else...表达
  • 语法结构:
        if条件表达式:
            语句一
            语句二
            ...
        else:
            语句一
            语句二
            ...

# if 双向分支

# 如果你们都给我钱,我就发财了
a = " "

# 字符串的真假:
# 只有空字符串为False,其余全为True
if a:
    print("我就发财了")
    print("哈哈")
else:
    print("emmmm")
    print("继续吃土吧")
     
print("日子还得过呀")
我就发财了
哈哈
日子还得过呀


# input的作用的是
# 1. 在屏幕上输出括号内的字符串
# 2. 接收用户输入的内容并返回到程序
# 3. input返回的内容一定是字符串类型

# input负责接收用户输入并把内容返回给变量
gender = input("请输入您的性别")
#打印输入的内容
print(gender)

if gender == "man":
    print("走,抽烟喝酒剃头")
    print("一起玩儿去呀")
else:
    print("你到底是个啥子呀")
    print("对不起,我是男生")
请输入您的性别man
man
走,抽烟喝酒剃头
一起玩儿去呀


# 考试成绩判断
# 成绩由用户输入
# 90以上:输出优秀
# 80-90:良
# 70-80:中
# 60-70:平
# 60以下: 输出: 我没你这傻学生

# 输入成绩,需要用到input函数
# input输入的值全部是字符串类型
score = input("请输入成绩,必须是数字呀")

# 解决输入是字符串的问题
score = int(score)
if score >= 90:
    print("你考得很好呀,小朋友")
if score >= 80 and score < 90:
    print("凉凉")
if score >= 70 and score <70:
    print("也行")
if score >= 60 and score <70: 
    print("就这么着吧")
if score < 60:
    print("下次接着考")
请输入成绩,必须是数字呀1
下次接着考

多路分支

  • 很多分支的情况,叫多路分支

    if 条件表达式:

    语句1
    ...

    elif 条件表达式:

    语句1
    ...

    elif 条件表达式:

    语句1
    ...

    else:

    语句1
    ... ...
    
  • elif可以有好多个,根据实际情况
  • else可选
  • 多路分支最多只会执行一种情况

if语句补充

  • if语句可以嵌套使用,不推荐
  • python没有switch语句
# score  存放学生的成绩
# 注意input的返回值类型
score = input("请输入学生成绩:")
# 需要把str转换成int
score = int(score)

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("起开,我没你这傻学生")
请输入学生成绩:90
A

循环语句

  • 重复执行某一固定的动作或者任务
  • 分类

    • for
    • while

for循环

  • 语法

    for 变量 in 序列:

    语句1
    语句2
    ...
    
# for循环案例
# 比如[1,2,3,4,5,6,7]

list_one = [1,2,3,4,5,6,7]

for num in list_one:
    print(num)
    print(num+100)
    print(num+1000)
1
101
1001
2
102
1002
3
103
1003
4
104
1004
5
105
1005
6
106
1006
7
107
1007


# 打印学生列表姓名
# 如果是jingjing,那肯定是我的最爱呀
# 如果是别的学生,那要冷酷的拒绝他

stu_list = ['王大眼','李美丽','王晓静']

for stu in stu_list:
    if stu == "王晓静":
        print("晓静你去了哪里")
    else:
        print("对不起同学,饶了老衲吧")
对不起同学,饶了老衲吧
对不起同学,饶了老衲吧
晓静你去了哪里

for-else语句

  • for循环结束的时候,有时候需要执行一些收尾工作,此时需要使用else语句
  • else语句是可选的
# for-else语句
# 打印列表中的同学
# 如果没有在列表中,或者列表结束了,我们需要打印提示语句,表示不再爱了

stu_list = ['王大眼','李美丽','王晓静']

for stu in stu_list:
    if stu == "王晓静":
        print("晓静你去了哪里")
    else:
        print("对不起同学,饶了老衲吧")
else:
    print("不会再爱了")
对不起同学,饶了老衲吧
对不起同学,饶了老衲吧
晓静你去了哪里
不会再爱了

break,continue,pass

  • break:无条件结束整个循环,简称循环猝死
  • continue:继续
  • pass:只是占位符号,代表这句话啥也不干,没有跳过功能
# 确定一个数字队列中是否包含数字7
# 确定是否包含,只要找到一个即可确定,不需要再继续往下找了,所以使用break

dig_list = [3,4,6,7,54,3,23,2,4,7]

for dig in dig_list:
    if dig == 7:
        print("哈哈哈,找到了")
        break
    else:
        print(dig)
3
4
6
哈哈哈,找到了


# continue语句练习
# 在数字1-10中,寻找所有偶数,找到偶数后打印偶数

dig_list = [1,2,3,4,5,6,7,8,9,10]

'''
# continue案例1

for dig in dig_list:
    if dig % 2 == 0:
        print(dig)
        print("哈哈,你是个双的")
    else:
        continue
'''

# 此段代码跟上面代码等价
for dig in dig_list:
    if dig % 2 == 1:
        continue
        
    print(dig)    
    print("哈哈,你是个双的")
2
哈哈,你是个双的
4
哈哈,你是个双的
6
哈哈,你是个双的
8
哈哈,你是个双的
10
哈哈,你是个双的


# pass案例1

age = 19
if age > 19:
    pass
else:
    print("你还小")
你还小


# pass案例2

ages = [2,23,43,54,65,2]
for age in ages:
    pass
    print(age)
2
23
43
54
65
2

range函数

  • 生成有序数列
  • 生成数字队列可以定制
# range案例1
# 生成一个从1到100的数字序列
# range的生成序列的两个数字是左包括右边不包括
dig_list = range(1,101)
for dig in dig_list:
    print(dig)
    
# 一般在python中,连个表示范围的数字都是左包括右边不包括,randint函数是个特例
# range函数在python2.x和python3.x中有严重区别
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100


# range3
# 打印从1到9的数字
for i in range(1,10):
    print(i)
1
2
3
4
5
6
7
8
9

while循环

  • 一个循环语句
  • 表示当条件成立的时候,就循环,适应于不知道具体循环次数,但能确定在某个条件成立的情况下就循环
  • while语法

    while 条件表达式:

    语句块
    

    另外一种表达方法

    while 条件表达式:

    语句块1

    else:

    语句块2
    
    
# 如果说年利率是6.7%,本利是每年翻滚,则多少年后本金会翻倍

benqian = 10000
year = 0 # 存放需要翻本的年数

while benqian < 20000:
    benqian = benqian * (1 + 0.067)
    year += 1      # year = year + 1
    
print(year)

# 年利率案例2
# 本案例中循环体没有被执行
while benqian < 20000:
    benqian = benqian * (1 + 0.067)
    year += 1      # year = year + 1
else:
    print(year)
11
11
目录
相关文章
|
3月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
274 1
|
28天前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
52 8
|
1月前
|
算法 定位技术 Python
震惊!Python 图结构竟然可以这样玩?DFS&BFS 遍历技巧大公开
在 Python 编程中,图是一种重要的数据结构,而深度优先搜索(DFS)和广度优先搜索(BFS)是遍历图的两种关键算法。本文将通过定义图的数据结构、实现 DFS 和 BFS 算法,并通过具体示例展示其应用,帮助读者深入理解这两种算法。DFS 适用于寻找路径和检查图连通性,而 BFS 适用于寻找最短路径。掌握这些技巧,可以更高效地解决与图相关的复杂问题。
28 2
|
1月前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
31 2
|
1月前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
33 3
|
1月前
|
算法 测试技术 开发者
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗
在Python开发中,性能优化和代码审查至关重要。性能优化通过改进代码结构和算法提高程序运行速度,减少资源消耗;代码审查通过检查源代码发现潜在问题,提高代码质量和团队协作效率。本文介绍了一些实用的技巧和工具,帮助开发者提升开发效率。
46 3
|
1月前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
16 0
|
1月前
|
Python
SciPy 教程 之 SciPy 图结构 2
《SciPy 教程 之 SciPy 图结构 2》介绍了图结构作为算法学中的重要框架,通过 `scipy.sparse.csgraph` 模块处理图结构。文章示例展示了如何使用 `connected_components()` 方法查找所有连接组件,通过创建稀疏矩阵并调用该方法实现。
13 0
|
1月前
|
算法 Python
SciPy 教程 之 SciPy 图结构 1
SciPy 图结构教程介绍了图的基本概念及其在算法中的应用。图由节点和边组成,节点代表对象,边表示对象间的连接。SciPy 的 `scipy.sparse.csgraph` 模块提供了处理图结构的工具。邻接矩阵用于表示节点间的连接关系,分为有向图和无向图两种类型。无向图的边是双向的,而有向图的边则有明确的方向。
31 0
|
2月前
|
自然语言处理 Java 编译器
为什么要看 Python 源码?它的结构长什么样子?
为什么要看 Python 源码?它的结构长什么样子?
40 2