iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实用技巧有哪些及怎么用
  • 622
分享到

Python实用技巧有哪些及怎么用

2023-06-29 10:06:08 622人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

今天小编给大家分享一下python实用技巧有哪些及怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。all or anyP

今天小编给大家分享一下python实用技巧有哪些及怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

Python实用技巧有哪些及怎么用

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 npfrom bashplotlib.histpgram import plot_histarr = np.ramdom.nORMal(size=1000, loc=0, scale=1)plot_hist(arr, bincount=50)

collections

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

幸运的是,Python 标准库提供了 collections 模块**[1]**。这个方便的附加组件为你提供了更多的数据类型。

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 以及动态探索你正在使用的对象和模块时,这可能是一个非常有用的功能。在这里阅读更多**functions****[2]**相关内容。

emoji

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

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

from __future__ import

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

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

from __future__ import print_functionprint("Hello World!")

geogy

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

pip install geopy

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

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

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

howdoi

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

pip install howdoi

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

howdoi vertical align csshowdoi for loop in javahowdoi undo commits in git

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

howdoi exit vim

inspect

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

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

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

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

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

Jedi

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

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

**kwargs

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

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

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

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

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

列表(list)推导式

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

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

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 函数****[11]**结合使用时。

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

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

newspaper3k

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

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

pip install newspaper3k

Operator overloading

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

这实际上是一个简单的概念。有没有想过为什么 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.__valuesomething = Thing(100)nothing = Thing(0)# Truesomething > nothing# Falsesomething < nothing# Errorsomething + nothing

pprint

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

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

import requestsimport pprinturl = 'https://randomuser.me/api/?results=1'users = requests.get(url).JSON()pprint.pprint(users)

Queue

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

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

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

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

__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库****[17]**让你可以像调用普通函数一样调用任何程序——对于自动化工作流和任务非常有用。

import shsh.pwd()sh.mkdir('new_folder')sh.touch('new_file.txt')sh.whoami()sh.echo('This is great!')

Type hints

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

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

def addTwo(x : Int) -> Int:    return x +

你还可以定义类型别名。

from typing import ListVector = 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 resultx = [[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 模块**[19]**生成通用唯一 ID(或“UUID”)的一种快速简便的方法。

import uuiduser_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支持对 虚拟环境**[20]** 的让你可以两全其美。从命令行:

python -m venv my-project source my-project/bin/activate pip install all-the-modules

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

wikipedia

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

import wikipediaresult = wikipedia.page('freeCodeCamp')print(result.summary)for link in result.links:    print(link)

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

xkcd

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

import antigravity

YAML

YAML**[23]**指的是 “ 非标记语言” 。它是一种数据格式化语言,是 jsON 的超集。

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

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

pip install pyyamlimport yaml

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

zip

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

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

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

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

以上就是“Python实用技巧有哪些及怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网Python频道。

--结束END--

本文标题: Python实用技巧有哪些及怎么用

本文链接: https://www.lsjlt.com/news/324191.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python实用技巧有哪些及怎么用
    今天小编给大家分享一下Python实用技巧有哪些及怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。all or anyP...
    99+
    2023-06-29
  • Python实用技巧有哪些
    这篇文章主要讲解了“Python实用技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python实用技巧有哪些”吧!整理字符串输入整理用户输入的问题在编程过程中极为常见。通常情况下,...
    99+
    2023-06-16
  • 有哪些Python实用技巧
    本篇内容主要讲解“有哪些Python实用技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“有哪些Python实用技巧”吧!1. 使用youtube-dl下载YouTube视频你可以使用Pytho...
    99+
    2023-06-16
  • Python实用的技巧有哪些
    这篇文章主要讲解了“Python实用的技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python实用的技巧有哪些”吧!1. 列表推导式有人或许以前听说过这些。Python中的一种编...
    99+
    2023-06-16
  • 有哪些实用的Python技巧
    这篇文章主要讲解了“有哪些实用的Python技巧”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“有哪些实用的Python技巧”吧!1. 重复元素判定以下方法可以检查给定列表是不是存在重复元素,...
    99+
    2023-06-16
  • 实用的Python技巧有哪些
    这篇文章主要介绍“实用的Python技巧有哪些”,在日常操作中,相信很多人在实用的Python技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”实用的Python技巧有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-02
  • Python的实用技巧有哪些
    本篇内容介绍了“Python的实用技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!ALL OR ANYPython之所以成为这么一门...
    99+
    2023-06-02
  • Python中有哪些实用技巧
    小编给大家分享一下Python中有哪些实用技巧,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!整理字符串输入整理用户输入的问题在编程过程中很常见。有更好的方法来解决:user_input = "...
    99+
    2023-06-25
  •  Python的实用技巧有哪些呢
     Python的实用技巧有哪些呢,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。01 all or anyPython 语言如此流行的众多原因之一,是因...
    99+
    2023-06-22
  • 好用Python技巧有哪些
    这篇文章主要介绍“好用Python技巧有哪些”,在日常操作中,相信很多人在好用Python技巧有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”好用Python技巧有哪些”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-22
  • 有哪些有用的Python技巧
    本篇内容介绍了“有哪些有用的Python技巧”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 函数连续调用def add(...
    99+
    2023-06-16
  • Python常用技巧有哪些
    本文小编为大家详细介绍“Python常用技巧有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python常用技巧有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1.字符串反转使用Python切片反转字符...
    99+
    2023-07-05
  • 非常实用的Python技巧有哪些
    1.唯一性以下方法可以检查给定列表是否有重复的地方,可用set()的属性将其从列表中删除。x = [1,1,2,2,3,2,3,4,5,6] y = [1,2,3,4,5] len(x)== len(set(x)) # False len(...
    99+
    2023-05-14
    Python
  • Git有哪些实用技巧
    本篇内容主要讲解“Git有哪些实用技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Git有哪些实用技巧”吧!将几个commit压缩成一个⚠️ 这里有一点要特别...
    99+
    2024-04-02
  • vue有哪些实用技巧
    本篇内容主要讲解“vue有哪些实用技巧”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue有哪些实用技巧”吧!监听组件的生命周期比如有父组件 Parent 和子...
    99+
    2024-04-02
  • PyCharm实用技巧有哪些
    这期内容当中小编将会给大家带来有关PyCharm实用技巧有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。今天主要跟大家介绍PyCharm的高效使用技巧!以下代码演示是在 Mac 环境下,Windows...
    99+
    2023-06-16
  • javascript实用技巧有哪些
    本篇内容介绍了“javascript实用技巧有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、js整数的操作使用|0和~~可以将浮点转...
    99+
    2023-06-25
  • NPM实用技巧有哪些
    今天小编给大家分享一下NPM实用技巧有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1...
    99+
    2024-04-02
  • PowerBuilder实用技巧有哪些
    以下是一些PowerBuilder实用技巧: 使用DataWindow对象的自动过滤功能来简化数据过滤和排序操作。可以通过设置F...
    99+
    2023-10-24
    PowerBuilder
  • css实用技巧有哪些
    这篇文章主要讲解了“css实用技巧有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“css实用技巧有哪些”吧!1、如何清除图片下方出现几像素的空白间隙?方...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作