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

python的逻辑控制

python逻辑执行

      • python条件控制
        • if嵌套
        • 循环语句
        • 内置函数range()
        • Pass语句
      • python迭代器与生成器
        • 在python中创建一个迭代器
        • 生成器yield

python条件控制

# 在python中,不使用括号将条件固定
if exp: # 条件满足则执行,后续语句不执行
    # 不使用{}将执行语句固定,也没有;作为结尾
    statement
elif exp:# 条件满足则执行,后续语句不执行
    statement
else:# 上面的条件都不满足则执行
    statement

以上就是条件语句基本执行过程。

a = [1,2,3,4,5]
if 1 in a:
    print("1在a里面")
else:
    print("1不在a里面")
    
if 1 not in a:
    print("1不在a里面")
elif 1 in a:
    print("在a里面")

在这里插入图片描述

if嵌套
if 表达式1:
    语句
    if 表达式2:
        语句
    elif 表达式3:
        语句
    else:
        语句
elif 表达式4:
    语句
else:
    语句

if语句可以嵌套在if语句中,这样写时需要注意语句的对其方式,因为python是使用空格进行对齐的。

num = int(input("请输入一个数字:"))
if num % 5 == 0:
    if num % 3 == 0:
        print("你的数字可以被5和3整除")
    else:
        print("你的数字可以被5整除,不能被3整除")
else:
    if num % 3 == 0:
        print("你的数字可以被3整除,不能被5整除")
    else:
        print("你的数字不可以被5和3整除")

在这里插入图片描述

循环语句
# while :满足条件执行,不满足条件不执行
while True:
    语句 # 无限循环
# for : 满足条件执行,不满足条件不执行
for 条件循环:
    语句

示例:

# 简单示例
for i in range(1, 6):
    print(i, end=",")
i = 5
while i >= 0:
    print(i, end=",")
    i -= 1

在这里插入图片描述

内置函数range()

range()是在python中比较常用的一个函数,在range()函数参数为数字

range(1,6)范围中等于1小于6的数字:12345

range(1,6,2)范围中1~5,跨步为2–》1,3,5步长也可以为负数,负数就是倒着进行读取

range(stop):可以填写列表,元组,集合以及其他数据类型。

示例:

# 配合函数一起使用
# 简单用法
for i in range(1, 6):
    print(i, end=",")

print("分割线——————————")
# 跨步用法
for i in range(1, 6, 2):
    print(i, end=",")

print("分割线——————————")
# 步长为负数
for i in range(6, 1, -2):
    print(i, end=",")

print("分割线——————————")
# 应用列表
list1 = [1, 2, 3, 4, 5, 6]
for i in range(len(list1)):
    print(i, end=",")

在这里插入图片描述

Pass语句

在一些暂时不用实现的方法来使用pass可以保证暂时不会报错。

在python中同样有bleakcontinue语句,和其他语言都是一样的用法。

break:退出当前循环。

continue:结束当前执行的循环,直接开启下一段循环(如果有的话)。

for i in range(1, 6):
    if i == 5:
        break
    print(i, end=",")
print("\n分割线——————————")
for i in range(1, 6):
    if i == 3:
        continue
    print(i, end=",")

在这里插入图片描述

python迭代器与生成器

iter()和next(),配合使用。首先iter是作为一个对象存在的,而next是用于遍历这个对象存在的。

list = [1,2,3,4]
it = iter(list)
print(next(it))
print(next(it))

在这里插入图片描述

这个next相当于做了一个循环的作用。

在python中创建一个迭代器

在python中创建一个迭代器需要实现两个函数iter(),next()。使用__iter__中返回一个特殊的迭代对象。这个迭代器实现了一个__next__方法将通过标识将迭代完成。

class MyNumbers:
  def __iter__(self):
    self.a = 1
    return self
 
  def __next__(self):
    x = self.a
    self.a += 1
    return x
 
myclass = MyNumbers()
myiter = iter(myclass)
 
print(next(myiter), end=" ")
print(next(myiter), end=" ")
print(next(myiter), end=" ")
print(next(myiter), end=" ")
print(next(myiter), end=" ")

在这里插入图片描述

在实现迭代器中需要使用到一个标识符Stoplteration 用于终止标识迭代的完成。

def __next__(self):
    if self.a <= 20:
      x = self.a
      self.a += 1
      return x
    else:
      raise StopIteration
生成器yield

yield:相当于是一个暂停键!不过也可以将这个看作一个迭代器,因为作为一个生成器,当执行到生成器这段代码时,yield会将结果返回,执行下一段代码,然后执行后又会回到这段代码中。

使用yeild来写一个__斐波那契__数(也就是a = 1 ,b = 1,c = a+b a = b,b = c+a……)相信记得的同学应该可以看明白

import sys
def fibonacci(n):  # 生成器函数
    a, b = 1, 1
    count = 0
    while True:
        if count >= n:  # 检查是否已达到所需的斐波那契数数量
            break  # 退出循环
        yield a
        a, b = b, a + b
        count += 1  # 更新计数
yie = fibonacci(5)  # 生成前5个斐波那契数
while True:
    try:
        print(next(yie), end=" ")
    except StopIteration:
        sys.exit()  # 调用函数来退出程序

在这里插入图片描述


http://www.kler.cn/news/323923.html

相关文章:

  • JAVA打造全球商品集散地国际版多商户商城系统小程序源码
  • 1. go 环境与命令
  • python 获取当前git的repo地址
  • electron 设置界面右下角打开
  • 浅谈java异常[Exception]
  • JAVA红娘婚恋相亲交友系统源码全面解析
  • python 实现gradient boosting regressor梯度增强回归器算法
  • 车间调度问题数学建模与CPLEX优化
  • conda安装包离线安装环境
  • SO-ELM预测 | MATLAB实现SO-ELM蛇群算法优化极限学习机多输入单输出
  • Elasticsearch导出导入数据
  • GraphQL规范
  • C++动态内存管理
  • 基于大数据的亚健康人群数据分析及可视化系统
  • GEE 教程:如何在谷歌地球引擎中使用克里金插值?
  • ArcGIS Pro高级地图可视化—双变量符号地图
  • 极品飞车14热力追踪原始版高清重制版MOD分享
  • QT开发:深入详解Qt 核心类QTimer的概念及应用
  • Linux网络之UDP与TCP协议详解
  • wpf在图上画矩形,矩形可拖动、大小可调节,使用装饰器Adorner调整矩形大小,限制拖动和调节范围
  • Go语言流程控制
  • “AI+Security”系列第3期(四):360安全大模型业务实践
  • 一文上手Kafka【中】
  • 叉车高位显示器无线摄影,安装更加便捷!
  • 从“纸面算力”到“好用算力”,超聚变打通AI+“最后一公里”
  • RabbitMQ高级特性-重试机制
  • 备考中考的制胜法宝 —— 全国历年中考真题试卷大全
  • 【C++笔记】初始模版和STL简介
  • Python项目周报
  • ChatGPT 提取文档内容,高效制作PPT、论文