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

python学习第三天

条件判断

        条件判断使用ifelifelse关键字。它们用于根据条件执行不同的代码块。

# 条件判断
age = 18
if age < 18:print("你还是个孩子!")
elif age == 18:print("永远十八岁!")
else:print("你还年轻!")

循环

        Python中有两种主要的循环结构:for循环和while循环。

for循环

   for循环用于遍历序列(如列表、元组、字符串等)中的每个元素。

# for循环 遍历序列
array = ['test',1,[1,2,3,4,5]]
for arr in array:# 使用type函数判断类型 类似于java的判断类型instanceof 多进行类比if type(arr)==list:for a in arr:print('我是第二层循环:',a)else:        print(arr)
# 循环字典 实例
disc = [{'name':'python','age':18},{'name':'java','age':18}]
for arr in disc:# 使用type函数判断类型 类似于java的判断类型instanceof 多进行类比if arr.get('name')=='python':print('我是python')else:print('我是java')

while循环

       while循环在条件为True时重复执行代码块。

# while循环 比如累加计算
count = 0
total = 0
while count <= 100:count += 1total = total + count
print(total)

循环内部操作

关键字作用适用场景
pass空操作,什么都不做,仅占位。当语法上需要语句但逻辑上不需要操作时。在编写代码时,如果某些逻辑暂时不需要实现,但需要保持语法正确性,可以使用 pass(简单来说就是保证语法的正确性
continue跳过当前迭代的剩余代码,直接进入下一次循环。当需要跳过某些特定条件的迭代时。
break立即终止整个循环,不再执行后续迭代。当满足某个条件时需要提前退出循环时。
else当循环正常结束(未被 break 中断)时执行 else 块中的代码。当需要在循环正常结束后执行某些操作时。
# pass使用 当语法上需要语句但逻辑上不需要操作时 在编写代码时,如果某些逻辑暂时不需要实现,但需要保持语法正确性,可以使用 pass。可以点到range里看下 很多用到了pass
for i in range(10):if i == 2:passprint(f" i == {i} ")else:print(i)if i == 3:# 保证代码的完整性 如果有复杂的代码 需要待实现的部分就可以使用了pass
# continue跳过本次循环
for i in range(10):if i == 3:continueelse:print(i) # 打印结果 0-9 不含3
# break结束本次循环
for i in range(10):if i == 3:breakelse:print(i) # 打印结果 0 - 2
# else 除了break 不执行else外 其他的都会执行
for i in range(10):break
else:print("循环正常结束") # 因为break 不会被执行
for i in range(10):continue
else:print("循环正常结束") # 正常打印
for i in range(10):pass
else:print("循环正常结束")  # 正常打印

列表操作

        学到了循环,就要学习关于列表的元素的操作,其中包括查询、修改、插入、删除、排序等操作(实例:animal = ['dog','cat','elephant','rabbit']也可以看下面的查询修改中的实例)。

操作方法/语法描述示例
查询list[index]通过索引访问元素,索引从 0 开始。animal[0] 返回 "dog"
list[-1]或者list[len(list)-1]访问最后一个元素。animal[-1] 或者animal[len(animal)-1]返回 "rabbit"
list[start:end]切片操作,获取从 start 到 end-1 的子列表。左开右闭区间。animal[0:2] 返回 ["dog", "cat"]
list.index(value)返回第一个匹配元素的索引。animal.index("cat") 返回 1
value in list检查元素是否在列表中。"monkey" in animal 返回 False
修改list[index] = value修改指定索引处的元素。animal[1] = "monkey" 将 "cat" 修改为 "monkey"
list[start:end] = [values]修改切片范围内的元素。animal[0:2] = ['giraffe','ant'] 替换 "dog" 和 "cat"
删除del list[index]删除指定索引处的元素。del animal[1] 删除 "cat"
list.remove(value)删除第一个匹配的元素。animal.remove("elephant") 删除 "elephant"
list.pop(index)删除并返回指定索引处的元素(默认删除最后一个元素)。animal.pop(1) 删除并返回 "dog"
list.clear()清空列表中的所有元素。animal.clear() 清空列表并返回 []
插入list.append(value)在列表末尾添加一个元素。animal.append("rat") 添加"rat"
list.insert(index, value)在指定索引处插入一个元素。animal.insert(2, "lion") 在索引 2 处插入 "lion"
list.extend(iterable)将另一个可迭代对象的所有元素添加到列表末尾。animal.extend(["fish", "shrimp"]) 添加 "fish" 和 "shrimp"
其他操作len(list)返回列表的长度。len(animal) 返回 4
list.sort()对列表进行排序(默认升序)。animal.sort() 排序列表
list.reverse()反转列表中的元素顺序。animal.reverse() 反转列表
list.copy()返回列表的浅拷贝。深拷贝方法为deepcopy()new_animal = animal.copy() 创建 animal的副本
list.count(value)返回列表中匹配元素的个数。animal.count("cat") 返回 1

查询

# 列表查询操作  通过索引访问元素,索引从0开始。
animal = ['dog','cat','elephant','rabbit']
# 获取cat
print(animal[1]) # 输出:cat
# list[-1] 函数访问最后一个函数 或者 list[len()-1]
print(animal[len(animal)-1]) # 输出:rabbit
# list[start:end] 切片操作,获取从start到end-1的子列表。左闭右开
print(animal[0:2]) # 输出:['dog', 'cat']
# list.index(value) 返回第一个匹配元素的索引。
print(animal.index('cat')) #输出:1
# in 是否在集合中
print('monkey' in animal) #输出:false

修改

# 列表修改操作
animal = ['dog','cat','elephant','rabbit']
# cat修改为monkey
animal[1]= 'monkey'
print(animal) # 输出: ['dog', 'monkey', 'elephant', 'rabbit']
# list[start:end] = [values] 修改切片范围内的元素。 dog和monkey修改为giraffe和ant 注意使用[1,2]会变成添加['dog', 'giraffe', 'ant', 'elephant', 'rabbit']考虑为什么
animal[0:2]= ['giraffe','ant']
print(animal) # 输出: ['dog','monkey','giraffe','ant']

删除

# 列表删除操作
animal = ['dog','cat','elephant','rabbit']
# del list[index] 删除指定索引处的元素。
del animal[1]
print(animal) # 输出: ['dog', 'elephant', 'rabbit']
# list.remove(value) 删除第一个匹配的元素。
animal.remove('elephant')
print(animal) # 输出: ['dog', 'rabbit']
# list.pop(index)	删除并返回指定索引处的元素(默认删除最后一个元素)。
animal.pop()
print(animal) # 输出: ['dog']
# list.clear()	清空列表中的所有元素。	animal.clear()清空列表
animal.clear()
print(animal) # 输出: []

插入

# 列表添加操作
animal = ['dog','cat','elephant','rabbit']
# list.append(value)	在列表末尾添加一个元素
animal.append('rat')
print(animal) # 输出: ['dog','cat','elephant','rabbit','rat']
# list.insert(index, value)	在指定索引处插入一个元素。
animal.insert(2,'lion')
print(animal) # 输出: ['dog', 'cat', 'lion', 'elephant', 'rabbit', 'rat']
# list.extend(iterable)	将另一个可迭代对象的所有元素添加到列表末尾。 shrimp虾
animal.extend(['fish','shrimp'])
print(animal)   # 输出: ['dog', 'cat', 'lion', 'elephant', 'rabbit', 'rat', 'fish', 'shrimp']

  其他操作

# 列表其他操作
animal = ['dog','cat','elephant','rabbit']
# len(list)	返回列表的长度。
print(len(animal)) # 4
# list.sort()	对列表进行排序(默认升序)。
animal.sort()
print(animal) # ['cat', 'dog', 'elephant', 'rabbit']
# list.reverse()	反转列表中的元素顺序。
animal.reverse()
print(animal) # ['rabbit', 'elephant', 'dog', 'cat']
# list.copy()	返回列表的浅拷贝。
new_animal = animal.copy()
print(new_animal) # ['rabbit', 'elephant', 'dog', 'cat']
# list.count(value) 返回列表中匹配元素的个数。
print(animal.count('cat')) # 1

代码块

        在Python中,代码块是通过缩进来定义的。通常使用4个空格或一个Tab键(跟java不同的是使用代码缩进来完成java代表是以{开始或者以}结束为一个代码块)来缩进。代码块用于组织代码,使其在逻辑上成为一个整体。

# 这是一个代码块 input函数式输入框 类似与java的system.in输入 系统输入
s = int(input('请输入一个数字:'))
if s > 0: # 也可以写if(s >0 )但是没必要 因为python给个提示建议去掉 保证代码的按照缩进来进行更加规范print("这个数字是大于0的数字!")  # 这行代码属于if语句的代码块
elif s == 0:print("这个数字是等于0的数字!")  # 这行代码属于elif语句的代码块
else:print("这个数字是小于0的数字!")  # 这行代码属于else语句的代码块

方法块

        在Python中,使用def关键字来定义函数。函数是一段可重用的代码,可以接受参数并返回结果。

# def来定义方法
def method1(name,age):print('姓名:'+name,'年龄:'+age)
input(method1('python','18'))

相关文章:

python学习第三天

条件判断 条件判断使用if、elif和else关键字。它们用于根据条件执行不同的代码块。 # 条件判断 age 18 if age < 18:print("你还是个孩子&#xff01;") elif age 18:print("永远十八岁&#xff01;") else:print("你还年轻&#xff01;")…...

深入解析 Svelte:下一代前端框架的革命

深入解析 Svelte&#xff1a;下一代前端框架的革命 1. Svelte 简介 Svelte 是一款前端框架&#xff0c;与 React、Vue 等传统框架不同&#xff0c;它采用 编译时&#xff08;Compile-time&#xff09; 方式来优化前端应用。它不像 React 或 Vue 依赖虚拟 DOM&#xff0c;而是…...

C++20 中位移位运算符的统一行为:深入解析与实践指南

文章目录 1. 位移位运算符的基础1.1 左移运算符&#xff08;<<&#xff09;1.2 右移运算符&#xff08;>>&#xff09; 2. C20 对位移位运算符的统一2.1 移位数量超出操作数位宽2.2 负数移位 3. 实践中的注意事项4. 示例代码5. 总结 在 C 的发展历程中&#xff0c;…...

Linux——基本指令

我们今天学习Linux最基础的指令 ls 指令 语法&#xff1a; ls [选项] [⽬录或⽂件] 功能&#xff1a;对于⽬录&#xff0c;该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件&#xff0c;将列出⽂件名以及其他信 息。 命令中的选项&#xff0c;一次可以传递多个 &#xff0c…...

MySql面试总结(二)

WHERE 子句优化 截至2024年7月,MySQL最新稳定版本是8.2,并不存在MySQL 8.4 。下面从常见的几个方面为你介绍 MySQL 8.x 中 WHERE 子句的优化方法: 1. 确保使用索引 原理:索引可以加快数据的查找速度,当 WHERE 子句中的条件列有索引时,MySQL 可以直接定位到符合条件的数…...

Pytorch中的主要函数

目录 一、torch.manual_seed(seed)二、torch.cuda.manual_seed(seed)三、torch.rand(*size, outNone, dtypeNone, layouttorch.strided, deviceNone, requires_gradFalse)四、给大家写一个常用的自动选择电脑cuda 或者cpu 的小技巧五、torch.version.cuda&#xff1b;torch.bac…...

Java实现大数据量导出报表

一、实现方式 在Java中&#xff0c;导出数据到Excel有多种方式&#xff0c;每种方式都有其优缺点&#xff0c;适用于不同的场景。以下是常见的几种方式及其特点&#xff1a; 1.1 Apache POI Apache POI 是 Java 中最流行的库&#xff0c;支持读写 Excel 文件&#xff08;包括…...

大语言模型 智能助手——既能生成自然语言回复,又能在必要时调用外部工具获取实时数据

示例代码&#xff1a; import json from langgraph.graph import Graph, END,StateGraph from langchain_core.utils.function_calling import convert_to_openai_function from langchain_community.tools.openweathermap import OpenWeatherMapQueryRun from langchain_core…...

PyTorch 系统教程:理解机器学习数据分割

数据分割是机器学习中的一个基本概念&#xff0c;它直接影响模型的性能和泛化。在本文中&#xff0c;我们将深入研究为什么数据分割在机器学习中很重要&#xff0c;并演示如何使用PyTorch有效地实现它。 理解数据分割 数据分割是将数据集划分为单独的组以进行训练、验证和测试…...

分水岭算法(Watershed Algorithm)教程:硬币分割实例

import cv2 import numpy as np# 1. 图像预处理 img cv2.imread("./water/water_coins.jpeg") gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) ret, thresh cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV cv2.THRESH_OTSU) kernel np.ones((3, 3), np.int8)…...

【STM32项目实战系列】基于STM32G474的FDCAN驱动配置

前言&#xff1a;本周工作中用到了CANFD的驱动&#xff0c;由于以前都是用到的CAN2.0&#xff0c;所以过程并不是特别的顺利&#xff0c;所以中间遇到几个比较小的问题导致自己卡住了一段时间&#xff0c;特此记录一下并完全奉上自己的配置的源码。 1&#xff0c;CANFD配置与简…...

shell文本处理

shell文本处理 一、grep ​ 过滤来自一个文件或标准输入匹配模式内容。除了 grep 外&#xff0c;还有 egrep、fgrep。egrep 是 grep 的扩展&#xff0c;相当于 grep -E。fgrep 相当于 grep -f&#xff0c;用的比较少。 用法 grep [OPTION]... PATTERN [FILE]...支持的正则描述…...

如何利用客户端双向TLS认证保护云上应用安全

双向TLS(mTLS)通过要求服务器和客户端双方使用数字证书来验证彼此身份&#xff0c;从而扩展了传统TLS的安全性。常规的TLS只会验证服务器的身份(如大家的浏览器在验证网站时的场景)&#xff0c;而mTLS确保在任何数据交换发生之前&#xff0c;双方都对彼此持有信任。在本文中&am…...

nlp第十节——LLM相关

一、模型蒸馏技术 本质上是从一个大模型蒸馏出小模型&#xff0c;从小模型训练出来的概率分布&#xff08;如自回归模型预测下一个字的概率分布&#xff09;分别与大模型预测的概率分布和ground label求loss。与大模型预测的概率分布用KL散度求loss&#xff0c;与ground label用…...

T-SQL 语言基础: SQL 数据库对象元数据及配置信息获取

目录 介绍目录视图 获取表和架构名称获取列信息 信息架构视图 获取表信息获取列信息 系统存储过程和函数 获取对象列表获取对象详细信息获取约束信息获取数据库属性信息 总结引用 介绍 在 SQL 数据库管理中&#xff0c;获取数据库对象的元数据信息是至关重要的。元数据提供了…...

ue5 创建多列StreeView的方法与理解

创建StreeView的多列样式怎么就像是创建单行单列差不多&#xff1f;貌似就是在单行单列中加入了多列widget? 示例代码 DetailTabWidget #pragma once #include "TreeViewItemBase.h"class SDetailTabWidget : public SCompoundWidget {SLATE_BEGIN_ARGS(SDetailT…...

C# OnnxRuntime部署DAMO-YOLO香烟检测

目录 说明 效果 模型信息 项目 代码 下载 参考 说明 效果 模型信息 Model Properties ------------------------- --------------------------------------------------------------- Inputs ------------------------- name&#xff1a;input tensor&#xff1a;Floa…...

陕西省地标-DB61/T 1121-2018 政务服务中心建设和运营规范

揭秘陕西省智慧政务服务中心新标准&#xff1a;打造高效便捷的服务新体验 随着信息化时代的深入发展&#xff0c;智慧政务已成为提升政府服务效率、优化营商环境的重要举措。陕西省作为全国政务改革的先行者&#xff0c;近期颁布了《陕西省地标-DB61_T 1121-2018 政务服务中心…...

UDP协议(20250303)

1. UDP UDP:用户数据报协议&#xff08;User Datagram Protocol&#xff09;&#xff0c;传输层协议之一&#xff08;UDP&#xff0c;TCP&#xff09; 2. 特性 发送数据时不需要建立链接&#xff0c;节省资源开销不安全不可靠的协议 //一般用在实时性比较高…...

【四.RAG技术与应用】【12.阿里云百炼应用(下):RAG的云端优化与扩展】

在上一篇文章中,我们聊了如何通过阿里云百炼平台快速搭建一个RAG(检索增强生成)应用,实现文档智能问答、知识库管理等基础能力。今天咱们继续深入,聚焦两个核心问题:如何通过云端技术优化RAG的效果,以及如何扩展RAG的应用边界。文章会穿插实战案例,手把手带你踩坑避雷。…...

ES6从入门到精通:前言

ES6简介 ES6&#xff08;ECMAScript 2015&#xff09;是JavaScript语言的重大更新&#xff0c;引入了许多新特性&#xff0c;包括语法糖、新数据类型、模块化支持等&#xff0c;显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

FFmpeg avformat_open_input函数分析

函数内部的总体流程如下&#xff1a; avformat_open_input 精简后的代码如下&#xff1a; int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...