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:breakprint(i, end=",")
print("\n分割线——————————")
for i in range(1, 6):if i == 3:continueprint(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 = 1return selfdef __next__(self):x = self.aself.a += 1return xmyclass = 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.aself.a += 1return xelse: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, 1count = 0while True:if count >= n:  # 检查是否已达到所需的斐波那契数数量break  # 退出循环yield aa, b = b, a + bcount += 1  # 更新计数
yie = fibonacci(5)  # 生成前5个斐波那契数
while True:try:print(next(yie), end=" ")except StopIteration:sys.exit()  # 调用函数来退出程序

在这里插入图片描述

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

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

相关文章

Java框架学习(mybatis)(01)

简介&#xff1a;以本片记录在尚硅谷学习ssm-mybatis时遇到的小知识 详情移步&#xff1a;想参考的朋友建议全部打开相互配合学习&#xff01; 官方文档&#xff1a; MyBatis中文网https://mybatis.net.cn/index.html 学习视频&#xff1a; 067-mybatis-介绍和对比_哔哩哔…

《向量数据库指南》——Zilliz迁移服务:一键解锁跨平台数据迁移新纪元

在数据驱动的时代背景下&#xff0c;非结构化数据的处理与迁移已成为企业数字化转型中不可或缺的一环。随着向量数据库技术的飞速发展&#xff0c;尤其是像Milvus这样的高性能向量数据库系统的广泛应用&#xff0c;如何高效、安全、准确地实现数据在不同系统间的迁移&#xff0…

Arthas mc(Memory Compiler/内存编译器 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.2 mc &#xff08;Memory Compiler/内存编译器 &#xff09;举例1&#xff1a;可以通过-d命令指定输出目录&#xff1a;mc -d /temporary/tmp /temporary/tmp/AccountController.java举例2&#xff1a;通过--classLoade…

书生大模型实战营学习[7] InternLM + LlamaIndex RAG 实践

环境配置 选择30%A100做本次任务 conda create -n llamaindex python3.10 conda activate llamaindex conda install pytorch2.0.1 torchvision0.15.2 torchaudio2.0.2 pytorch-cuda11.7 -c pytorch -c nvidia pip install einops pip install protobuf安装Llamaindex cond…

2024年9月27日历史上的今天大事件早读

1540年09月27日罗马教皇正式批准耶稣会 1605年09月27日吉尔霍尔姆战役爆发 1825年09月27日世界第一条铁路在英国正式通车 1840年09月27日美国海军战略思想家马汉出生 1858年09月27日天地会起义&#xff0c;建立大成国 1910年09月27日橡胶股灾亡国录 1913年09月27日孙中山…

隆道供应商四大类服务升级全面速览!

隆道供应商服务升级&#xff0c;全流程在线业务协同场景&#xff0c;支持系统性交易协同服务和企业营销&#xff0c;通过持续深入洞察供应商的核心需求&#xff0c;对营销类、协同类、风控类及数据类四大关键服务进行了全面升级。推出一系列创新应用&#xff0c;致力于帮助供应…

项目启动错误

说明&#xff1a;记录一次项目启动&#xff0c;报数据库访问错误&#xff0c;如下&#xff1a; 错误信息&#xff1a;Invalid default&#xff1a;public abstract java.lang.Class tk.mybatis.spring.annotation.MapperScan.fatoryBean() 解决 没有引入mybatis依赖&#xff…

AlphaFold3 | 详解 AlphaFold3 的模型结构及其在不同类型的预测实验中的表现

Jumper 本文将介绍 24 年 5 月发布的 Alaphafold3&#xff0c;其以“使用 AlphaFold 3 进行生物分子相互作用的精确结构预测”为标题发表在《nature》上&#xff0c;通讯作者为 Jumper。 Jumper 具有物理、化学、生物和计算方面的丰富背景。Jumper 本科学的是物理和数学&#…

Python中的数据处理与分析:从基础到高级

在数据科学和数据分析领域&#xff0c;Python凭借其丰富的库和强大的生态系统&#xff0c;成为了最受欢迎的语言之一。本文将从基础到高级&#xff0c;详细介绍如何使用Python进行数据处理和分析&#xff0c;涵盖数据清洗、数据转换、数据可视化等多个方面。 1. 数据导入与导出…

网络安全专业,在校大学生如何赚外快,实现财富自由?零基础入门到精通,收藏这一篇就够了

如今&#xff0c;计算机行业内卷严重&#xff0c;我们不找点赚外快的路子这么行呢&#xff1f; 今天就来说说网络安全专业平时都怎么赚外快。 一、安全众测 国内有很多成熟的src众测平台&#xff0c;如漏洞盒子、火线众测、补天、CNVD、漏洞银行等。一些大厂也有自己的src&a…

下载配置Android Studio(2024年9月)

安装JAVA JDK 下载安装包 Java网站官网 Java Downloads | Oracle 我下载的是JDK Development Kit 17.0.12 downloads Windows x64 MSI Installer。 下载后打开文件&#xff0c;一路NEXT闭眼安装。 配置环境变量 设置-系统-系统高级设置-环境变量 1.新建一个系统环境变量&…

【Linux系统编程】第二十四弹---从零到一:掌握进程替换的奥秘

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、进程程序替换 1.1、替换原理 1.2、替换函数 1.3、函数解释 1.4、命名理解 1.5、代码演示 1.5.1、execl调用举例 1.5…

Dina: 1.0.1靶场

下载链接&#xff1a;https://download.vulnhub.com/dina/Dina-1-0-1.ova 一、信息收集 靶机界面 扫描主机ip arp-scan -l 扫描端口 nmap -p- -A 192.168.137.129 扫描目录 dirb http://192.168.137.129/ 打开网站 没有太多有用信息&#xff0c;点击提交后会有个目录 依旧…

HDFS分布式文件系统01-HDFS JAVA操作与联邦机制

HDFS分布式文件系统 参考学习目标第三课时知识点1-HDFS的Java API介绍知识点2-案例-使用Java API操作HDFS 第四课时知识点1-Federation机制的实现原理知识点2-Federation机制的特点知识点3-Federation机制的实现知识点4-Erasure Coding 参考 maven的setting.xml配置文件详解 …

软件测评CNAS认可实验室程序文件之检测报告的编制和交付程序

软件测评实验室在申请CNAS认可时&#xff0c;需要根据相关准则文件的要求&#xff0c;建立质量管理体系&#xff0c;其中程序文件是质量管理体系中非常重要的一环。在前面的文章中&#xff0c;我们为大家整体介绍了CNAS软件测评实验室程序文件主要都有哪些&#xff0c;以及对部…

Pygame中Sprite实现逃亡游戏4

在《Pygame中Sprite实现逃亡游戏3》中实现了玩家跳跃飞火的效果&#xff0c;接下来通过精灵类的碰撞检测来判断飞火是否击中玩家、飞火是否击中飞龙以及飞龙是否抓住玩家。 1 飞火是否击中玩家的判断 判断飞火是否击中玩家的代码如图1所示。 图1 判断飞火是否击中玩家的代码 …

使用Docker快速本地部署RSSHub结合内网穿透访问RSS订阅源

文章目录 前言1. Docker 安装2. Docker 部署Rsshub3. 本地访问Rsshub4. Linux安装Cpolar5. 配置公网地址6. 远程访问Rsshub7. 固定Cpolar公网地址8. 固定地址访问 前言 今天和大家分享的是如何在本地快速简单部署Rsshub工具&#xff0c;并结合cpolar内网穿透工具使用公网地址远…

心觉:如何重塑高效学习的潜意识(3)东西很好,但用不起,怎么破?

Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松掌控自己的人生&#xff01; 挑战每日一省写作182/1000天 上篇文章我们讲了喜欢系统化学习的人的底层逻辑 已经做到了知己&#xff0c;还需要做到知彼&#xff0c;才能百战不殆…

学习Java(二)

1.条件语句 package com.msb.test02;public class TestIf01 {//条件语句public static void main(String[] args) { // 需求判定一个数是否大于10 // 给定一个数&#xff1b;int num 18;if (num > 10) {System.out.println("大于10的");}else {Sy…

C++11:现代C++的演变与提升

目录 前言 一、统一的列表初始化 1、{}初始化 2、std::initializer_list 二、新的声明 1、auto 2、decltype 3、nullptr 三、范围for循环 四、右值引用与移动语义 1. 左值 vs 右值 2、移动构造与移动赋值 3、 move转换 4、完美转发&#xff1a;forward 五、lamb…