史上最全Python程序结构!!!

1 顺序结构

1.1 顺序结构含义

        顾名思义,在Python中,顺序结构就是指按照代码的顺序依次执行每个语句或操作的程序结构。顺序结构中的代码按照它们在源代码中出现的顺序依次执行,没有条件或循环来改变执行顺序。

1.2 顺序结构代码讲解

1.2.1 傻瓜式代码

a = 10
print(f"此时a的值为:{a}")
a = 20
print(f"此时a的值为:{a}")
a = 30
print(f"此时a的值为:{a}")
a = 40
print(f"此时a的值为:{a}")
a = 50
print(f"此时a的值为:{a}")

        显而易见,在这个代码中,我们对变量a赋值五次,每次赋的值都不同,而每次输出都是输出重新赋值,这就是一个典型的顺序结构,程序自上而下来运行。

1.2.2 进阶式代码

# 打印欢迎信息
print("欢迎来到Python编程!")

# 获取用户输入
name = input("请输入您的名字: ")

# 打印用户输入的名字
print(f"你好,{name}!")

# 打印退出信息
print("感谢使用Python编程,再见!")

        在上述代码中,每个语句都按照顺序依次执行。首先,打印欢迎信息,然后获取用户输入的名字,接着打印用户的名字,最后打印退出信息。没有条件或循环来改变代码执行的顺序。

        顺序结构在许多编程任务中都是常见的,特别是在执行一系列操作或指令的情况下。它是程序执行的基础,可以用于建立更复杂的程序结构,例如条件结构和循环结构。

        (由于顺序结构没有任何难度,演示到此,接下来讲解分支结构和循环结构)

2 分支结构

2.1 分支结构定义

        分支结构也叫选择结构可以理解成我们的程序像一棵树,有很多树杈,程序入口就像是树根,而程序的结束口就像是由树枝连接的每一片叶子,这时候一只虫子从数根向其中的一片叶子出发,而每一个分岔口都需要进行选择树枝才能最终到达自己想要的那片叶子。

2.2 分支结构关键字语句讲解

2.2.1 if语句

        在Python的分支结构中,if语句用于根据条件的真假来选择性地执行特定的代码块。

if condition:
    # 执行条件为真时的代码块
  1. "condition"是一个表达式,用于判断条件的真假。如果条件为真,就会执行if语句后面缩进的代码块。
  2. 如果“condition”不成立,程序就会跳过if语句中的代码块
  3. ":"冒号是必需的,用于表示代码块的开始。
  4. 代码块是通过缩进来标识的,通常使用四个空格或一个制表符进行缩进。

2.2.2 if-else语句

        在Python的分支结构中,if-else语句用于根据条件的真假选择性地执行不同的代码块。

# 获取用户输入的数字
number = int(input("请输入一个数字: "))

# 判断数字是否为正数
if number > 0:
    print("这是一个正数.")
else:
    print("这不是一个正数.")
  1. 在上述代码中,如果用户输入的数字大于0,if语句的条件为真,就会执行if语句块中的代码,打印出"这是一个正数";如果条件为假,就会执行else语句块中的代码,打印出"这不是一个正数"。
  2. condition是一个表达式,用于判断条件的真假。如果条件为真,就会执行if语句后面缩进的代码块;如果条件为假,就会执行else语句后面缩进的代码块。
  3. if-else语句允许根据条件的真假选择性地执行不同的代码块,使程序具有根据条件做出不同响应的能力。
  4. if的语句块和else的语句块必定会执行一个。(在后续单分支双分支会讲到)

2.2.3 if-elif-(else)语句

        需要注意的是,if-else语句只能处理两种可能的情况,即条件为真和条件为假。如果需要处理多个条件,可以使用if-elif-else语句,其中else用于添加额外的条件分支。

# 获取用户输入的分数
score = int(input("请输入你的分数: "))

# 判断分数等级
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("中等")
elif score >= 60:
    print("及格")
else:
    print("不及格")
  1. 在上述代码中,根据用户输入的分数,根据条件的真假选择性地执行相应的代码块,并打印出相应的分数等级。
  2. 这些是使用if-else语句在Python中定义分支结构的基本方式。根据条件的真假选择性地执行不同的代码块,并根据需要使用elif和else来处理条件的多种情况。
  3. 程序中也可以没有else语句,等同于if语句,只是多了几个elif作为选择条件。

2.3 单双分支讲解

2.3.1 单双分支定义

        在Python中,单分支结构和双分支结构都是条件语句,用于在程序中根据不同的条件执行不同的代码块。单分支结构使用if语句,表示如果条件为真,则执行相应的代码块;如果条件为假,则跳过代码块。双分支结构使用if语句和else语句,表示如果条件为真,则执行if语句中的代码块,如果条件为假,则执行else语句中的代码块。(代码可以参考上边)

2.3.2 嵌套分支

        在Python的分支结构中,可以使用嵌套的if-else语句来处理更复杂的条件情况。嵌套分支是指在一个分支结构内部嵌套另一个分支结构。

# 获取用户输入的数字
number = int(input("请输入一个数字: "))

# 判断数字的正负
if number > 0:
    print("这是一个正数.")
elif number < 0:
    print("这是一个负数.")
else:
    print("这是零.")

# 判断数字的奇偶性
if number % 2 == 0:
    print("这是一个偶数.")
else:
    print("这是一个奇数.")
  1. 在上述代码中,首先使用一个if-elif-else语句判断数字的正负,根据条件的真假选择性地执行相应的代码块。接着,在外层分支的每个代码块内部,又使用了一个独立的if-else语句来判断数字的奇偶性。通过嵌套分支,可以根据不同的条件进行多层次的判断和处理。
  2. 需要注意的是,嵌套分支结构要注意代码的缩进和逻辑的正确性。每一层的代码块都需要进行适当的缩进,以正确表示层次关系。
  3. 嵌套分支结构可以根据需要进行多层嵌套,以处理更复杂的条件情况。然而,过多的嵌套可能会导致代码可读性降低,所以在编写代码时应尽量保持代码简洁和可读性。
  4. 这是使用嵌套分支的一种方式,可以根据实际需求和条件情况进行适当的嵌套和处理。

3 循环结构

3.1 while循环

3.1.1 while循环定义

         在Python中,while循环用于重复执行一段代码,直到给定的条件不再满足。

        for循环的基本语法如下:

while condition:
    # 循环体代码
  1. condition是一个表达式,用于判断循环是否应该继续执行。只要条件为真,循环就会一直执行循环体中的代码。
  2. 冒号是必需的,用于表示循环体的开始。
  3. 循环体是通过缩进来标识的,通常使用四个空格或一个制表符进行缩进。

3.1.2 while循环示例

        以下是一个简单的例子,演示如何使用while循环打印从1到5的数字:

# 初始化计数器
count = 1

# 循环打印数字
while count <= 5:
    print(count)
    count += 1
  1. 在上述代码中,初始计数器count被设置为1。然后,while循环检查条件count <= 5,如果为真,则执行循环体中的代码。循环体中的代码打印当前的计数器值,并将计数器递增1。循环继续执行,直到计数器的值大于5,即条件不再满足时,循环结束。

  2. 需要注意的是,如果循环条件一开始就不满足,循环体中的代码将不会执行。

  3. 在使用while循环时,需要小心避免进入无限循环的情况。为了避免无限循环,需要确保循环条件能够在循环的某个点变为假,或者在循环体内使用适当的控制语句(例如break语句)来提前终止循环。

  4. while循环提供了一种在满足特定条件时重复执行代码的方式,可以根据需要自定义循环条件和循环体,以实现不同的循环逻辑。

3.2 for循环

3.2.1 for循环定义

        在Python中,for循环用于迭代遍历可迭代对象(例如列表、字符串、元组等)中的元素,执行相应的操作。

        for循环的基本语法如下:

for item in iterable:
    # 循环体代码
  1. item是一个变量,在每次循环迭代时,将被赋值为可迭代对象中的当前元素。
  2. 是一个可迭代对象,例如列表、字符串等,包含要迭代的元素。
  3. ":"冒号是必需的,用于表示循环体的开始。
  4. 循环体是通过缩进来标识的,通常使用四个空格或一个制表符进行缩进。

        以下是一个简单的例子,演示如何使用for循环遍历列表中的元素并打印出来:

# 定义一个列表
fruits = ['apple', 'banana', 'orange']

# 遍历列表元素并打印
for fruit in fruits:
    print(fruit)
  1. 在上述代码中,for循环遍历了列表fruits中的元素,并将每个元素赋值给变量fruit。然后,循环体中的代码打印出当前的水果名称。循环会依次迭代列表中的每个元素,并输出它们。

  2. 除了列表,for循环还可以用于遍历其他可迭代对象,例如字符串、元组等。

        以下是一个示例,演示如何使用for循环遍历字符串中的字符并打印出来:

# 定义一个字符串
message = "Hello, World!"

# 遍历字符串中的字符并打印
for char in message:
    print(char)
  1. 在上述代码中,for循环遍历了字符串message中的每个字符,并将每个字符赋值给变量char。然后循环体中的代码打印出当前的字符。

  2. for循环提供了一种简洁和方便的方式来遍历可迭代对象中的元素,可以根据需要自定义变量和循环体,以实现不同的循环逻辑。

3.2.1 for循环示例

        range()函数是一个常用的工具,通常与for循环结合使用,用于生成指定范围内的整数序列。

        当使用range()函数和for循环结合使用时,可以用来遍历指定范围内的整数序列,并对每个元素执行相应的操作。以下是一个示例,演示如何使用range()函数和for()循环计算1到10的整数的平方:

# 遍历范围内的整数并计算平方
for num in range(1, 11):
    square = num ** 2
    print(f"{num}的平方为:{square}")

        在上述示例中,range(1, 11)生成了一个整数序列1到10。for循环使用迭代变量num遍历该序列,并在每次迭代时计算当前整数的平方。计算结果存储在变量square中,然后使用print()函数打印出每个整数及其平方的结果。

输出结果将是:

1的平方为:1
2的平方为:4
3的平方为:9
4的平方为:16
5的平方为:25
6的平方为:36
7的平方为:49
8的平方为:64
9的平方为:81
10的平方为:100

        通过结合range()函数和for循环,可以方便地遍历指定范围内的整数,并对每个整数执行相应的操作。这种组合常用于需要处理特定范围的数据的情况,例如迭代计算、数据转换等。

3.2.2 拓展range()

        range()函数是Python中用于生成整数序列的内置函数。它返回一个可迭代对象,可以用于迭代遍历整数序列。

        range()函数的基本语法如下:

range(stop)
range(start, stop, step)
  1. stop:必需参数,指定生成的整数序列的结束值(不包含在序列中)。
  2. start:可选参数,指定生成的整数序列的起始值,默认为0。
  3. step:可选参数,指定生成的整数序列中每个元素之间的步长,默认为1。
  4. range()函数根据提供的参数生成一个整数序列,并返回一个迭代器对象。该迭代器对象可以用于在循环中遍历整数序列的元素。

3.3 双层循环

        双层循环是指在循环体内部嵌套另一个循环。在Python中,可以使用嵌套的while或者for循环来实现双层循环的逻辑。也可以for和while互相多层嵌套。

row = 1
while row <= 9:
    column = 1
    while column <= row:
        product = row * column
        print(f"{column} * {row} = {product}\t", end="")
        column += 1
    print()
    row += 1
  1. 在上述代码中,外层while循环用于控制乘法表的行数,row表示当前行数。内层while循环用于控制每行中的列数,column表示当前列数。在每次内层循环迭代时,计算乘积并打印出来。内层循环完成后,通过print()函数换行,然后外层循环继续迭代到下一行。
  2. 双层循环的嵌套可以用于处理复杂的迭代逻辑,其中内层循环的迭代次数受外层循环的控制。通过合理地设计循环条件和嵌套逻辑,可以实现各种复杂的迭代和计算操作。
  3. 需要注意的是,双层循环的嵌套可以导致执行次数的增加,因此在设计时需要谨慎考虑效率和性能问题,避免无限循环或循环次数过多的情况发生。

        以下是使用双层for循环打印九九乘法表的示例代码:

for row in range(1, 10):
    for column in range(1, row + 1):
        product = row * column
        print(f"{column} * {row} = {product}\t", end="")
    print()
for row in range(1, 10):
    for column in range(1, row + 1):
        product = row * column
        print(f"{column} * {row} = {product}\t", end="")
    print()
  1. 在上述代码中,外层的for循环控制乘法表的行数,使用range(1, 10)生成1到9的整数序列。变量row表示当前行数。
  2. 内层的for循环控制每行中的列数,使用range(1, row + 1)生成1到当前行数的整数序列。变量column表示当前列数。
  3. 在每次内层循环迭代时,计算乘积并打印出来。使用end=""参数确保在打印后不换行。内层循环完成后,通过print()函数换行,然后外层循环继续迭代到下一行。
  4. 使用双层for循环可以更简洁地实现九九乘法表,但与使用双层while循环相比,思路和逻辑是相同的。只需根据for循环的特性进行相应的调整即可。

3.4 for和while对比

        for循环和while循环是Python中用于重复执行一段代码的两种主要循环结构。它们在循环逻辑和应用场景上有一些区别。

  1. 适用范围:

    • for循环适用于遍历可迭代对象中的元素,例如列表、字符串、元组等。它提供了一种简洁的方式来循环访问序列中的每个元素。
    • while循环适用于根据条件的真假重复执行代码块。它在执行前不需要明确指定迭代次数,而是在满足特定条件时继续循环。
  2. 循环条件:

    • for循环的迭代次数由可迭代对象的长度决定,循环会自动遍历并访问每个元素。
    • while循环的迭代次数由循环条件的真假决定,循环会在条件为真时重复执行,直到条件不满足时终止。
  3. 控制方式:

    • for循环是通过迭代来控制循环的,它会在每次迭代时自动获取下一个元素,直到可迭代对象中的所有元素都被访问。
    • while循环是通过循环条件来控制循环的,它会在每次迭代前检查条件是否为真,只有条件为真时才执行循环体中的代码。
  4. 初始化和更新:

    • for循环不需要手动初始化和更新迭代变量,它会自动迭代可迭代对象中的元素。
    • while循环通常需要在循环前手动初始化变量,并在循环体内更新变量的值,以确保循环终止条件最终为假。

        选择使用for循环还是while循环取决于具体的需求和情况。一般来说,当需要对一组已知元素进行迭代时,使用for循环更方便。而当需要根据特定条件重复执行代码块时,使用while循环更合适。

        在实际应用中,for循环通常用于遍历和处理集合、列表、字符串等可迭代对象,而while循环则常用于需要根据某种条件执行代码块的情况,例如输入验证、计数器控制等。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值