【Python 基础篇】Python代码 之 程序结构

2023-11-15

目录

前言

一、顺序结构

1.1  分支结构

1.2  双向分支

1.3  多路分支

1.4  if语句补充

二、顺序结构

三、循环结构

while

while ... else ...

for ... in

for ... else ...

         四、流程控制语句

break

continue

pass


前言

程序运行三大流程:顺序、选择、循环。

一、顺序结构

1.1  分支结构

  • 分支结构基本语法

      if 条件表达式
            语句一
            语句二
            语句三
            ......
    
  • 条件表达式就是计算结果必须为布尔值的表达式

  • 表达式后面的冒号不能少

  • 注意if后面出现的语句,如果属于if语句块,则必须同一缩进等级

  • 条件表达式结果为True执行if后面的缩进的语句块

1.2  双向分支

  • if…else…表达

  • 语法结构:

          if条件表达式:
              语句一
              语句二
              ...
          else:
              语句一
              语句二
              ...

1.3  多路分支

  • 很多分支的情况,叫多路分支

    if 条件表达式:
    语句1

    elif 条件表达式:
    语句1

    elif 条件表达式:
    语句1

    else:
    语句1
    … …

  • elif可以有好多个,根据实际情况

  • else可选

  • 多路分支最多只会执行一种情况

1.4  if语句补充

  • if语句可以嵌套使用,不推荐
  • python没有switch语句
# score  存放学生的成绩
# 注意input的返回值类型
score = input("请输入学生成绩:")
# 需要把str转换成int
score = int(score)

if score >= 90:
    print("A")
elif score >= 80:
    print("B")
elif score >= 70:
    print("C")
elif score >= 60:
    print("D")
else:
    print("起开,我没你这傻学生")

二、顺序结构

三、循环结构

循环结构可以减少源程序重复书写的工作量(代码量),用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构。

Python中循环结构分为两类,分别是 while 和 for .. in

3.1 while

格式1: while 

num1,num2 = 3,5
while num1 < num2:
    print('如果条件成立,会进入循环体,我所处的这块区域,就是循环体')
    num1 += 1   #控制循环条件中的变量,否则进入死循环

死循环: 死循环就是循环不会终止的循环类型,设置条件永远为True来实现,但非常占用资源

格式2:while ... else ...

num1,num2 = 3,5
while num1 < num2:
    print('如果条件成立,会进入循环体')
    num1 += 1
else:
    print('条件不成立时,我会被输出')

注意: while循环中的else是在while条件表达式为假的情况下执行的代码内容

3.2  for ... in

for 变量 in 容器:用于遍历容器类的数据(字符串,列表,元组,字典,集合)

格式1:

user_list = ['小明','小红','小强','小军']  # 遍历列表
for val in user_list:
    print(val)

格式2:

data = ('a','alibaba'),('b','baidu'),('c','changhong')
for k,v in data:
    print(k,'======>',v)

使用格式2请注意: 要求遍历的容器必须是以下几种格式

[(),(),()]    列表中有元组
[[],[],[]]    列表中有列表
((),(),())    元组中有元组
{(),(),()}    集合中有元组
字典的特殊使用

格式3:

data = ('a','b','c','d','e')
for v in data:
    print(v)
else:
    print('我else区间又来啦!')

循环结束时执行else区间的代码

补充 :for 中使用 range() 函数

>>> for i in range(5):
...     print(i)
...
0
1
2
3
4

range(10) 生成了一个包含 10 个值的链表,它用链表的索引值填充了这个长度为 10 的列表,所生成的链表中不包括范围中的结束值。也可以让 range() 操作从另一个数值开始,或者可以指定一个不同的步进值(甚至是负数,有时这也被称为 “步长”):

range(5, 10)   # 5 ,6 ,7 ,8 ,9
   5 through 9

range(0, 10, 3)   # 指定步长 为 3 
   0, 3, 6, 9

range(-10, -100, -30) # 指定步长 为 -30
  -10, -40, -70

>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
...     print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb

四、流程控制语句


4.1 break 

break 语句和 C 中的类似,用于跳出最近的一级 for 或 while 循环

翻译:破坏,结束
作用:在循环中break的作用是终止当前循环结构的后续所有操作,一点程序运行了break,循环也就终止了。

循环可以有一个 else 子句;它在循环迭代完整个列表(对于 for )或执行条件为 false (对于 while )时执行,但循环被 break 中止的情况下不会执行。以下搜索素数的示例程序演示了这个子句:

>>> for n in range(2, 10):
...     for x in range(2, n): #这里,n=2 , 不满足 for x in range(2,2) 条件
...         if n % x == 0:
...             print(n, 'equals', x, '*', n//x)
...             break   # 满足条件,直接break 到上一层,同时else 语句是不执行的
...     else:
...         # loop fell through without finding a factor
...         print(n, 'is a prime number')
...
2 is a prime number
3 is a prime number
4 equals 2 * 2
5 is a prime number
6 equals 2 * 3
7 is a prime number
8 equals 2 * 4
9 equals 3 * 3

4.2 continue

continue 语句是从 C 中借鉴来的,它表示循环继续执行下一次迭代:

翻译:继续
作用:在循环中continue的作用是跳过本次循环,开始下一次循环。continue执行之后本次循环的后续代码不再执行,直接进入下一次循环。
>>> for num in range(2, 10):
...     if num % 2 == 0:
...         print("Found an even number", num) 
...         continue            # 满足条件,直接开启下一次循环变量循环,也就是:不执行print 语句
...     print("Found a number", num)
Found an even number 2
Found a number 3
Found an even number 4
Found a number 5
Found an even number 6
Found a number 7
Found an even number 8
Found a number 9

4.3 pass

pass 语句什么也不做。它用于那些语法上必须要有什么语句,但程序什么也不做的场合,例如:

翻译:忽略
作用:pass是没有任何意义的空语句,主要用来占位用,避免语法错误。
>>> while True:
...     pass  # Busy-wait for keyboard interrupt (Ctrl+C)
...

这通常用于创建最小结构的类:

>>> class MyEmptyClass:
...     pass
...

另一方面,pass 可以在创建新代码时用来做函数或控制体的占位符。可以让你在更抽象的级别上思考。pass 可以默默的被忽视:

>>> def initlog(*args):
...     pass   # Remember to implement this!
...

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Python 基础篇】Python代码 之 程序结构 的相关文章

  • 获取 .wav 文件长度或持续时间

    我正在寻找一种方法来找出 python 中音频文件 wav 的持续时间 到目前为止我已经了解了 pythonwave图书馆 mutagen pymedia pymad我无法获取 wav 文件的持续时间 Pymad给了我持续时间 但它不一致
  • 此 TypeError 消息中提到的“代码对象”是什么?

    在尝试使用Python时exec声明 我收到以下错误 TypeError exec arg 1 must be a string file or code object 我不想传递字符串或文件 但什么是代码对象 如何创建一个 创建代码对象的
  • 从文本文件中删除特定字符

    我对 Python 和编码都很陌生 我当时正在做一个小项目 但遇到了一个问题 44 1 6 23 2 7 49 2 3 53 2 1 68 1 6 71 2 7 我只需要从每行中删除第三个和第六个字符 或者更具体地说 从整个文件中删除 字符
  • Virtualenv 在 OS X Yosemite 上失败并出现 OSError

    我最近更新到 OSX Yosemite 现在无法使用virtualenv pip 每当我执行 virtualenv env 它抛出一个 OSError Command Users administrator ux env bin pytho
  • 使用 django-rest-framework 设置对象级权限

    尝试使用 django rest framework 最干净 最规范地管理 django guardian 对象级权限 我想将对象的读取权限 module view object 分配给在执行 POST 时发出请求的用户 我的基于阶级的观点
  • 将 numpy 数组合并为单个 int

    numpy 数组怎么可以这样 10 22 37 45 转换为单个 int32 数字 如下所示 10223745 这可以工作 gt gt gt int join map str 10 22 37 45 10223745 基本上你使用map s
  • 在Python中从大文件中搜索单词列表

    我是新蟒蛇 我有一个单词列表和一个非常大的文件 我想删除文件中包含单词列表中的单词的行 单词列表按排序给出 并且可以在初始化期间输入 我正在努力寻找解决这个问题的最佳方法 我现在正在进行线性搜索 这花费了太多时间 有什么建议么 您可以使用i
  • 使用 Django 将文件异步上传到 Amazon S3

    我使用此文件存储引擎在上传文件时将文件存储到 Amazon S3 http code welldev org django storages wiki Home http code welldev org django storages w
  • 如何通过 python 多处理利用所有核心

    我一直在摆弄Python的multiprocessing现在已经使用了一个多小时的功能 尝试使用并行化相当复杂的图形遍历函数multiprocessing Process and multiprocessing Manager import
  • 如何过滤 Pandas GroupBy 对象并获取 GroupBy 对象?

    当对 Pandas groupby 操作的结果执行过滤时 它返回一个数据帧 但假设我想执行进一步的分组计算 我必须再次调用 groupby 这似乎有点绕 有更惯用的方法吗 EDIT 为了说明我在说什么 我们无耻地从 Pandas 文档中窃取
  • Arcpy 模数在 Pycharm 中不显示

    如何将 Arcpy 集成到 Pycharm 中 我尝试通过导入模块但它没有显示 我确实知道该模块仅适用于 2 x python arcpy 在 PyPi Python 包索引 上不可用 因此无法通过 pip 安装 要使用 arcpy 您需要
  • 如何使用scrapy检查网站是否支持http、htts和www前缀

    我正在使用 scrapy 来检查某些网站是否工作正常 当我使用http example com https example com or http www example com 当我创建 scrapy 请求时 它工作正常 例如 在我的pa
  • Python Anaconda:如何测试更新的库是否与我现有的代码兼容?

    我在 Windows 7 机器上使用 Python 2 7 Anaconda 安装进行数据分析和科学计算 当新的库发布时 例如新版本的 pandas patsy 等 您建议我如何测试新版本与现有代码的兼容性 是否可以在同一台机器上安装两个
  • 从 Flask 运行 NPM 构建

    我有一个 React 前端 我想在与我的 python 后端 API 相同的源上提供服务 我正在尝试使用 Flask 来实现此目的 但我遇到了 Flask 找不到我的静态文件的问题 我的前端构建是用生成的npm run build in s
  • 是否需要关闭没有引用它们的文件?

    作为一个完全的编程初学者 我试图理解打开和关闭文件的基本概念 我正在做的一项练习是创建一个脚本 允许我将内容从一个文件复制到另一个文件 in file open from file indata in file read out file
  • 可以使用哪些技术来衡量 pandas/numpy 解决方案的性能

    Question 如何简洁全面地衡量下面各个功能的性能 Example 考虑数据框df df pd DataFrame Group list QLCKPXNLNTIXAWYMWACA Value 29 52 71 51 45 76 68 6
  • 无法通过 Python 子进程进行 SSH

    我需要通过堡垒 ssh 进入机器 因此 该命令相当长 ssh i
  • Django 管理器链接

    我想知道是否有可能 如果可以的话 如何 将多个管理器链接在一起以生成受两个单独管理器影响的查询集 我将解释我正在研究的具体示例 我有多个抽象模型类 用于为其他模型提供小型的特定功能 其中两个模型是DeleteMixin 和GlobalMix
  • 如何编写一个接受 int 或 float 的 C 函数?

    我想用 C 语言创建一个扩展 Python 的函数 该函数可以接受 float 或 int 类型的输入 所以基本上 我想要f 5 and f 5 5 成为可接受的输入 我认为我不能使用if PyArg ParseTuple args i v
  • 如何从namedtuple实例列表创建pandas DataFrame(带有索引或多索引)?

    简单的例子 from collections import namedtuple import pandas Price namedtuple Price ticker date price a Price GE 2010 01 01 30

随机推荐

  • Android OBB文件

    从Android 2 3开始新增了一个OBB文件系统和StorageManager类用来管理外部存储上的数据安全 如果你过去开发过Symbian S60第三版或以上的版本可能发现都有一个隔离的文件系统 仅根据自己应用的UID才能读取 当然这
  • WSL——NextCloud 在 Windows 端的网络访问配置

    NextCloud 在 Windows 端的网络访问配置 1 WSL2 的 IP 配置问题 在 Windows 每次重启后 WSL2 的 IP 将会发生变化 即 WSL2 的 IP 并非静态地址 为此 通过下述代码可以手动为 WSL2 增加
  • golang:ent实体框架

    好烦 我就想自己使用自定义除了id字段以外的字段作为主键名 参见评论区大佬 field String id StorageKey stu id Unique Immutable
  • 归并排序MergeSort算法--分治

    归并排序 MergeSort 是一种有效的排序算法 该算法是采用分治法 Divide and Conquer 的一个非常典型的应用 将已有序的子序列合并 得到完全有序的序列 即先使每个子序列有序 再使子序列段间有序 若将两个有序表合并成一个
  • Django之路由层

    目录 django请求生命周期流程图 路由匹配 分组命名匹配 无名分组 有名分组 传递额外的参数给视图函数 命名URL 和 URL反向解析 命名URL URL反向解析 前端 URL反向解析 后端 无名分组反向解析 有名分组反向解析 路由分发
  • Group by + Limit 的效率优化

    背景 最近接手一个项目 清洗历史表中的数据 在原有表中添加一个新的字段 并根据user id进行分组 查询到证件号 证件类型后 换取唯一编码 将唯一编码存入历史数据中 以达到未来替换user id的效果 清洗数据的大体思路 将数据库中带清洗
  • 【华为OD机试真题 Java】单行道汽车通行时间

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • Calendar,Date,Timestamp的使用及其转换

    下面列出了Date Timestamp String相互转换 以及通过Calendar创建时间的例子 import java sql Timestamp import java text ParseException import java
  • VTK学习之三维图像切片交互提取(回调函数、观察者-命令模式)

    参考博客 VTK Learning 三维图像切片 二 鼠标交互 回调函数 观察者 命令模式 江南又旧雨的博客 CSDN博客 根据鼠标交互事件 同时实现切片的实时提取功能 上代码 include
  • GOplot

    GOplot 为这个包写笔记 主要是复习一下markdown写作而已 还是建议大家看原作者的英文文档 安装并加载必须的packages 如果你还没有安装 就运行下面的代码安装 install packages GOplot library
  • 两数相加-2

    题目描述 给出两个 非空 的链表用来表示两个非负的整数 其中 它们各自的位数是按照 逆序 的方式存储的 并且它们的每个节点只能存储 一位 数字 如果 我们将这两个数相加起来 则会返回一个新的链表来表示它们的和 您可以假设除了数字 0 之外
  • [SDN]Mininet中的miniedit问题汇总

    作者 清水寺丞 简介 正在学习unity 数据库 计算机通信网络和python 喜欢部署各种奇奇怪怪的小项目 喜欢就点个关注一起学习吧 目录 前言 怎么打开MiniEdit 保存mn与py文件出现问题 为什么我run了拓扑之后终端没有出现m
  • 掌握到胃-奈氏图与伯德图的绘制

    自控笔记 5 4绘制频率特性曲线 一 开环奈奎斯特曲线的绘制 先上步骤 确定起点G j0 和终点G j 中间段由s平面零极点矢量随s j 变化规律绘制 必要时可求出G j 与实轴 虚轴的交点 再看细节 对于一个系统的传递函数 可以将其分解成
  • touch、mkdir、rmdir、cp、mv、rm命令的常用参数的使用

    touch 可创建多个新文件或更新文件的修改日期 touch m t 时间 修改文件的时间 并可以指定修改时间 touch a 将文件的存取时间改为当前时间 mkdir 用于创建一个目录 mkdir p 用于创建目录时 如果父目录不存在 则
  • 基于MATLAB用图解法解方程(附图像与代码)

    目录 一 一元方程图解法 例题1 二 二元方程图解法 例题2 三 多项式型方程 例题 3 一 一元方程图解法 例题1 用图解法求 解 MATLAB代码 clc clear ezplot exp 3 t sin 4 t 2 4 exp 0 5
  • C# 笔记4——如何实现单击放大全屏和退出全屏

    C 笔记4 如何实现单击放大全屏和退出全屏 由于工作需求 需要实现单击放大和退出全屏功能 想了一下 即单击放大时候把播放视频的picturebox的大小设置和屏幕宽高相同 位置设置为屏幕左上角 0 0 即可 单击退出全屏时候把控件大小和位置
  • 扩散模型与生成模型详解

    扩散模型与其他生成模型 什么是扩散模型 扩散模型的简介 生成建模是理解自然数据分布的开创性任务之一 VAE GAN和Flow系列模型因其实用性能而在过去几年中占据了该领域的主导地位 尽管取得了商业上的成功 但它们的理论和设计缺陷 棘手的似然
  • 中国传统节日端午节网页HTML代码 学生网页课程设计期末作业下载 春节大学生网页设计制作成品下载 DW春节节日网页作业代码下载

    HTML5期末大作业 节日网站设计 中国传统节日端午节网页HTML代码 7页 HTML CSS JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 计算机毕设网页设计源码 常见网页设计作业题材有 个人 美食 公司
  • visio技巧(曲线、连接点、自制模具)

    一 画曲线 1 1 铅笔 任意多边形 弧形都可以画曲线 但曲度不好更改 1 2 鼠标选中连接线 在画布上画一个直角线 选中该线 点击右键 选曲线连接线 随意拉动该线上的连接点可以调整成任意曲度 二 增加 移动 删除图形上的连接点 1 1 增
  • 【Python 基础篇】Python代码 之 程序结构

    目录 前言 一 顺序结构 1 1 分支结构 1 2 双向分支 1 3 多路分支 1 4 if语句补充 二 顺序结构 三 循环结构 while while else for in for else 四 流程控制语句 break continu