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网格,每个子图都绘制了一条简单的线,并设置了一个标题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通过几段代码,详解Python单线程、多线程、多进程

在使用爬虫爬取数据的时候,当需要爬取的数据量比较大,且急需很快获取到数据的时候,可以考虑将单线程的爬虫写成多线程的爬虫。下面来学习一些它的基础知识和代码编写方法。 一、进程和线程 进程可以理解为是正在运行的程序的实例。进程是拥…

Kubernetes 使用 Rancher 管理

K8S集群管理工具 只能管理单个K8S集群 kubectl命令行管理工具 dashboard(K8S官方的UI界面图形化管理工具) (管理多集群很麻烦,切换不同集群每次需要更改kube-config文件[kubectl配置文件],如果kubeadm部署每次都需…

C++ 类与对象关系、生成

C 类与对象关系、生成举例如下&#xff1a; #include <iostream>class student { public:int No;int Score; public:void setScore(int s) {Score s;}int getScore() {return Score;}void setNo(int n) {No n;}int getNo() {return No;} };int main(int argc, char *a…

bigemap如何批量添加地图?

bigemap如何批量添加地图&#xff1f; 说明&#xff1a;批量添加可以同时添加多个在线地图&#xff0c;一次性添加完成&#xff08;批量添加无法验证地址是否可以访问&#xff09;&#xff08;批量配置文件可以在官网获取&#xff09; 第一步选择地图点进去点(添加号) 第二步&…

常见前端基础面试题(HTML,CSS,JS)(七)

同源策略 浏览器有一个重要的安全策略&#xff0c;称之为同源策略 其中&#xff0c;协议、端口号、域名必须一致&#xff0c;&#xff0c;称之为同源&#xff0c;两个源不同&#xff0c;称之为跨源或跨域 同源策略是指&#xff0c;若页面的源和页面运行过程中加载的源不一致…

原生无限极目录树详细讲解

原生无限级目录树 当涉及到原生的无限级目录树&#xff0c;我们可以使用递归算法来实现。以下是一个使用 JavaScript 实现原生无限级目录树的示例 介绍 原生无限级目录树是一种常见的数据结构&#xff0c;用于组织多层级的目录或分类数据。通过递归算法&#xff0c;我们可以…

Unity框架学习--资源管理器

资源加载方案 1、Inspector窗口拖拽 在脚本中用public声明变量&#xff0c;然后在Inspector窗口把要加载的资源拖拽给该脚本的变量。 不建议在大型项目使用。在公司的项目也不要用。 如果你是独立游戏开发者&#xff0c;则可以用。 不支持热更…

Linux面试笔试题(5)

79、下列工具中可以直接连接mysql的工具有【c 】。 A.xhsell B.plsql C.navicat D.以上都不是 Navicat 是一套可创建多个连接的数据库开发工具&#xff0c; 让你从单一应用程序中同时连接 MySQL、Redis、MariaDB、MongoDB、 SQL Server、Oracle、PostgreSQL和 SQLite 。它与…

七夕给TA满分宠爱!浪漫攻略为约会加分

浪漫的七夕将至&#xff0c;无论是异地恋人还是约会情侣&#xff0c;怎么能缺少节日仪式感~精心策划的约会计划&#xff0c;让浪漫“超级加倍”。 美好的二人世界&#xff0c;共度甜蜜时光&#xff0c;当然需要提前做好攻略&#xff0c;风和日丽的好天气能为约会加分不少。在规…

ArcGIS Serve Windows下用户密码变更导致Server服务无法启动问题

问题&#xff1a; 因未知原因Windows下的Server安装账户密码变更&#xff0c;但是又忘记了密码&#xff0c;导致&#xff0c;Server服务启动失败&#xff0c;错误1069&#xff1a; 解决方法&#xff1a; 在账户管理界面&#xff0c;重置对应的arcgis账户的密码&#xff0c;…

初识Redis

简介RedisRedis安装怎么远程连接基础命令常用类型字符串类型字典类型列表类型集合类型有序集合类型 spring boot集成Redis代码操作Redis 实现一个session储存到redis持久化缓存雪崩缓存穿透缓存击穿缓存预热 项目升级之Redis储存Session 简介Redis Redis是一种内存数据存储系统…

open cv学习 (四)图像的几何变换

图像的几何变换 demo1 # dsize实现缩放 import cv2 img cv2.imread("./cat.jpg") dst1 cv2.resize(img, (100, 100)) dst2 cv2.resize(img, (400, 400)) # cv2.imshow("img", img) # cv2.imshow("dst1", dst1) # cv2.imshow("dst2&quo…

华人画家戴渭作品 3000 万拍出,牛津艺术学院发出任教邀请

爱丁堡,2023年7月 - 画家戴渭以他独特的画风、深邃的意境和慈悲智慧的属性,将艺术与宗教融合于作品之中。初看他的作品,可能会被其高超的艺术水准所震撼,然而仔细品味,方能领略到他深邃的艺术造诣与宗教智慧的深度融合。 作为国内最年轻的华人80后画家之一,戴渭近期被英国牛津…

数据库知识

怎么做 常见的数据库 Oracle Mysql SOLSever Navicat &#xff08;新版可以链接mysql oracle&#xff09; http://sqlfiddle.com/ 数据库操作在线练习 mysql自带四个数据库 数据库语言的使用 显示数据库&#xff1a;show databases&#xff1b; 创建数据库&#xff1a;…

linux笔试题

1&#xff0c;nginx中设定js,css,文件的过期时间为5分钟 location ~.*\.(js|css)?$ { expires 5m; } 2, 请解读以下Nginx配置文件的执行内容 http {map $http_x_forwarded_for $blocked_ip {~*^(31\.41\.244\.|141\.98\.11\.) 1;default 0;}upstream backend {ip_hash;…

【高级IO】- 多路转接之 poll | epoll

目录 I/O多路转接 - poll poll 函数 poll 服务器 poll 服务器 poll 的优点 poll 的缺点 I/O 多路转接 - epoll epoll 的相关系统调用 epoll_create 函数 epoll_ctl 函数 epoll_wait 函数 epoll 工作原理 epoll 服务器 ​编辑 epoll 的优点&#xff08;与 sele…

Go语言基础:Interface接口、Goroutines线程、Channels通道详细案例教程

目录标题 一、Interface1. Declaring and implementing an interface2. Practical use of an interface3. Nterface internal representation4. Empty interface5. Type assertion6. Type switch7. Implementing interfaces using pointer receivers VS value receivers8. Impl…

使用Ftp服务器+快解析软件,让你的文件随时随地可访问

你是否曾经遇到过这样的情况&#xff1f;你在办公室工作到很晚&#xff0c;突然想起家里的电脑里有重要文件&#xff0c;但却无法立即访问&#xff1f;或者你想要和朋友分享一些照片&#xff0c;却发现你的电脑和他们之间的距离太远&#xff0c;无法直接传输文件&#xff1f;如…

Win系统下安装Linux双系统教程

软件下载 软件&#xff1a;Linux版本&#xff1a;18.0.4语言&#xff1a;简体中文大小&#xff1a;1.82G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①丨百度网盘&#xff1a;1.ubuntu18.0.4下载链接&#xf…

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现SCN随机配置网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基本介绍程序设计参考资料 效果一览 基本…