Python编程基础:顺序结构、循环结构、程序跳转语句、pass空语句

发布时间:2024年01月04日

Python是一种简单而强大的编程语言,它提供了多种结构和语句,使得程序编写变得更加灵活和高效。在本文中,将介绍Python中的顺序结构、循环结构、程序跳转语句以及pass空语句,并解释如何正确使用它们。

程序的描述方式

自然语言

自然语言:就是使用人类语言,直接描述程序,比如说要去计算一个圆的周长和面积,就可以使用之前所学过的IPO方式去进行描述。

在这里插入图片描述

流程图

流程图:是用一系列图形、流程线和文字描述程序的基本操作和控制流程,主要适用于较短的算法。

在这里插入图片描述
在这里插入图片描述

伪代码

伪代码:是介于自然语言和编程语言之间的一种算法描述语言,如果程序比较小,可以直接使用代码描述。

在这里插入图片描述

程序的组织结构

在这里插入图片描述

顺序结构

顺序结构:按程序语句的自然顺序,从上到下,依次执行每条语句的程序,它是程序当中最基本的语句。

在这里插入图片描述

在这里插入图片描述

# 顺序结构
# 赋值运算符的顺序,从右到左,先计算右侧的结果,再赋值给左侧的变量
name='摔跤猫子'
age=20
a=b=c=d=100 # 链式赋值
a,b,c,d='摔跤猫子' # 字符串分解赋值
print(a)
print(b)
print(c)
print(d)
print('----------典型的顺序结构:输入/输出语句----------')
name=input('请输入您的姓名:')
age=eval(input('请输入您的年龄:'))
print('您的姓名为:',name,',您的年龄为:',age)

选择结构

选择结构:也称分支结构,是按照条件选择执行不同的代码段。

在这里插入图片描述
在这里插入图片描述

# 单分支结构if
number=eval(input('请输入您的6位中奖号码:'))
# 使用if语句
if number==987654: # 等值判断
    print('恭喜您,中奖了!')
if number!=987654:
    print('您未中奖!')
print('以上if判断的表达式,是通过比较运算符计算出来的,结果是布尔值类型')

n=98 # 赋值操作
if n%2: # 98%2的余数是0,0的布尔值是False,非0的布尔值是True
    print(n,'是奇数') # 由于98和2的余数是0,所以改行代码不执行

if not n%2: # not False的结果为True
    print(n,'是偶数')

print('----------判断一个字符串是否是空字符串----------')
x=input('请输入一个字符串:')
if x: # 在Python中一切皆对象,每个对象都有一个布尔值,而非空字符串的布尔值为True,空字符串的布尔值为False
    print('x是一个非空字符串')

if not x: # 空字符串的布尔值为False,取反,not False的值为True
    print('x是一个空字符串')

print('----------表达式也可以是一个单纯的布尔型变量----------')
flag=eval(input('请输入一个布尔类型的值:True或False'))
if flag:
    print('flag的值为True')
if not flag:
    print('flag的值为False')

使用if语句时,如果语句块中只有一句代码,可以将语句块直接写在冒号的后面。

在这里插入图片描述

a=10
b=5
if a>b:max=a # 语句块只有一句,赋最大值
print('a和b的最大值为:',max)

双分支结构:if...else...语法结构

在这里插入图片描述
在这里插入图片描述

# 双分支结构
number = eval(input('请输入您的6位中奖号码:'))
# if..else...
if number==123456:
    print('恭喜您中奖了')
else:
    print('您未中奖')

# 以上代码可以使用条件表达式进行简化
print('恭喜您中奖了' if number==123456 else '您未中奖')

多分支结构

在这里插入图片描述

# 多分支结构
score=eval(input('请输入您的成绩:'))
if score<0 or score>100:
    print('请输入正确的成绩。')
elif 0<=score<60:
    print('成绩为E')
elif 60<=score<70:
    print('成绩为D')
elif 70<=score<80:
    print('成绩为C')
elif 80<=score<90:
    print('成绩为B')
else:
    print('成绩为A')

在这里插入图片描述

嵌套if的使用。

在这里插入图片描述
在这里插入图片描述

# 嵌套if的使用
answer=input('请问您喝酒了吗?')
if answer=='y': # 表示喝酒了
    proof=eval(input('请输入酒精含量:'))
    if proof<20:
        print('暂未构成酒驾,祝您一路顺风')
    elif proof<80:
        print('已构成酒驾,请下车')
    else:
        print('已构成醉驾,请下车')
else:
    print('你走吧,没你事了')

使用and连接多个选择条件。

在这里插入图片描述在这里插入图片描述

userName=input('请输入您的用户名:')
pwd=input('请输入您的密码:')
if userName == '摔跤猫子' and pwd == '123':
    print('验证通过')
else:
    print('账号或密码错误')

使用or连接多个判断条件。

在这里插入图片描述
在这里插入图片描述

# 使用or连接多个选择条件
score = eval(input('请输入您的分数:'))
if score<0 or score>100:
    print('请输入正确的分数')
else:
    print('您的分数为:',score)

Python3.11新特性,模式匹配。

在这里插入图片描述

# Python3.11新特性,模式匹配
score=input('请输入成绩等级:')
match score:
    case 'A':
        print('优秀')
    case 'B':
        print('良好')
    case 'C':
        print('中等')
    case 'D':
        print('及格')
    case 'E':
        print('不及格')

循环结构for与while

在这里插入图片描述

遍历字符串

for i in '摔跤猫子':
    print(i)

在这里插入图片描述

range函数,Python中的内置函数,产生一个[n,m]的整数序列,包含n,但是不包含m

for i in range(1,5):
    print(i)

在这里插入图片描述

# 计算1-10之间的累加和
h=0 # 用于计算累加和的变量
for i in range(1,11):
    h+=i # 相当于 h=h+i

print('累加和为:',h)

在这里插入图片描述

for…else…结构。

h=0 # 用于计算累加和
for i in range(1,11):
    h+=i
else:
    print('1-10之间的累加和为:',h)

在这里插入图片描述

无限循环while,需要注意的是在while循环当中你的初始化变量,条件判断的变量和改变的变量通常都为1个。

在这里插入图片描述
在这里插入图片描述

answer=input('今天要上班吗?请输入[y/n]:')
# 2.条件判断
while answer=='y':
    # 3.语句块
    print('早点下班')
# 4.改变变量
    answer=input('今天要上班吗?请输入[y/n]:')

使用无限循环while计算1-200之间的累加和。

在这里插入图片描述

v=0 # 定义变量存储累加和
# 1.初始化变量
i=1
# 2.条件判断
while i<=200:
    # 3.语句块
    v+=i
    # 4.改变变量
    i+=1 # 相当于i=i+1
print('1-200之间的累加和为:',v)

无限循环也有一种扩展形式叫做while-else结构,当你在while整个的循环当中全都执行完毕了,中途没有遇到任何break中断循环的情况,那么就可以使用while-else结构了。

在这里插入图片描述

v=0 # 定义变量存储累加和
# 1.初始化变量
i=1
# 2.条件判断
while i<=200:
    # 3.语句块
    v+=i
    # 4.改变变量
    i+=1 # 相当于i=i+1
else:
    print('1-200之间的累加和为:',v)

使用while循环模拟用户登录,在进行登录操作的时候,除了输入用户名和密码之外,再给它设置三次机会,三次均输入错误后就没办法登录系统了,三次之内,只要正确一次即通过

在这里插入图片描述

# 1.初始化变量
i=0
# 2.条件判断
while i<3:
    # 3.语句块
    userName=input('请输入用户名:')
    pwd=input('请输入密码:')
    # 登录操作
    if userName=='摔跤猫子' and pwd=='123':
        print('登录成功')
        # 需要改变循环变量,目的是为了退出循环
        i=4 # 退出while循环
    else:
        if i<2:
            print('用户名或密码错误,您还有',2-i,'次机会!')
        # 改变变量
        i+=1 # 相当于i=i+1
if i==3: # 当用户名或密码三次输错时,循环结束,进行提示
    print('账号已冻结,请联系管理员进行解封')

循环结构也可以互相嵌套,在一个循环结构中嵌套另外一个完整的循环结构就称为嵌套循环。理论上是可以无限嵌套的,但是在实际开发中,建议不要超过三层,因为在嵌套循环结构当中,内层循环实际上是在给外层循环做语句块部分的。

在这里插入图片描述

长方形和直角三角形的输出。

在这里插入图片描述

# 三行四列 长方形
for i in range(1,4): # 通过最外层循环 控制行数
    for j in range(1,5): # 内层循环控制打印的列数
        print('*',end='')
    print() # 空的print语句,作用是换行
print('----------------------------------------')
# 直角三角形
for i in range(1,6):
    for j in range(1,i+1):
        print('*',end='')
    print()

在这里插入图片描述

倒三角形。

for i in range(1,6):
    for j in range(1,7-i):
        print('*',end='')
    print()

在这里插入图片描述

等腰三角形。

在这里插入图片描述

for i in range(1,6): # 外层循环 执行五行
    for j in range(1,6-i): # 打印倒三角形
        print(' ',end='')
    for k in range(1,i*2): # 打印等腰三角形
        print('*',end='')
    print()

菱形

在这里插入图片描述

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='')
    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 j in range(1,2*bottom_row-2*i+2):
        print('*',end='')
    print()

空心菱形,它的最左侧和它的最右侧是*,其他的地方都是由空格组成。

在这里插入图片描述

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='')
    for k in range(1,i*2): # 打印等腰三角形
        if k==1 or k==i*2-1:
            print('*',end='')
        else:
            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-2*i+2):
        if k==1 or k==2*bottom_row-2*i+2-1:
            print('*',end='')
        else:
            print(' ',end='')
    print()

程序跳转语句

break和continue

在这里插入图片描述

程序跳转语句break在while无限循环中的使用。非正常结束不会执行else部分,当循环完整的执行完成之后,在整个的过程当中没有遇到任何break的时候会执行else部分。

在这里插入图片描述

z=0 # 定义一个变量存储累加和
i=1 # 初始化变量
while i<11: # 条件判断
    z+=i # 语句块
    if z>20:
        print('累加和大于20的当前数是:',i)
        break
    i+=1 # 改变变量

print('------------------')
i=0 # 初始化变量,统计登录的次数
while i<3: # 条件判断
    userName = input('请输入用户名:')
    pwd = input('请输入密码:')
    if userName=='摔跤猫子' and pwd =='123':
        print('登录成功')
        break
    else:
        if i <2:
            print('用户名或密码不正确,您还有',2-i,'次机会')
    i+=1 # 改变变量
else:
    print('账号已冻结')

break在遍历循环当中的使用。

在这里插入图片描述

程序就输出了一个摔跤,因为循环的时候它发现摔跤和猫不相等,if条件判断不成立,直接进行输出,输出完成之后又回到循环的判断处,从字符串中把猫取出来赋值给i,然后拿i再进行匹配,条件为true并执行了break,后续的代码都不再进行执行,循环结束。

在这里插入图片描述

for i in '摔跤猫子':
    if i == '猫':
        break
    print(i)

通过遍历循环判断用户名和密码

在这里插入图片描述

for i in range(3):
    userName = input('请输入用户名:')
    pwd = input('请输入密码:')
    if userName=='摔跤猫子' and pwd =='123':
        print('登录成功')
        break
    else:
        if i <2:
            print('用户名或密码不正确,您还有',2-i,'次机会')
    i+=1 # 改变变量
else:
    print('账号已冻结')

除了break语句之外还有一个跳转语句,就是continue,它跟break作用不同,break是用于退出循环结构,continue的作用是用于跳出本次循环。

在这里插入图片描述

计算1-100之间的偶数和。

在这里插入图片描述

z=0 # 定义一个变量存储累加和
i=0 # 初始化变量
while i<=100: # 条件判断
    # 语句块
    if i%2==1: # 奇数
        i+=1
        continue # 不再执行后面的代码
    # 累加求和的代码
    z+=i
    i+=1
print('1-100之间的偶数和为:',z)

在这里插入图片描述

continue在for循环当中的使用

在这里插入图片描述

s=0
for i in range(1,101):
    if i % 2 == 1:  # 奇数
        continue
    s+=i
print('1-100之间的偶数和为:',s)

pass空语句

pass是Python中的保留字,在语法结构中只起到占位符作用。

在这里插入图片描述

如果只写一个if True会报错,因为没有写语句块,写一个pass后,语法结构就准确了。

在这里插入图片描述
在这里插入图片描述

总结

本章总结

  • 程序的描述方式有三种:自然语言、流程图和伪代码;
  • 程序的组织结构有三种:顺序结构、选择结构(分支结构)、循环结构;
  • 选择结构分单分支结构(if)、双分支结构(if...else...)和多分支结构(if...elif...else...);
  • Python3.11新特性模式匹配match...case...结构;
  • 循环结构有两种:遍历循环for和无限循环while
  • if结构可以互相嵌套,循环结构也可以互相嵌套,建议最多不超过三层;
  • breakcontinue只能用在循环结构中,break用于退出整个循环结构,continue用于结束本次循环而进入下一次循环;
  • 空语句pass起到占位符的作用,使语法结构完整、不报错。

习题讲解

📄1:以下选项符合Python语法要求且能够正常执行的是?
??A:min=x if x<y=y
?B:min=x if x<y else y
??C:if(x>y) print(x)
??D:min=x>y?x:y

📄2:下面代码的输出结果是?

在这里插入图片描述
??A:0
??B:1
?C:1,3,5,7
??D:0,2,4,6

📄3:以下选项中不能退出循环的是?
在这里插入图片描述
?A:2
??B:3
??C:4
??D:5

📄4:下面代码输出的图形是?
在这里插入图片描述
?A:在这里插入图片描述

??B:3

??C:4

??D:5

📄5:下面代码的输出结果是?

在这里插入图片描述
??A:0
?B:10
??C:11
??D:15

📄6:下面代码的输出结果是?
在这里插入图片描述
??A:Welcome
?B:Welcome to
??C:BeiJing
??D:Welcome to BeiJing

📄7:下面代码的输出结果是?
在这里插入图片描述

??A:ppyytthhoonn
??B:python
??C:ppyytt
?D:ppyytthoonn

📄8:以下程序中,while循环的执行次数是?

在这里插入图片描述
??A:10次
??B:4次
?C:死循环
??D:5次

文章来源:https://blog.csdn.net/weixin_42794881/article/details/135215290
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。