当前位置: 首页 > 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的应用边界。文章会穿插实战案例,手把手带你踩坑避雷。…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子&#xff0c;再用 CNN-BiLSTM-Attention 来动态预测每个子序列&#xff0c;最后重构出总位移&#xff0c;预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵&#xff08;S…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

Spring是如何解决Bean的循环依赖:三级缓存机制

1、什么是 Bean 的循环依赖 在 Spring框架中,Bean 的循环依赖是指多个 Bean 之间‌互相持有对方引用‌,形成闭环依赖关系的现象。 多个 Bean 的依赖关系构成环形链路,例如: 双向依赖:Bean A 依赖 Bean B,同时 Bean B 也依赖 Bean A(A↔B)。链条循环: Bean A → Bean…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...