当前位置: 首页 > article >正文

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)  # 100

if score > 100 or score < 0:
    print("您的输入有误!")
elif score > 90:
    print("成绩优秀")
elif score > 70:  # else if
    print("成绩良好")
elif score > 60:
    print("成绩及格")
else:
    print("成绩不及格")

if 嵌套


score = input("请输入您的成绩>>")  # "100"

if score.isdigit():
    score = int(score)  # 100
    if score > 100 or score < 0:
        print("您的输入有误!")
    elif score > 90:
        print("成绩优秀")
    elif score > 70:  # else if
        print("成绩良好")
    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:
            # break
            continue
        print(i)

循环与分支嵌套

# 案例2
while 1:
    score = input("请输入您的成绩>>")  # "100"

    if score.isdigit():
        score = int(score)  # 100
        if score > 100 or score < 0:
            print("您的输入有误!")
        elif score > 90:
            print("成绩优秀")
        elif score > 70:  # else if
            print("成绩良好")
        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-else

score = 97

if 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+1
    print(count)

# 案例2:  打印100-1

count = 0  # 初始语句
while count < 100:  # 判断条件
    print(100 - count)
    count += 1  # 步进语句:count = count+1

count = 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+1
    print(count)
    s += count  # s = s +count

print(s)


退出循环.py

count = 0
while count < 100:  # 判断条件
    count += 1  # 步进语句:count = count+1
    if count == 66:
        # break  # 退出整个循环
        continue  # 退出当次循环

    print(count)

# 案例1:
while 1:
    name = input("用户名:")
    pwd = input("密码:")
    if name == "rain" and pwd == "123":
        print("登录成功!")
        break
    else:
        print("登录失败")

print("程序继续!")
# 案例2:

# 计算  1+2+3+... +65+67+...+100
count = 0  # 初始语句
s = 0
while count < 100:  # 判断条件
    count += 1  # 步进语句:count = count+1
    if count == 66:
        continue
    print(count)
    s += count  # s = s +count

print(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 += 1

for i in names:
    print(i)
    # break
    # continue





http://www.kler.cn/a/156757.html

相关文章:

  • 1111111111待修改--大流量分析(三)-BUUCTF
  • Postman上传图片如何处理
  • Unity3D实现视频和模型融合效果
  • Flutter Getx状态管理
  • 【C++】C++11特性(上)
  • 24/11/13 算法笔记<强化学习> DQN算法
  • HTML5+CSS3+Vue小实例:浪漫的心形文字动画特效
  • FFmpeg在Centos服务器上离线安装(包含所需依赖)并实现拉取rtsp流与推送至rtmp服务器
  • c++学习第四讲---函数提高
  • 跟着Nature Communications学习Hisat-Trinity-PASA等分析流程
  • 在windows上使用多个版本的chrome(谷歌)浏览器
  • java语言中受检异常和非受检异常的区别是什么?
  • 免费百度SEO优化工具,百度SEO优化排名工具
  • 网络运维与网络安全 学习笔记2023.11.30
  • 基于Python Flask 的全流程全栈项目自己的实战心得
  • 《opencv实用探索·九》中值滤波简单理解
  • 鸿蒙开发:Stage模型开发-应用/组件级配置以及UIAbility组件初步使用【鸿蒙专栏-20】
  • informer辅助笔记:exp/exp_informer.py
  • 【2021研电赛】基于EAIDK310的视觉导航自动驾驶小车
  • 【C语言】扫雷小游戏初学者版
  • 网络调试助手 连接Onenet 多协议接入平台 TCP透传协议
  • 专业爬虫框架 -- scrapy初识及基本应用
  • C++继承(详解)
  • 聚焦数据库Serverless创新,就在2023亚马逊云科技re:Invent
  • 科技云报道:AI+PaaS,中国云计算市场迎来新“变量”?
  • React Native expo Android adb 调试出现 device not found 怎么办