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

news2024/11/29 0:51:39

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

目录

  • 程序的描述方式
    • 自然语言
    • 流程图
    • 伪代码
  • 程序的组织结构
    • 顺序结构
    • 选择结构
    • 循环结构for与while
  • 程序跳转语句
    • break和continue
    • 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次

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1356623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vuepress2 打包后刷新页面侧边栏丢失问题

问题&#xff1a;打包后刷新页面时侧边栏丢失问题 原因&#xff1a;node版本问题 文档中写着依赖环境 Node.js v18.16.0 我当时的版本是 16.19.0 我应该算是遇到了两个问题 【刷新后侧边栏消失】【刷新后页面内容加载错误】 我看了控制台&#xff0c;侧边栏不出现的原因&a…

自定义事件

自定义事件 自定义事件 AAA"fn1"&#xff1a;向子组件的事件池中注入AAA事件&#xff0c;方法是父组件的fn1 发布订阅&#xff1a;子组件某个操作把父组件中的某个方法执行了 参数可以传多个 $listeners* $listeners&#xff1a;事件池中的方法 { aaa:fn1, bbb:fn2 }…

2023年山东省高职组区块链技术竞赛任务书

2023年山东省高职组区块链技术任务书 目录 模块一&#xff1a;区块链产品方案设计及系统运维 任务1-1&#xff1a;区块链产品需求分析与方案设计 任务1-2&#xff1a;区块链系统部署与运维 任务1-3&#xff1a;区块链系统测试 模块二&#xff1a;智能合约开发与测试 任务2-1&am…

加密算法和身份认证

前瞻概念 在了解加密和解密的过程前&#xff0c;我们先了解一些基础概念 明文&#xff1a;加密前的消息叫 “明文” &#xff08;plain text&#xff09;密文: 加密后的文本叫 “密文” (cipher text)密钥: 只有掌握特殊“钥匙”的人&#xff0c;才能对加密的文本进行解密,这里…

【三维分割】SAGA:Segment Any 3D Gaussians

系列文章目录 代码&#xff1a;https://jumpat.github.io/SAGA. 论文&#xff1a;https://jumpat.github.io/SAGA/SAGA_paper.pdf 来源&#xff1a;上海交大和华为研究院 文章目录 系列文章目录摘要一、前言二、相关工作1.基于提示的二维分割2.将2D视觉基础模型提升到3D3.辐射…

【网络安全】【密码学】常见数据加(解)密算法及Python实现(一)

一、Base64编码 1、算法简介 Base64是一种常见的编&#xff08;解&#xff09;码方法&#xff0c;用于传输少量二进制数据。该编码方式较为简短&#xff0c;并不具有可读性&#xff0c;对敏感数据可以起到较好的保护作用。 2、Python实现&#xff08;调库&#xff09; &…

LRU的设计与实现(算法村第五关黄金挑战)

146. LRU 缓存 - 力扣&#xff08;LeetCode&#xff09; 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存…

SSL/TLS 握手过程详解

SSL握手过程详解 1、SSL/TLS 历史发展2、SSL/TLS握手过程概览2.1、协商交换密码套件和参数2.2、验证一方或双方的身份2.3、创建/交换对称会话密钥 3、TLS 1.2 握手过程详解4、TLS 1.3 握手过程详解5、The TLS 1.2 handshake – Diffie-Hellman Edition 1、SSL/TLS 历史发展 可…

显示所有中国城市需要多少个汉字?

显示所有中国城市需要多少个汉字呢&#xff1f; 需要3678个汉字&#xff0c;看看我怎么知道的。 第一步&#xff1a;先找到中国的所有城市的名称 去哪里找到中国的所有城市的名称呢&#xff1f; 进入中国天气网&#xff1a;http://www.weather.com.cn/ 使用 F12 打开浏览器的调…

[Mac软件]Boxy SVG 4.20.0 矢量图形编辑器

Boxy SVG 是一款入门级矢量图形编辑器&#xff0c;具有全套基本功能、易于学习的选项卡式界面和可自定义的键盘快捷键。有了它&#xff0c;您可以轻松创建横幅、图标、按钮、图形、界面草图&#xff0c;甚至有趣的表情包。 编辑器支持使用多种工具创建和编辑矢量对象&#xff…

深入探讨关于Redis的底层

1.1为什么Redis存储比关系型数据库快&#xff1a; 数据存储在内存中&#xff08;比如企业项目中用户表中有一个亿的用户&#xff0c;如果再来注册一个用户&#xff0c;或者登录&#xff0c;必须先判断是否有这个数据&#xff0c;这个时候如果直接查询数据库的话&#xff0c;对服…

Java+springboot+vue智慧校园源码,数据云平台Web端+小程序教师端+小程序家长端

技术架构&#xff1a; Javaspringbootvue element-ui小程序电子班牌&#xff1a;Java Android演示自主版权。 智慧校园电子班牌人脸识别系统全套源码&#xff0c;包含&#xff1a;数据云平台Web端小程序教师端小程序家长端电子班牌 学生端。 电子班牌系统又称之为智慧班牌&am…

分布式之任务调度学习一

1 任务调度 1.1 什么时候需要任务调度&#xff1f; 1.1.1 任务调度的背景 在业务系统中有很多这样的场景&#xff1a; 1、账单日或者还款日上午 10 点&#xff0c;给每个信用卡客户发送账单通知&#xff0c;还款通知。如何判断客户的账单日、还款日&#xff0c;完成通知的发…

类加载机制之双亲委派模型、作用、源码、SPI打破双亲委派模型

双亲委派模型 双亲委派工作机制双亲委派的作用双亲委派的实现源码SPI打破双亲委派 应用程序是由三种类加载器相互配合&#xff0c;从而实现类加载&#xff0c;除此之外还可以加入自己定义的类的加载器。 类加载器之间的层次关系&#xff0c;称为双亲委派模型&#xff08;Parent…

飞腾Ubantu22.04.3安装OpenNebula测试

目前只有one服务能够启动成功&#xff0c;sunstone-server nodejs 构建存在问题。 1.概述 因OpenneBula官方镜像源只有AMD架构的镜像包不存在ARM的镜像包&#xff0c;借此用源码编译进行测试。 2.官网github地址 下载解压存放在服务器上&#xff1a; https://github.com/O…

轻量检测模型PP-PicoDet解析

Paper&#xff1a;PP-PicoDet: A Better Real-Time Object Detector on Mobile Devices official implementation&#xff1a;https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.7/configs/picodet Backbone 作者通过实验发现&#xff0c;ShuffleNetV2在移动…

2024第一篇: 架构师成神之路总结,你值得拥有

大家好&#xff0c;我是冰河~~ 很多小伙伴问我进大厂到底需要怎样的技术能力&#xff0c;经过几天的思考和总结&#xff0c;终于梳理出一份相对比较完整的技能清单&#xff0c;小伙伴们可以对照清单提前准备相关的技能&#xff0c;在平时的工作中注意积累和总结。 只要在平时…

Apache Commons BCEL与Java字节码操作

第1章&#xff1a;Apache Commons BCEL简介 大家好&#xff0c;我是小黑&#xff0c;咱们今天来聊聊Apache Commons BCEL&#xff08;Byte Code Engineering Library&#xff09;。你可能会问&#xff0c;BCEL是什么鬼&#xff1f;别急&#xff0c;小黑这就给你娓娓道来。BCEL…

Hadoop入门学习笔记——八、数据分析综合案例

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 八、数据分析综合案例8.1. 需求分析8.1.1. 背景介绍8.1.2…

基于Python实现二手房整体情况可视化分析+房价预测【500010099】

项目描述 通过房天下兰州二手房信息&#xff0c;对数据进行进一步清洗处理&#xff0c;分析各维度的数据&#xff0c;筛选对房价有显著影响的特征变量&#xff0c;探索兰州二手房整体情况、价格情况和价格的影响因素&#xff0c;建立房价预测模型。 提出问题 探究单价、数量…