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

python常用

环境配置

conda

Conda自动补全

在终端激活conda环境的时候按tab不能自动补全activate和环境名。安装后可用tab进行补全。
安装 conda-bash-completion 插件:GitHub
安装方法:

conda install -c conda-forge conda-bash-completion

常用命令

#创建虚拟环境
conda create -n your_env_name python=X.X(3.6、3.7等)
#激活虚拟环境
conda activate your_env_name(虚拟环境名称)
#退出虚拟环境
conda deactivate your_env_name(虚拟环境名称)
#删除虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all
#添加 python 模块
conda install [module]
#查看安装了哪些包
conda list
#查看当前存在哪些虚拟环境
conda env list 
#检查更新当前conda
conda update conda
#更新anaconda
conda update anaconda
#更新所有库
conda update --all
#更新python
conda update python

pip

换源

Python使用pip作为依赖管理工具,很多时候,我们在安装依赖的时候,会出现无法访问网络,这是因为我们的网络被墙了,需要完成以下配置

方式一

  • 运行以下命令,配置pip全局使用华为云的镜像下载依赖
pip config set global.index-url "http://mirrors.tools.huawei.com/pypi/simple"
  • 运行以下命令,配置上述局点为可信局点
pip config set global.trusted-host "mirrors.tools.huawei.com"

方式二

pip/pip3用于python软件模块下载,通过~/.pip/pip.conf文件配置,如果没有这个目录和文件,可以生成一个进行设置,如下

mkdir ~/.pip
vim ~/.pip/pip.conf

填入以下内容:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com

之后更新

pip install update

这样就切换成国内源了,安装时速度非常快。
其它的源设置类似,只需要修改服务器即可,如清华源等:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

语法

在Python中,**是一个双星号操作符,也称为指数运算符或幂运算符。它用于计算一个数的指数或幂,例如:2的3次方可以用2**3表示,结果为8。

除了计算指数,还可以用于解包操作。当在函数调用时使用字典时,它会将一个字典或关键字参数的集合解包成独立的参数。例如:

def foo(a, b, c):print(a, b, c)params = {'a': 1, 'b': 2, 'c': 3}
foo(**params)  # 等价于 foo(a=1, b=2, c=3)

在这个例子中,使用双星号将字典 params 解包成独立的关键字参数传递给函数 foo。在函数调用中,**params 等价于 a=1, b=2, c=3

另外,单个星号*也有类似的作用,但它是用于将可迭代对象解包成单独的参数,例如:

numbers = [1, 2, 3]
print(*numbers)  # 等价于 print(1, 2, 3)

在这个例子中,使用单星号将列表 numbers 解包成独立的位置参数传递给函数 print。在函数调用中,*numbers 等价于 1, 2, 3

内置函数

getattr

描述

getattr() 函数用于返回一个对象属性值。

语法

getattr(object, name[, default])

参数

  • object – 对象。
  • name – 字符串,对象属性。
  • default – 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

返回值

返回对象属性值。

__import__

描述

__import__() 函数用于动态加载类和函数 。
如果一个模块经常变化就可以使用 __import__() 来动态载入。

语法

__import__(name[, globals[, locals[, fromlist[, level]]]])

参数

  • name – 模块名

返回值

返回元组列表。

__import__(package.module)相当于from package import module,如果fromlist不传入值,则返回package对应的模块,如果fromlist传入值,则返回package.module对应的模块。

iter

使用iter()函数可以将可迭代对象转换为迭代器

可迭代对象是指实现了__iter__()__getitem__()方法的对象。对于一个可迭代对象,可以通过调用它的迭代器来依次获取其中的元素,直到所有元素都被访问完毕。

而迭代器是一种特殊的对象,能够记忆遍历的位置,并且可以按需产生下一个值,直到没有值可以生成时抛出StopIteration异常。迭代器还实现了__next__()方法,每次调用该方法可以返回下一个元素的值。因此,在Python中,许多内置函数(例如for循环和zip()函数)都是基于迭代器工作的。

next

next() 函数是 Python 中的内置函数,它允许您不断从迭代器中取出下一个元素。其语法如下:

next(iterator[, default])

参数说明:

  • iterator:必需,表示要获取下一个元素的迭代器对象。
  • default:可选,如果迭代器已到达末尾,该值将返回,默认为 None。

基本上,它用于检索序列(例如列表、元组、集合等)的下一个元素,直到所有的元素都被迭代完为止。

在调用 next() 时,它会返回迭代器中的下一个条目,并将迭代器移动到下一个项目。每次调用 next() 函数时,它都将返回下一个条目,直到没有更多的元素,并引发 StopIteration 异常。

super

super()函数的作用:

  • 在子类中调用父类的方法实现代码复用
  • 不需要硬编码父类的名字,使继承关系更灵活
  • 根据方法解析顺序(MRO)动态确定调用的父类

super()的主要场景:

  1. 单继承
    这里super()就是父类的引用,可以避免重复命名父类

  2. 多继承
    super()会根据MRO调用正确的父类,不会像直接调用被覆盖

  3. 协作多继承
    通过只调用部分父类的super(),实现协作式继承

super()的实现机制:

  • 会根据调用环境动态绑定父类
  • 是通过__class____thisclass__确定的
  • 最终会调用父类的 __getattribute__方法

super()需要注意:

  • 只能在新式类中使用,旧式类会报错
  • 在Python2中调用有些差异,需要使用super(Class, self)
  • 不可实例化,是个只能调用的对象

Python中方法解析顺序(Method Resolution Order, MRO)的概念。

MRO是多重继承场景下,用于确定方法调用顺序的一套规则。主要原则是:

  • 子类会先调用
  • 广度优先,左到右顺序调用
  • 避免重复调用(C3算法)

with语句

with所求值的对象必须有一个__enter__()方法,一个__exit__()方法。

紧跟with后面的语句被求值后,返回对象的__enter__()方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。

super() 是python 中调用父类(超类)的一种方法,在子类中可以通过super()方法来调用父类的方法。【超类: 是指 2层以上的继承关系,假如 C类继承B类,B类由继承A类,那么A类就是C类的超类】

匿名函数

Lambda函数也被称为匿名函数,通常是一个表达式,而不是单个语句。可以使用Lambda定义简单的单行函数,并将其作为参数传递给某些函数。

Lambda函数通过lambda关键字创建,它的一般格式如下:

lambda arguments: expression

其中,arguments表示函数的参数列表,expression则表示函数的返回值。例如以下代码:

lambda x: x*2

表示一个以x为参数并返回x乘以2的匿名函数。

通常情况下,Lambda函数与高阶函数(Higher-order functions)一起使用。高阶函数指的是能够接收函数作为参数和/或返回函数的函数。

Lambda函数可以替代其他函数引用。假设要编写一个将两个数相加的函数,可以使用Lambda函数作为输入:

add = lambda x, y: x + y
print(add(2, 3)) # 5

Lambda函数可以非常方便地与Python中map(), filter()reduce()函数组合使用,将函数映射到一组输入上,并基于规则筛选这些输入。例如:

Map():

my_list = [1, 2, 3, 4, 5]
result = list(map(lambda x: x ** 2, my_list))
print(result) # [1, 4, 9, 16, 25]

以上代码将一个Lambda函数与Python的map()函数一起使用,对列表中的每个元素进行了平方运算。

Filter():

my_list = [1, 2, 3, 4, 5]
result = list(filter(lambda x: x % 2 == 0, my_list))
print(result) # [2, 4]

以上代码将Lambda函数与Python的filter()函数一起使用,可以在列表中过滤出所有的偶数。

Reduce():

from functools import reducemy_list = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, my_list)
print(result) # 15

以上代码将Lambda函数与Python的reduce()函数一起使用,计算列表中所有数字的和。

总之,Lambda函数是一种非常强大的工具,可以轻松创建简单的函数并与其他函数一起使用,方便编写更加复杂的程序。

matplotlib

matplotlib.pyplot.subplots函数用于创建一个新的图形,并在该图形上创建一个或多个子图,也称为子区域。下面是该函数的语法:

matplotlib.pyplot.subplots(nrows=1, ncols=1, **kwargs)

参数说明:

  • nrows: 子图的行数,默认值为1
  • ncols: 子图的列数,默认值为1
  • sharex: 共享x轴,默认为False
  • sharey: 共享y轴,默认为False
  • squeeze: 如果设置为True,子图数组的形状将自动调整以删除任何单元格,其中没有轴绘制
  • subplot_kw: 用于添加子图时传递给 add_subplot() 的字典参数
  • gridspec_kw: 用于创建子图网格的参数字典

返回值:

  • fig: 图形对象
  • axes: 子图对象,一个numpy数组对象,其形状为 (nrows, ncols)

add_subplot方法是Figure对象的一个成员方法,用于向指定的图形对象中添加一个子图,该方法有以下参数:

add_subplot(nrows, ncols, index, **kwargs)

参数说明:

  • nrows: 子图的行数
  • ncols: 子图的列数
  • index: 子图的位置
  • **kwargs: 其他可选参数,用于设置子图的属性,例如标题、坐标轴范围等

返回值:

  • ax: 子图对象

例如,以下代码创建了一个2x2的子图,其中第一个子图位于第一行第一列,第二个子图位于第一行第二列,第三个子图位于第二行第一列,第四个子图位于第二行第二列。

import matplotlib.pyplot as plt
fig, axs = plt.subplots(nrows=2, ncols=2)
axs[0, 0].plot([1, 2, 3, 4], [1, 4, 2, 3])
axs[0, 0].set_title('Subplot 1')
axs[0, 1].plot([1, 2, 3, 4], [1, 4, 2, 3])
axs[0, 1].set_title('Subplot 2')
axs[1, 0].plot([1, 2, 3, 4], [1, 4, 2, 3])
axs[1, 0].set_title('Subplot 3')
axs[1, 1].plot([1, 2, 3, 4], [1, 4, 2, 3])
axs[1, 1].set_title('Subplot 4')
plt.show()

该代码创建了一个包含四个子图的2x2网格,每个子图都绘制了一条简单的线,并设置了一个标题。

相关文章:

python常用

环境配置 conda Conda自动补全 在终端激活conda环境的时候按tab不能自动补全activate和环境名。安装后可用tab进行补全。 安装 conda-bash-completion 插件:GitHub 安装方法: conda install -c conda-forge conda-bash-completion常用命令 #创建虚拟…...

jeecg如何创建报表并配置到菜单中

当使用jeecg创建单表之后,需要进行报表显示,并把报表配置到菜单中,该如何操作呢?下面进行详细讲解。这里以课程表这张表为例进行讲解。 一.表单创建完成,并配置好菜单栏。具体步骤略,如下图: 二.创建积木报表 1.左侧边栏展开低代码开发菜单,进入报表设计器栏目 2.进…...

Servlet+JDBC实战开发书店项目讲解第12讲:会员管理功能

ServletJDBC实战开发书店项目讲解第12讲:会员管理功能 实现思路: 显示会员列表: 创建一个管理页面,用于显示所有会员的信息。在后端,创建一个Servlet来处理显示会员列表的请求。在该Servlet中,通过JDBC从数…...

java面向对象——继承以及super关键字

继承的概念 1. 被继承的类称为父类(超类),继承父类的类都称为子类(派生类) 2. 继承是指一个对象直接使用另一个对象的属性和方法,但是能继承非私有的属性和方法;(1) 构造方法不能被继承。(2) 但…...

[机缘参悟-101] :IT人 - 遵从世界本源的样子,不带个人情感、道德、认知倾向,接纳一切,你就拥有无限的力量

目录 道的本义 如来的本义 观音的本义 无为而治本质是顺势而为 儒家的本质 感悟: 道的本义本质:天地的力量和运行规律 "天地以万物为刍狗"是出自《道德经》第五十章的一句话。在这句话中,"天地"指的是宇宙&#x…...

C++--深度理解智能指针

PS:智能指针简单应用看这里 http://t.csdn.cn/qN7IK 1.智能指针的介绍 在C中,智能指针有三个版本,分别为: auto_ptr unique_ptr shared_ptr 这三个版本的智能指针中,shared_ptr最为完善,auto_ptr基本上没有太大用…...

Spring Boot使用MySQL的默认连接池

笔者在近期秋招面试的时候被问到了这个问题,现在简单梳理一下便于后期重新回顾,并加深记忆。 Spring Boot 默认使用的数据库连接池是 HikariCP(开源库地址)。 HikariCP 是目前性能最好的连接池之一,它具有高度的性能、可靠性和可扩展性&…...

conda使用教程

Conda介绍 conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理和环境管理。包管理与pip的使用方法类似似,环境管理则是允许用户方便滴安装不同版本的python环境并在不同环境之间快速地切换。 conda的设计理念 conda将几乎所有…...

什么是LLM大语言模型?

什么是LLM大语言模型? 大语言模型(英文:Large Language Model,缩写LLM),也称大型语言模型,是一种人工智能模型,旨在理解和生成人类语言。它们在大量的文本数据上进行训练&#xff0…...

jenkins同一jar包部署到多台服务器

文章目录 安装插件配置ssh服务构建完成后执行 没有部署过可以跟这个下面的步骤先部署一遍,我这篇主要讲jenkins同一jar包部署到多台服务器 【Jenkins】部署Springboot项目https://blog.csdn.net/qq_39017153/article/details/131901613 安装插件 Publish Over SSH 这…...

(四)Doceke安装MySQL镜像+Docker启动MySQL容器

Doceke安装MySQL镜像/Docker启动MySQL容器 一、doceke安装MySQL镜像 切换到root用户,su root 。 1、启动Docker 启动:sudo systemctl start docker 停止:systemctl stop docker 重启:systemctl restart docker 查看docker运行…...

Android Studio:Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7

原项目使用jdk8&#xff0c;升级gradle后出现的该问题。 java.lang.NoClassDefFoundError: Could not initialize class org.codehaus.groovy.vmplugin.v7.Java7at org.codehaus.groovy.vmplugin.VMPluginFactory.<clinit>(VMPluginFactory.java:43)at org.codehaus.gro…...

Spring Clould 搜索技术 - elasticsearch

视频地址&#xff1a;微服务&#xff08;SpringCloudRabbitMQDockerRedis搜索分布式&#xff09; 初识ES-什么是elasticsearch&#xff08;P77&#xff0c;P78&#xff09; 1.elasticsearch的作用 elasticsearch是一款非常强大的开源搜索引擎&#xff0c;具备非常多强大功能…...

android核绑定cpuset配置与检测进程所在核cpuset方法

一、开机阶段 开机有如下阶段。抛开开机动画需要的audio、surfaceflinger等进程&#xff0c;大部分android程序是在/data分区加载完整以后开始加载。所以cpuset的配置可以在 post-fs-data之后。注意&#xff0c;init.rc的不同阶段脚本都可能覆盖前面配置的cpuset。配置好检查与…...

Lnton羚通关于如何使用nanoPC-T4 安装OpenCV?

nanoPC-T4 安装 OpenCV Note: OpenCV has been pre-installed in FriendlyCore/FriendlyDesktop (Version after 201905) and does not require manual installation. Please download the latest FriendlyCore/FriendlyDesktop Image file from the following URL: http://do…...

内存泄漏:前端开发者的噩梦——内存泄露的原因及排查

在前端开发中&#xff0c;内存泄漏是一个常见但令人头疼的问题。它会导致应用程序变得缓慢&#xff0c;不稳定&#xff0c;最终可能崩溃。本文将介绍内存泄漏的概念、常见泄漏原因以及如何排查和预防内存泄漏。 什么是内存泄漏&#xff1f; 内存泄漏是指应用程序中的内存被错…...

高效使用ChatGPT之ChatGPT客户端

ChatGPT客户端&#xff0c;支持Mac, Windows, and Linux 下载地址见文章结尾 软件截图 Windows: Mac&#xff1a; 说明 chatgpt桌面版&#xff0c;相比于网页版的chatgpt&#xff0c;最大的特色是支持历史聊天对话记录导出&#xff0c;且支持三种格式&#xff1a;PNG、PDF、…...

【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据

【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据 文章目录 【腾讯云 TDSQL-C Serverless 产品体验】基于TDSQL-C 存储爬取的QQ音乐歌单数据前言出现的背景一、TDSQL-C数据库是什么&#xff1f;二、TDSQL-C 的特点三、TDSQL-C的应用场景四、基于TD…...

leetcode 6450. k-avoiding 数组的最小总和

给你两个整数 n 和 k 。 对于一个由 不同 正整数组成的数组&#xff0c;如果其中不存在任何求和等于 k 的不同元素对&#xff0c;则称其为 k-avoiding 数组。 返回长度为 n 的 k-avoiding 数组的可能的最小总和。 示例 1&#xff1a; 输入&#xff1a;n 5, k 4 输出&#…...

变压器绝缘油耐压试验

试验目的 绝缘油是电气设备常用的绝缘、 灭弧和冷却介质。 为保证它在运行过程中具有良好的性能&#xff0c; 必须定期对其进行各项试验&#xff0c; 尤其是耐压试验。 绝缘油的耐压试验是在专用的击穿电压试验器中进行的&#xff0c; 试验器包括一个瓷质或玻璃油杯、 两个直径…...

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

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

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

免费PDF转图片工具

免费PDF转图片工具 一款简单易用的PDF转图片工具&#xff0c;可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件&#xff0c;也不需要在线上传文件&#xff0c;保护您的隐私。 工具截图 主要特点 &#x1f680; 快速转换&#xff1a;本地转换&#xff0c;无需等待上…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

篇章二 论坛系统——系统设计

目录 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 1. 数据库设计 1.1 数据库名: forum db 1.2 表的设计 1.3 编写SQL 2.系统设计 2.1 技术选型 2.2 设计数据库结构 2.2.1 数据库实体 通过需求分析获得概念类并结合业务实现过程中的技术需要&#x…...