前言

        本篇主要讲结构化程序设计中三种基本结构在Python中是如何实现的,以及相关的流程控制。

        我们知道计算机的程序设计包括面向对象面向过程。面向对象程序设计在细节实现上,也需要面向过程的内容。而结构化程序设计就是面向过程的编程方法:顺序结构,分支结构,循环结构(三种基本流程)。而顺序结构就是根据程序从上到下按照顺序执行的代码顺序。下面就来介绍其他的流程控制:

python 结构 python结构化程序设计_python

 --------------------------------------------------------------------------------------------------------------------------------

目录

一、分支结构

二、循环结构

1.for循环结构:

 2.条件循环while:

3.控制循环流程的语句:

三、pass以及循环结构的else语句

一、分支结构

        if语句实现分支结构,格式如下:

1.简单分支语句:if

if <条件(逻辑表达式)>:
        ...(if执行语句块)
        ...(if执行语句块)
...

2.选择分支结构:if else

if <条件(逻辑表达式)>:
        ...
else:
        ...
...

3.多分支结构:if elif ... else

if <条件(逻辑表达式)>:
        ...
elif <条件>:
        ...
elif...
        ...
...
else:
        ...

    比如利用分支结构实现一个输入年和月输出当月天数:

year = eval(input("请输入年份:"))
month = eval(input("请输入月份:"))
day = 0
if month == 2:
    if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):  # 闰年
        day = 29
    else:  # 平年
        day = 28
elif month == 1 or month == 3 or month == 5 \
        or month == 7 or month == 8 or month == 10 or month == 12:  # 大月
    day = 31
else:  # 剩下的全是小月了
    day = 30
# print("{}年{}月一共有{}天".format(year, month, day))
print("%d年%d月一共有%d天" % (year, month, day))

 

python 结构 python结构化程序设计_循环结构_02

        特别的,对于如下结构:

a= b if 条件 else c

如果满足if条件,就将b给a,否则就把c给a。有点类似于C/C++三目运算符?:

        比如:

a = 3
b = 4
c = 0
c = a if a > b else b
print(c)

        注意Python下没有?:的用法哦。 

二、循环结构

        循环结构是在一定的条件控制下,反复执行其代码块的控制结构。Python中常见几种循环结构格式如下:

1.for循环结构:

for <var> in <seq>:

        ...

        解释:var是一个变量,seq是一个序列。可以理解为var逐一从seq提取元素,in在之前的字符串那里了解了一点点,也就是判断是否在此seq内,在也就是循环中就是继续执行,不在也就是遍历完了就False就退出。seq序列可以是字符串,列表,文件,或者range()函数等。

        range()函数:Python中的内置函数,用于创建一个整数列表,一般用于for循环中(注意虽然是列表,但是类型还是range类型,想转换为列表需要list()进行转换哦

        格式:range([start,] stop[, step])

        创建区间[start,stop)的列表,step表示每一次递增多少,默认为1。start默认从0开始。

ran1 = range(0, 5)  # [0 1 2 3 4]
ran2 = range(0, 5, 2)  # [0, 2, 4]
for i in ran1:
    print(i, end="")
print()
for j in ran2:
    print(j, end="")
print()
str1 = "abcde"
for z in str1:
    print(z)

python 结构 python结构化程序设计_python_03

  

        当然上面只是一个演示,平时可以直接在for循环里ran1写成range即可。

        下一利用for做一个应用:输入一个整数n,计算从1到n的阶乘之和:

def factorial(n):
    sum1 = 0
    num = 1
    for i in range(1, n + 1):
        num *= i
        sum1 += num
    return sum1


n = eval(input("请输入n值:"))
print("从1!到{}!的阶乘和为{}".format(n, factorial(n)))

 

python 结构 python结构化程序设计_循环结构_04

        def是定义函数的意思,返回值类型不用写,参数为n,在传参的时候识别类型。

 2.条件循环while:

while <条件>:
        ...

每次循环时,判断条件是否为True,是就继续循环,否则就退出循环语句。

        下面利用while循环,对列表里面的值进行头尾互换:

list1 = [1, 2, 3, 4]
head = 0
tail = len(list1) - 1
while head < tail:
    list1[head], list1[tail] = list1[tail], list1[head]
    head += 1
    tail -= 1
print(list1)

python 结构 python结构化程序设计_循环结构_05

         其中list1[head], list1[tail] = list1[tail], list1[head]语句就是表示head下标和tail下标元素互相交换的意思。

3.控制循环流程的语句:

        break:结束循环。

        continue:结束本次循环,执行下一次循环。

三、pass以及循环结构的else语句

        pass语句是空语句的意思,为了保持结构的完整性设计的。意思时将来会有程序语句代替pass所在位置,所以pass先将位置占好,提高程序的可读性。

        在其他语言中,else只会在分支结构出现,但是在Python中,为了对本次循环结束进行一些特殊说明,那么就可以对循环结构使用else语句,会在此循环结束后执行里面的内容。当然,如果存在break也会跳过else里面的内容:

# 比如我们识8为不正常数据,需要break
for i in range(8):
    if i == 8:
        break
else:
    print("正常结束")

for i in range(9):
    if i == 8:
        break
else:
    print("正常结束")

python 结构 python结构化程序设计_python_06

        可以发现只打印了一次正常结束,就说明第二个循环发生了break。