Python 流程控制

目录

程序流程

顺序结构

分支结构

单分支

双分支

多分支

if 嵌套

循环结构

while循环

for 循环

退出循环

循环与分支嵌套

附录


程序流程

程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。

其流程控制方式有

  • 顺序结构

  • 分支结构

  • 循环结构

顺序结构

这里最简单最常用的就是顺序结构,即语句从上至下一一执行。

print("程序开始了")
print("程序进行中") # 从上到下依次执行
print("程序结束了") # 从上到下依次执行

分支结构

顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。

单分支

语法:

'''
if 表达式:代码块
'''    user = input("用户名>>")
pwd = input("密码>>")
if user == "root" and pwd == "123":  # 返回一个布尔值print("登录成功")  # 强烈建议使用四个缩进print("程序结束")

说明:

1、“表达式”可以是一个单一的值或者复杂语句,形式不限,但解释器最后会通过bool获取一个true或者false的布尔值

2、“代码块”由:与具由相同缩进标识的若干条语句组成(一般是四个缩进)。

双分支

双分支语句顾名思义,二条分支二选一执行!

语法格式:

'''
if 表达式:代码块 1
else:代码块 2
'''
user = input("用户名>>")
pwd = input("密码>>")if user == "root" and pwd == "123":  # 返回一个布尔值print("登录成功")  # 强烈建议使用四个缩进print("祝贺你")
else:print("登录失败")print("不好意思")

多分支

多分支即从比双分支更多的分支选择一支执行。

语法格式:

'''
if 表达式 1:代码块 1
elif 表达式 2:代码块 2
elif 表达式 3:代码块 3
...# 其它elif语句
else:代码块 n
'''  score = input("请输入您的成绩>>")  # "100"
# 当成绩大于90的时候显示优秀,否则显示一般
# 将数字字符串,比如"100",转换成一个整型数字的时候,需要int转换
score = int(score)  # 100if score > 100 or score < 0:print("您的输入有误!")
elif score > 90:print("成绩优秀")
elif score > 70:  # else ifprint("成绩良好")
elif score > 60:print("成绩及格")
else:print("成绩不及格")

if 嵌套


score = input("请输入您的成绩>>")  # "100"if score.isdigit():score = int(score)  # 100if score > 100 or score < 0:print("您的输入有误!")elif score > 90:print("成绩优秀")elif score > 70:  # else ifprint("成绩良好")elif score > 60:print("成绩及格")else:print("成绩不及格")
else:print("请输入一个数字")

循环结构

在不少实际问题中有许多具有规律性的重复操作,因此在程序中就需要重复执行某些语句。一组被重复执行的语句称之为循环体,能否继续重复,决定循环的终止条件。

Python语言中的循环语句支持 while循环(条件循环)和for循环(遍历循环)。

while循环

语法:

'''  
while 表达式:循环体
'''    

无限循环

# 案例1
while 1:print("OK")  # 无限循环打印OK,这样使用没有什么意义

限定次数循环,循环打印十遍"hello world"

count = 0  # 初始化语句
while count < 10: # 条件判断print("hello world")count+=1  # 步进语句
print("end")

for 循环

for 循环的语法格式如下:

'''  
for 迭代变量 in 字符串|列表|元组|字典|集合:代码块
'''   

格式中,迭代变量用于存放从序列类型变量中读取出来的元素,所以一般不会在循环中对迭代变量手动赋值;代码块指的是具有相同缩进格式的多行代码(和 while 一样),由于和循环结构联用,因此代码块又称为循环体。

for i in "hello world":print(i)for name in ["张三",'李四',"王五"]:print(name)for i in range(10): # [1,2,3,4,5,6,7,8,9] range函数: range(start,end,step)print(i)

退出循环

如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字。

  • break

当 break 关键字用于 for 循环时,会终止循环而执行整个循环语句后面的代码。break 关键字通常和 if 语句一起使用,即满足某个条件时便跳出循环,继续执行循环语句下面的代码。

  • continue

不同于break退出整个循环,continue指的是退出当次循环。

while 1:num = int(input("num>>"))for i in range(1, num + 1):# if i > 100:if i == 6:# breakcontinueprint(i)

循环与分支嵌套

# 案例2
while 1:score = input("请输入您的成绩>>")  # "100"if score.isdigit():score = int(score)  # 100if score > 100 or score < 0:print("您的输入有误!")elif score > 90:print("成绩优秀")elif score > 70:  # else ifprint("成绩良好")elif score > 60:print("成绩及格")else:print("成绩不及格")else:print("请输入一个数字")

附录

分支结构.py

# 流程控制语句
# 1. 顺序语句:从上至下每条语句有且执行一次
# 2. 分支语句:通过判断一个表达式真与假来决定执行哪一部分代码块
# 3. 循环语句# 顺序
print("OK1")
print("OK2")
print("OK3")name = "alex"
age = 23
pwd = "123"# 单分支语句
if name == "rain" and pwd == "123":print("登录成功")双分支
if age > 18:print("亚洲电影")print("欧美电影")print("国产电影")
else:print("天线宝宝")print("阿童木")print("猫眼三姐妹")# 分支嵌套
name = input("用户名:")
pwd = input("密码:")if name == "rain" and pwd == "123":print("登录成功")age = int(input("年龄:"))print("-------")if age > 18:print("亚洲电影")print("欧美电影")print("国产电影")else:print("亚洲电影")print("欧美电影")print("国产电影")
else:print("登录失败")# 多分支语句  if-elif-elsescore = 97if score > 90:print("优秀")
elif score > 80:print("良好")
elif score > 60:print("及格")
else:print("不及格")

循环结构.py

# 程序员底线:1. 避免重复  2. 结偶
'''
while循环:条件循环
while 表达式:循环语句、'''# 无限循环while 1:name = input("用户名:")pwd = input("密码:")if name == "rain" and pwd == "123":print("登录成功!")else:print("登录失败")# 有数循环# 案例1:打印100次OK或者1-100
count = 0  # 初始语句
while count < 100:  # 判断条件count += 1  # 步进语句:count = count+1print(count)# 案例2:  打印100-1count = 0  # 初始语句
while count < 100:  # 判断条件print(100 - count)count += 1  # 步进语句:count = count+1count = 100  # 初始语句
while count > 0:  # 判断条件print(count)count -= 1  # 步进语句:count = count-1# while 循环的应用# 计算 1+2+3+...+100 的和count = 0  # 初始语句
s = 0
while count < 100:  # 判断条件count += 1  # 步进语句:count = count+1print(count)s += count  # s = s +countprint(s)

退出循环.py

count = 0
while count < 100:  # 判断条件count += 1  # 步进语句:count = count+1if count == 66:# break  # 退出整个循环continue  # 退出当次循环print(count)# 案例1:
while 1:name = input("用户名:")pwd = input("密码:")if name == "rain" and pwd == "123":print("登录成功!")breakelse:print("登录失败")print("程序继续!")
# 案例2:# 计算  1+2+3+... +65+67+...+100
count = 0  # 初始语句
s = 0
while count < 100:  # 判断条件count += 1  # 步进语句:count = count+1if count == 66:continueprint(count)s += count  # s = s +countprint(s)

for循环.py

# for循环:遍历循环# 列表 字典names = ["rain", "yuan", "alex", "alvin"]
print(names[0])
print(names[0:2])
count = 0
while count < len(names):print(names[count])count += 1for i in names:print(i)# break# continue

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

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

相关文章

后端项目操作数据库增删改查-使用MyBatis配置实现数据操作

一、创建一个数据表对应的实体类 在src/main/java/包名/路径下新建pojo.entity文件夹&#xff0c;如com.luoyang.small.pojo.entity&#xff0c;并在该文件夹下新增实体类java文件&#xff1a;如相册Album.java 该实体类的属性应与数据表的字段对应 数据表样例如下&#xff1a…

24年5月软考高项考哪些内容,考试大纲什么的?

信息系统项目管理师属于「计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试」中的高级资格考试。 也称「软考高项」&#xff0c;可以「以考代评」用来评副高级职称。 一、软考备考前期准备 信息系统项目管理师考试科目包括&#xff1a; 《综合知识》、《案例分…

html原生echart柱状图

html原生echart柱状图 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Bar Chart Example</title><!-- Include Chart.js library --><script src"https://cdn.jsdelivr.net/npm/…

Linux的基本指令(4)

目录 20.tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#xff0c;不打开它&#xff0c;直接看内容 21.bc指令 22.uname –r指令&#xff1a; 23.重要的几个热键[Tab],[ctrl]-c, [ctrl]-d 20.tar指令&#xff08;重要&#xff09;&#xff1a;打包/解包&#…

手机上的记事本怎么打开?安卓手机通用的记事本APP

有不少上班族发现&#xff0c;自己想要在电脑上随手记录一些工作文字内容&#xff0c;直接使用电脑上的记事本工具来编辑文字是比较便捷的。但是如果想要在手机上记录文字内容&#xff0c;就找不到手机上的记事本了。那么手机上的记事本怎么打开&#xff1f;安卓手机通用的记事…

Windows环境 dockertopdesk 部署gitlab

1.在dockertopdesk里搜索 gitlab镜像 (pull)拉取镜像 2.运行镜像到容器 mkdir gitlab gitlab/etc gitlab/log gitlab/opt docker run -id -p 3000:80 -p 9922:22 -v /root/gitlab/etc:/etc/gitlab -v /root/gitlab/log:/var/log/gitlab -v /root/gitlab/opt:/var/opt/gitla…

百度智能云文字识别使用问题解决合集

1.创建试用程序时需要16位的签名MD5 解决方法&#xff1a;使用Java8 201版本及以下的jdk创建签名 下载地址&#xff1a;http://www.codebaoku.com/jdk/jdk-oracle-jdk1-8.html#jdk8u201 生成签名代码&#xff1a;keytool -genkeypair -v -keystore D:\key.jks -storetype PKC…

EasyExcel两行表头

例子&#xff1a; 代码&#xff1a; StorageService localStorageService storageFactory.getLocalStorageService();String path "";// 文件信息String dateTime DateUtils.formatTimestampToString(new Date());String title "xxx统计";String fil…

MySQL之锁

MySQL之锁 锁是计算机在执行多线程或线程时用于并发访问同一共享资源时的同步机制&#xff0c;MySQL中的锁是在服务器层或者存储引擎层实现的&#xff0c;保证了数据访问的一致性与有效性 MySQL锁可以按模式分类为&#xff1a;乐观锁与悲观锁。 按粒度分可以分为全局锁、表级锁…

GoLong的学习之路,进阶,微服务之原理,RPC

其实我早就很想写这篇文章了&#xff0c;RPC是一切现代计算机应用中非常重要的思想。也是微服务和分布式的总体设计思想。只能说是非常中要&#xff0c;远的不说&#xff0c;就说进的这个是面试必问的。不管用的上不&#xff0c;但是就是非常重要。 文章目录 RPC的原理本地调用…

flutter开发实战-ValueListenableBuilder实现局部刷新功能

flutter开发实战-ValueListenableBuilder实现局部刷新功能 在创建的新工程中&#xff0c;点击按钮更新counter后&#xff0c;通过setState可以出发本类的build方法进行更新。当我们只需要更新一小部分控件的时候&#xff0c;通过setState就不太合适了&#xff0c;这就需要进行…

OSI七层模型与TCP/IP四层模型的区别(计算机网络)

一、OSI七层网络模型 OSI 网络模型共有 7 层&#xff0c;分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。 应用层&#xff0c;负责给应用程序提供统一的接口&#xff1b;表示层&#xff0c;负责把数据转换成兼容另一个系统能识别的格式&#xff1b;会话…

NDK打印android日志

首先在cpp文件中 引入 #include <android/log.h> 然后就可以使用 __android_log_print方法&#xff0c;第一个参数是log level&#xff0c;第二个是tag&#xff0c;第三个是日志内容。 #include <jni.h> #include <string> #include <android/log.h&g…

Syntax Error: TypeError: Cannot read properties of undefined (reading ‘styles‘)

日志只有这一行&#xff0c;比较难排查 排查途径&#xff1a; 1、从上图找到唯一的文件输出output.js&#xff0c;断点查看堆栈信息&#xff0c;如下图&#xff0c;可以看到这个错误是由于哪个文件引起的 以为从App.vue中定位到原因了&#xff0c;其实也不对&#xff0c;继续…

nnDetection简明安装和训练流程(Windows环境)

安装 首先&#xff0c;官方不建议Windows安装&#xff0c;推荐Linux Docker 我的环境&#xff1a; ● 操作系统平台&#xff1a; Windows 10 ● Python&#xff1a; 3.8 ● Torch/TorchVision&#xff1a; 1.10.1cu102/ 0.11.1 ● GPU&#xff1a; Nvidia RTX 2080 Ti 11G…

FTP协议详解

一&#xff1a;概述 FTP协议是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议&#xff0c;其英文全称是File Transfer Protocol。是TCP/IP协议簇中的重要一员。客户端和服务器按照FTP的协议规范进行通讯来实现文件传输。 对于FTP服务器好理解&#xff0c…

B.牛牛排队伍——模拟双链表

当前位置: 首页 > news >正文 B.牛牛排队伍——模拟双链表 news 2023/12/1 15:14:37 分析 题目其实很简单,就是双链表的增删查,但是刚开始,直接vis标记删除元素,查找一个位置的前一个用的while不断向前找,但是TLE;毕竟O(n*k)的复杂度,一开始没有考虑时间复杂度…

2023第十二届“认证杯”数学中国数学建模国际赛赛题A完整解析

A题完整题解 写在前面假设数据预处理 问题一1 基于自适应ARIMA-BP神经网络模型的影响因素预测1.1 ARIMA模型的建立1.2 BP神经网络模型的建立1.3 基于GABP神经网络的预测模型构建1.4 自适应混合ARIMA-BP神经网络模型的建立1.5 模型求解 代码Q1_1.mQ1_2.m 完整代码与论文获取 写在…

如何快速选出一支好股票?

俗话说得好&#xff1a;股票选得好&#xff0c;收益少不了&#xff01;不用多说&#xff0c;相信大伙儿都知道选一支好股票究竟有多重要。 但是选股可不像咱们去菜市场买菜一样&#xff0c;看着顺眼就成。选股&#xff0c;其实是一个专业性特别强的技术活儿。 目前最常用的选股…

xcode swiftui项目添加依赖

打开项目targets——Build Phases 点击“” 属于Apple SDKs的依赖可以直接添加 其他依赖需要在 Add Other中添加&#xff0c;在右上角用名字搜索或者URL地址(如GitHub上插件的地址)搜索,然后添加&#xff0c;也可添加本地文件