24个好用到爆的 Python 实用技巧

24 个好用到爆的 Python 实用技巧 在这里,我尝试以 A - Z 开头的格式分享这些技巧中的一些,并且在本文中简单介绍这些方法,如果你对其中一个或多个感兴趣,你可以通过文末参考资料查看官方文档。希望对你能有所帮助。 all or any Python 语言如此流行的众多原因之一,是因为它具有很好的可读性和表现力。 人们经常开玩笑说 Python 是可执行的伪代码。当你可以像这样写代码时,就很难反驳。 x=[True,True,False] ifany(x): print("至少有一个True") ifall(... 阅读详情

在这里,我尝试以 A - Z 开头的格式分享这些技巧中的一些,并且在本文中简单介绍这些方法,如果你对其中一个或多个感兴趣,你可以通过文末参考资料查看官方文档。希望对你能有所帮助。

all or any

Python 语言如此流行的众多原因之一,是因为它具有很好的可读性和表现力。

人们经常开玩笑说 Python 是可执行的伪代码。当你可以像这样写代码时,就很难反驳。

x = [True, True, False]
if any(x):
    print("至少有一个True")
if all(x):
    print("全是True")
if any(x) and not all(x):
    print("至少一个True和一个False")

bashplotlib

你有没有想过在控制台中绘制图形吗?

Bashplotlib 是一个 Python 库,他能够帮助我们在命令行(粗旷的环境)中绘制数据。

# 模块安装
pip install bashplotlib
# 绘制实例
import numpy as np
from bashplotlib.histpgram import plot_hist
arr = np.ramdom.normal(size=1000, loc=0, scale=1)
plot_hist(arr, bincount=50)

collections

Python 有一些很棒的默认数据类型,但有时它们的行为并不完全符合你的期望。

from collections import OrderedDict, Counter
# 记住键的添加顺序!
x = OrderedDict(a=1, b=2, c=3)
# 统计每个字符出现的频率
y = Counter("Hello World!")

dir

有没有想过如何查看 Python 对象内部并查看它具有哪些属性? 在命令行中输入:

dir() 
dir("Hello World") 
dir(dir)

当以交互方式运行 Python 以及动态探索你正在使用的对象和模块时,这可能是一个非常有用的功能。

emoji

emoji是日本在无线通信中所使用的视觉情感符号,绘指图画,文字指的则是字符,可用来代表多种表情,如笑脸表示笑、蛋糕表示食物等。在中国大陆,emoji通常叫做“小黄脸”,或者直称emoji。

# 安装模块
pip install emoji
# 做个尝试
from emoji import emojize
print(emojize(":thumbs_up:"))

👍

from __future__ import

Python 流行的结果之一,总是有新版本正在开发中。新版本意味着新功能 —— 除非你的版本已过时。

不过不要担心。使用该__future__模块可以帮助你用Python的未来版本导入功能。从字面上看,这就像时间旅行、魔法或其他东西。

from __future__ import print_function
print("Hello World!")

geogy

地理,对大多数程序员来说是一个具有挑战性的领域。在获取地理信息或者绘制地图时,也会遇到不少问题。这个geogy模块让地理相关内容变得非常容易。

pip install geopy

它通过抽象一系列不同地理编码服务的 API 来工作。通过它,你能够获得一个地方的完整街道地址、纬度、经度甚至海拔高度。

还有一个有用的距离类。它以你偏好的测量单位计算两个位置之间的距离。

from geopy import GoogleV3
place = "221b Baker Street, London"
location = GoogleV3().geocode(place)
print(location.address)
print(location.location)

howdoi

当你使用terminal终端编程时,通过在遇到问题后会在StackOverflow上搜索答案,完后会回到终端继续编程,此时有时会不记得你之前查到的解决方案,此时需要重新查看StackOverflow,但又不想离开终端,那么此时你需要用到这个有用的命令行工具howdoi。

pip install howdoi

无论你有什么问题,都可以问它,它会尽力回复。

howdoi vertical align css
howdoi for loop in java
howdoi undo commits in git

但请注意——它会从 StackOverflow 的最佳答案中抓取代码。它可能并不总是提供最有用的信息......

howdoi exit vim

inspect

Python 的inspect模块非常适合了解幕后发生的事情。你甚至可以调用它自己的方法!

下面的代码示例inspect.getsource() 用于打印自己的源代码。 inspect.getmodule() 还用于打印定义它的模块。

最后一行代码打印出它自己的行号。

import inspect
print(inspect.getsource(inspect.getsource))
print(inspect.getmodule(inspect.getmodule))
print(inspect.currentframe().f_lineno)

当然,除了这些微不足道的用途,inspect 模块可以证明对理解你的代码在做什么很有用。你还可以使用它来编写自文档化代码。

Jedi

Jedi 库是一个自动完成和代码分析库。它使编写代码更快、更高效。

除非你正在开发自己的 IDE,否则你可能对使用作为jedi编辑器插件比较感兴趣。幸运的是,这已经有可用的负载!

**kwargs

在学习任何语言时,都会有许多里程碑。使用 Python 并理解神秘的**kwargs语法可能算作一个重要的里程碑。

字典对象前面的双星号**kwargs允许你将该字典的内容作为命名参数传递给函数。

字典的键是参数名称,值是传递给函数的值。你甚至不需要调用它kwargs!

dictionary = {"a": 1, "b": 2}
def someFunction(a, b):
    print(a + b)
    return
# 这些做同样的事情:
someFunction(**dictionary)
someFunction(a=1, b=2)

当你想编写可以处理未预先定义的命名参数的函数时,这很有用。

列表(list)推导式

关于 Python 编程,我最喜欢的事情之一是它的列表推导式。

这些表达式可以很容易地编写非常顺畅的代码,几乎与自然语言一样。

numbers = [1,2,3,4,5,6,7]
evens = [x for x in numbers if x % 2 is 0]
odds = [y for y in numbers if y not in evens]
cities = ['London', 'Dublin', 'Oslo']

def visit(city):
    print("Welcome to "+city)
    
for city in cities:
    visit(city)
复制代码

map

Python 通过许多内置功能支持函数式编程。最有用的map()功能之一是函数——尤其是与lambda 函数结合使用时。

x = [1, 2, 3] 
y = map(lambda x : x + 1, x)
# 打印出 [2,3,4]
print(list(y))
复制代码

在上面的示例中,map()将一个简单的 lambda 函数应用于x. 它返回一个映射对象,该对象可以转换为一些可迭代对象,例如列表或元组。

newspaper3k

如果你还没有看过它,那么准备好被Python newspaper module 模块震撼到。它使你可以从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。它甚至有一些内置的 NLP 功能。

因此,如果你正在考虑在下一个项目中使用 BeautifulSoup 或其他一些 DIY 网页抓取库,使用本模块可以为你自己节省不少时间和精力。

pip install newspaper3k
复制代码

Operator overloading

Python 提供对运算符重载的支持,这是让你听起来像一个合法的计算机科学家的术语之一。

这实际上是一个简单的概念。有没有想过为什么 Python 允许你使用+运算符来添加数字以及连接字符串?这就是操作符重载的作用。

你可以定义以自己的特定方式使用 Python 的标准运算符符号的对象。并且你可以在与你正在使用的对象相关的上下文中使用它们。

class Thing:
    def __init__(self, value):
        self.__value = value
    def __gt__(self, other):
        return self.__value > other.__value
    def __lt__(self, other):
        return self.__value < other.__value
something = Thing(100)
nothing = Thing(0)
# True
something > nothing
# False
something < nothing
# Error
something + nothing
复制代码

pprint

Python 的默认print函数完成了它的工作。但是如果尝试使用print函数打印出任何大的嵌套对象,其结果相当难看。这个标准库的漂亮打印模块pprint可以以易于阅读的格式打印出复杂的结构化对象。

这算是任何使用非平凡数据结构的 Python 开发人员的必备品。

import requests
import pprint
url = 'https://randomuser.me/api/?results=1'
users = requests.get(url).json()
pprint.pprint(users)
复制代码

Queue

Python 标准库的 Queue 模块实现支持多线程。这个模块让你实现队列数据结构。这些是允许你根据特定规则添加和检索条目的数据结构。

“先进先出”(FIFO)队列让你可以按添加顺序检索对象。“后进先出”(LIFO) 队列让你可以首先访问最近添加的对象。

最后,优先队列让你可以根据对象的排序顺序检索对象。

这是一个如何在 Python 中使用队列Queue进行多线程编程的示例。

__repr__

在 Python 中定义类或对象时,提供一种将该对象表示为字符串的“官方”方式很有用。例如:

>>> file = open('file.txt', 'r') 
>>> print(file) 
<open file 'file.txt', mode 'r' at 0x10d30aaf0>
复制代码

这使得调试代码更加容易。将其添加到你的类定义中,如下所示:

class someClass: 
    def __repr__(self): 
        return "<some description here>"
someInstance = someClass()
# 打印 <some description here>
print(someInstance)
复制代码

sh

Python 是一种很棒的脚本语言。有时使用标准的 os 和 subprocess 库可能有点头疼。

该SH库让你可以像调用普通函数一样调用任何程序——对于自动化工作流和任务非常有用。

import sh
sh.pwd()
sh.mkdir('new_folder')
sh.touch('new_file.txt')
sh.whoami()
sh.echo('This is great!')
复制代码

Type hints

Python 是一种动态类型语言。定义变量、函数、类等时不需要指定数据类型。这允许快速的开发时间。但是,没有什么比由简单的输入问题引起的运行时错误更烦人的了。

从 Python 3.5 开始,你可以选择在定义函数时提供类型提示。

def addTwo(x : Int) -> Int:
    return x + 2
复制代码

你还可以定义类型别名。

from typing import List
Vector = List[float]
Matrix = List[Vector]
def addMatrix(a : Matrix, b : Matrix) -> Matrix:
  result = []
  for i,row in enumerate(a):
    result_row =[]
    for j, col in enumerate(row):
      result_row += [a[i][j] + b[i][j]]
    result += [result_row]
  return result
x = [[1.0, 0.0], [0.0, 1.0]]
y = [[2.0, 1.0], [0.0, -2.0]]
z = addMatrix(x, y)
复制代码

尽管不是强制性的,但类型注释可以使你的代码更易于理解。

它们还允许你使用类型检查工具,在运行前捕获那些杂散的 TypeError。如果你正在处理大型、复杂的项目,这是很有用的!

uuid

通过Python 标准库的 uuid 模块生成通用唯一 ID(或“UUID”)的一种快速简便的方法。

import uuid
user_id = uuid.uuid4()
print(user_id)
复制代码

这将创建一个随机的 128 位数字,该数字几乎肯定是唯一的。事实上,可以生成超过 2¹²² 种可能的 UUID。这超过了五个十进制 (或 5,000,000,000,000,000,000,000,000,000,000,000,000)。

在给定的集合中发现重复的概率极低。即使有一万亿个 UUID,重复存在的可能性也远低于十亿分之一。

Virtual environments

你可能同时在多个 Python 项目上工作。不幸的是,有时两个项目将依赖于相同依赖项的不同版本。你在你的系统上安装了什么?

幸运的是,Python支持对 虚拟环境 的让你可以两全其美。从命令行:

python -m venv my-project 
source my-project/bin/activate 
pip install all-the-modules
复制代码

现在,你可以在同一台机器上运行 Python 的独立版本和安装。

wikipedia

维基百科有一个很棒的 API,它允许用户以编程方式访问无与伦比的完全免费的知识和信息。在wikipedia模块使访问该API非常方便。

import wikipedia
result = wikipedia.page('freeCodeCamp')
print(result.summary)
for link in result.links:
    print(link)
复制代码

和真实站点一样,该模块提供了多语言支持、页面消歧、随机页面检索,甚至还有一个donate()方法。

xkcd

幽默是 Python 语言的一个关键特征,它是以英国喜剧小品剧Python飞行马戏团命名的。Python 的许多官方文档都引用了该节目最著名的草图。不过,Python 的幽默并不仅限于文档。试试运行下面的行:

import antigravity
复制代码

YAML

YAML指的是 “ 非标记语言” 。它是一种数据格式化语言,是 JSON 的超集。

与 JSON 不同,它可以存储更复杂的对象并引用它自己的元素。你还可以编写注释,使其特别适合编写配置文件。该PyYAML模块可让你使用YAML使用Python。

安装并然后导入到你的项目中:

pip install pyyaml

import yaml
复制代码

PyYAML 允许你存储任何数据类型的 Python 对象,以及任何用户定义类的实例。

zip

压轴出场的也是很棒的一个模块。你曾经遇到过需要从两个列表中形成字典吗?

keys = ['a', 'b', 'c']
vals = [1, 2, 3]
zipped = dict(zip(keys, vals))
复制代码

该zip()内置函数需要一系列可迭代的对象,并返回一个元组列表中。每个元组按位置索引对输入对象的元素进行分组。

你还可以通过调用对象来“解压缩”对象*zip()。

今天就分享到这啦,小编这里还为大家准备了python大礼包【加君羊:605018913】帮助大家更好的学习哦!

 

从零到一:基于Rocky Linux 9的Kubernetes高可用集群部署实战 本文提供了一份基于Rocky Linux 9操作系统,从零开始部署Kubernetes高可用集群的完整实战指南。详细讲解了包括系统初始化、容器运行时配置、使用kubeadm工具进行集群初始化、节点加入以及Calico网络插件安装在内的核心步骤,并针对国内网络环境提供了镜像加速等优化方案,旨在帮助读者构建一个稳定可靠的生产级K8s环境。 阅读详情

相关推荐

昆仑通态屏幕制作(连载1)---接触篇

写在开始 背景:最近出了做QT、LORA和4G,还做了一个屏幕。以前做了一个迪文的串口屏幕,发现网上的教程很多,所以连载就不更新了,并且迪文屏幕的设置什么的比较简单,应该从网上都能找到对应的教程。而现在用的昆仑通态的屏幕属于嵌入式屏幕,至于为啥叫嵌入式,也不是很明白,反正就是需要用这个屏幕,嵌入式不嵌入式不重要了。重要的是能用,并且能实现串口屏幕不能实现的功能。所以选定昆仑通态的一款屏幕。 文章语言:我比较习惯用比较糙的语言介绍做的东西,有时候不太准备,但是为了方便理解,还请大家谅解。用...

weixin_45426095的博客 6736

16个好用到爆的Python实用技巧!

Python 是一门用途广泛的编程语言,它具有大量的库和框架。有一些鲜为人知的 Python 编码技巧和库可以让你作为开发人员的工作更为轻松,编写代码更高效。本文将探讨一些鲜为人知的 Python 技巧,这些技巧非常有用,但并不广为人知。通过学习和使用这些技巧,可以帮你节省时间和精力,并使你的代码更加优雅和高效。那么,让我们深入探索 Python 语言的这些隐藏宝藏吧!

Python84310366的博客 2531

正点原子lwIP实战指南——从FreeRTOS移植到网络应用开发

本文详细介绍了如何将轻量级TCP/IP协议栈lwIP移植到FreeRTOS实时操作系统上,并基于正点原子STM32开发板进行网络应用开发。内容涵盖从使用STM32CubeMX快速搭建工程、核心概念解析(RAW/NETCONN/Socket API),到关键的系统适配、驱动实现,并通过TCP Echo服务器和云台控制两个实战案例,手把手指导读者完成从移植到应用开发的全过程,帮助嵌入式开发者快速掌握lwIP在FreeRTOS环境下的稳定部署与开发技巧。

s4t5u6v的博客 1000

每天都在用的20个Python技巧,让你从此告别平庸!

今天我将向大家分享日常工作中常用的20个Python技巧,小巧而优雅,让你的代码更加Pythonic

xyh2004的博客 2025

基于Python的闲鱼商品价格评估模型:爬虫+价格预测全实现

本文介绍了一个完整的全球气候数据抓取与分析流程,采用轻量化的技术栈(requests+pandas+matplotlib+folium),实现以下核心功能: 全球城市定向抓取:支持自定义城市列表,自动获取经纬度并抓取多源气候数据 双数据源互补:结合OpenWeatherMap API(实时数据)和Climate-Data.org(历史数据) 全维度覆盖:采集气温、降水、湿度等核心指标,并进行自动化清洗转换 丰富可视化:生成热力图、趋势图和统计图表,支持地理定位展示 灵活扩展:模块化设计便于新增城市或扩展数据

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3047

安装Quartus-II 13 和Modelsim

目录一、Quartus-II安装1.Quartus-II 13下载2.Quartus-II 13安装3.Quartus-II 13注册二、Modelsim安装 实验目的:安装Quartus-II 13 和Modelsim 实验环境:Windows10 参考资料:Quartus-II安装及使用 一、Quartus-II安装 1.Quartus-II 13下载 正点原子官方资料下载 百度网盘下载链接: https://pan.baidu.com/s/1a9d-bq9RZmWrRV542X4IEA 提取码:

qqq080的博客 8627

30个Python操作小技巧

30个Python操作小技巧

Java癫疯的博客 921

1.深入浅出:理解三极管截止、放大和饱和状态!——参考《模拟电子技术基础》清华大学华成英主讲

幼儿园水平理解三极管截止、放大和饱和状态!书上看不懂,听课听不懂的过来! 绕不开的三极管结构 以NPN为例,晶体三极管的结构,这是很多人不想看的,但是确实是非常重要的!不看结构是理解不了工作原理的! (这样记忆:N是negative,负,代表多子为电子;P是positive,正,代表多子为空穴) 注意观察三极管的结构,有助于理解工作时的状态。 两张图结合起来看,略作解释: 1.图中空心为空穴带正...

Hardware_harder的博客 4万+

30 个 Python 编程实用技巧

作者主页:海拥 作者简介:优快云全栈领域优质创作者、HDZ核心组成员、蝉联C站周榜前十 粉丝福利:粉丝群 每周送四本书,每月送各种小礼品(搪瓷杯、抱枕、鼠标垫、马克杯等) 直接跳到末尾 去评论区领书 今天,我给大家带来了一些基本的 Python 编程技巧。所有这些技巧都可以帮助您减少代码并优化执行。你可以在处理常规任务时轻松地在实时项目中使用它们。 目录 1.就地交换两个数字 2.比较运算符的链接 3.使用三元运算符进行条件赋值。 4.使用多行字符串

努力是为了站在万人之中,成为别人的光 2万+

化工过程设计软件:Aspen Plus二次开发_(2).二次开发概述

假设我们需要创建一个自定义的换热器模型,该模型能够计算两个物流之间的热交换量,并根据传热系数和换热面积进行调整。ACM 模型代码示例!自定义换热器模型!参数:传热系数 U (W/m^2·K)!换热面积 A (m^2)!热物流 T_hot_in (K), T_hot_out (K), F_hot (kmol/h)!冷物流 T_cold_in (K), T_cold_out (K), F_cold (kmol/h)!模型输入!U - 传热系数!A - 换热面积!

kkchenjj的博客 370

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目

【中国大学生计算机设计大赛信息可视化赛道】国奖项目深入剖析—中国古代奇异怪兽移动端可视化应用项目 注:本文主要目的是对于往年国奖项目案例-可视化项目的深入剖析讲解,对源码、项目特点、要点、特色继续深入分析。帮助大家学习技术,掌握规律。

一键难忘的博客 3729

【编程学习】10个超级常用的Python技巧!好用到爆!

今天,我们将探索10个高效的Python技巧,这些技巧能够让你的代码更加简洁。掌握这些技巧后,你会发现Python的世界变得更加有趣和高效!

m0_75067840的博客 988

使用 MATLAB/Simulink + Simscape Electrical 来构建一个CCHP微电网与新能源协同运行的模型

随着能源需求的增长和对环境保护要求的提高,冷热电联供(Combined Cooling, Heating and Power, CCHP)系统作为一种高效的分布式能源解决方案,越来越受到关注。CCHP系统通过利用一次能源同时产生电力、制冷和供热,实现了能源的梯级利用,提高了能源使用效率。结合太阳能、风能等可再生能源,可以进一步增强系统的灵活性和环保性。本文将详细介绍如何使用来构建一个CCHP微电网与新能源协同运行的模型,并通过仿真分析其性能表现。本文介绍了如何使用构建一个。

xiaoheshang_123的博客 141

24个好用到爆的Python实用技巧

作为一名数据工作者,我们每天都在使用 Python处理大多数工作。在此过程中,我们会不断学到了一些有用的技巧和窍门。在这里,我尝试以 A - Z 开头的格式分享这些技巧中的一些,并且在本文中简单介绍这些方法,如果你对其中一个或多个感兴趣,你可以通过文末参考资料查看官方文档。希望对你能有所帮助。

2401_86168842的博客 1929

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

太牛了,24 个好用到爆的 Python 实用技巧

在Python的学习过程中,很多小伙伴可能会想,我学了这么多,哪些是常用和实用的?怎样增加工作效率? 今天,我就总结了24个好用到爆的Python实用技巧,希望能对小伙伴们有帮助!欢迎收藏学习,喜欢点赞支持,文末提供技术交流群。 在这里,我尝试以 A - Z 开头的格式分享这些技巧中的一部分,并且简单介绍这些方法,如果你对其中一个或多个感兴趣,你可以通过文末参考资料查看官方文档哦~ all or any Python 语言如此流行的众多原因之一,是因为它具有很好的可读性和表现力。 人们经常开玩笑说 Pyth

Python学习与数据挖掘 8983

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

24 个好用到爆的 Python 实用技巧!

作为一名数据工作者,我们每天都在使用 Python处理大多数工作。在此过程中,我们会不断学到了一些有用的技巧和窍门在这里,我尝试以 A - Z 开头的格式分享这些技巧中的一些,并且在本文中简单介绍这些方法,如果你对其中一个或多个感兴趣,你可以通过文末参考资料查看官方文档。希望对你能有所帮助。

2401_86168842的博客 805

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 谁说程序员不懂浪漫?用Python每天自动给女友免费发短信
下一篇: 10个极简python代码,拿走即用
python2021_
博客等级 码龄6年 1730粉丝 157原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值