从C到Py:程序的流程控制

在本篇文章当中,我们将讲解Python中程序的流程控制。首先我们可以了解程序的描述方式,主要包括自然语言(直接描述)、流程图(图形、流程线和文字描述)、伪代码(程序较小,用代码描述)。

再者是程序的组织结构:顺序结构、选择结构(分支结构)、循环结构。

目录

顺序结构

选择结构

模式匹配

循环结构

图形打印实例

跳转语句和空语句


顺序结构

按程序语句的自然顺序,从上到下依次执行。

赋值语句的顺序则是从左到右,这也是相同优先级下的顺序。

选择结构

1、if语句

结构:  if expression:

                  语句块

实际上if等一类的语句使用都是与C语言中对应的相通的,这里不再赘述语句的逻辑。最大的区别主要是Python代码使用缩进来区分结构,如上方的if语句,第二行就要比第一行向后一个缩进。当然,如果if语句块中只有一句代码,可以直接写在后面

2、双分支结构

if expression:   

else:

3、多分支结构

if 表达式1:

elif 表达式2:   (这里是不同于C语言的 else if 的)

elif ......

else

选择结构十分灵活,可以嵌套使用。

模式匹配

虽然Python中没有Switch语句,但是在Python3.11版本后具有了新特性模式匹配。用到match语句,match score:case 'A': ... case 'B': ...。不需要break语句,对数据类型的判别也比较方便。以下为实例:

x=input('x:')
match x:
    case '1':
        print(1)
    case '2':
        print(2)
    case '3':
        print(3)

循环结构

1、for循环

for 循环变量 in 历边对象:

    语句块

这一部分的逻辑相较C语言差别较大,首先此处的循环变量相当于直接创建一个变量,历边对象的类型也没有限制,且默认全部历边。我们先拿熟知的字符串举例:

for i in 'hello':
    print(i)
# 输出结果为:
# h 
# e
# l
# l
# o

 同时要介绍range(n,m)函数,产生一个[n,m)序列,包含n但不包含m,可以方便的历边数字。

for i in range(1,11):
    print(i)
# 结果将输出1到10的数字

2、for else循环

for 循环变量 in 历边对象:

    语句块1

else:

    语句块2

else后的只有在循环正常结束之后才执行,遇到break语句中止循环等情况都属于非正常结束。

3、无限循环while

while 表达式:

    语句块

会直接无限次循环执行语句。

而同样也有while else 循环结构,在程序正常结束之后执行else后的语句。

图形打印实例

接下来我们使用已经掌握的知识编写一个打印菱形的程序。

row=eval(input('请输入菱形的行数:'))
while row % 2==0:
    print('不能是偶数,重新输入:')
    row=eval(input('请输入菱形的行数:'))

top_row=(row+1)//2  # 上部分菱形的行数
for i in range(1, top_row+1):
    for j in range(1, top_row+1-i):
        print(' ', end='')
        # 打印空格,end=''是为了空格相连而不换行
    for k in range(1, i*2):
        print('*', end='')
        # 打印*号
    print()  # 换行
bottom_row=row//2  # 下半部分的行数
for i in range(1, bottom_row+1):
    for j in range(1, i+1):
        print(' ', end='')
    for k in range(1, 2*(bottom_row-i+1)):
        print('*', end='')
    print()

跳转语句和空语句

跳转语句主要有break语句和continue语句,他们的概念和C语言中的相同,break是中止一层的循环,continue是跳转到下一轮循环,无视当前轮次之后的语句

在Python中还有一种空语句 pass ,这个语句并不会产生任何效果,但仍然是一句正确的代码,通常我们在需要运行某一部分代码,但不需要它产生任何实际影响的情况下使用。

  • 9
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值