Rumah > Artikel > pembangunan bahagian belakang > Ringkaskan dan susun! Ringkasan kemahiran praktikal Python
Artikel ini membawakan anda pengetahuan yang berkaitan tentang python Ia meringkaskan terutamanya 24 kemahiran pembangunan Python yang sangat praktikal, termasuk semua atau mana-mana, bashplotlib, koleksi, dll. Saya harap ia akan membantu anda Semua orang membantu.
Pembelajaran yang disyorkan: tutorial python
Dalam proses pembelajaran Python, ramai rakan mungkin berfikir, saya telah belajar banyak di sana adakah banyak, yang manakah yang biasa digunakan dan praktikal? Bagaimana untuk meningkatkan kecekapan kerja?
Hari ini, saya telah merumuskan 24 kemahiran praktikal Python yang sangat berguna, saya harap ia akan membantu rakan saya! Selamat datang untuk mengumpul dan belajar, suka dan menyokong Kumpulan pertukaran teknikal disediakan di penghujung artikel.
Di sini, saya cuba berkongsi beberapa teknik ini dalam format bermula dengan A - Z, dan secara ringkas memperkenalkan kaedah ini Jika anda berminat dengan satu atau lebih daripadanya, anda boleh menyemak laman web rasmi melalui bahan rujukan di akhir artikel~
Salah satu daripada banyak sebab mengapa bahasa Python begitu popular adalah kerana ia sangat mudah dibaca dan ekspresif.
Orang ramai sering bergurau bahawa Python ialah 可执行的伪代码
. Sukar untuk berdebat dengan itu apabila anda boleh menulis kod seperti ini.
x = [True, True, False]if any(x): print("至少有一个True")if all(x): print("全是True")if any(x) and not all(x): print("至少一个True和一个False")
Pernahkah anda terfikir untuk melukis grafik dalam konsol?
Bashplotlib ialah perpustakaan Python yang boleh membantu kami merancang data dalam baris arahan (persekitaran kasar).
# 模块安装 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)
Python mempunyai beberapa jenis data lalai yang hebat, tetapi kadangkala ia tidak berkelakuan tepat seperti yang anda jangkakan.
Nasib baik, pustaka standard Python menyediakan modul koleksi**[1]**. Alat tambah berguna ini memberi anda lebih banyak jenis data.
from collections import OrderedDict, Counter # 记住键的添加顺序! x = OrderedDict(a=1, b=2, c=3) # 统计每个字符出现的频率 y = Counter("Hello World!")
Pernah terfikir cara melihat ke dalam objek Python dan melihat sifat yang ada padanya? Pada baris arahan, taip:
dir() dir("Hello World") dir(dir)
Ini boleh menjadi ciri yang sangat berguna apabila menjalankan Python secara interaktif dan dinamik meneroka objek dan modul yang anda sedang bekerjasama. Baca lebih lanjut tentang **fungsi****[2]** di sini.
emoji**[3]** ialah simbol emosi visual yang digunakan dalam komunikasi wayarles di Jepun. Teks merujuk kepada aksara, yang boleh digunakan untuk mewakili pelbagai ekspresi, seperti muka tersenyum mewakili ketawa, kek mewakili makanan, dsb. Di tanah besar China, emoji biasanya dipanggil "wajah kuning kecil" atau ringkasnya emoji.
# 安装模块 pip install emoji # 做个尝试 from emoji import emojize print(emojize(":thumbs_up:"))
Salah satu hasil populariti Python ialah sentiasa ada versi baharu yang dibangunkan. Versi baharu bermaksud ciri baharu — melainkan versi anda sudah lapuk.
Tetapi jangan risau. Menggunakan modul __future__ ****[4]** boleh membantu anda mengimport kefungsian dengan versi Python yang akan datang. Ia benar-benar seperti perjalanan masa atau sihir atau sesuatu.
from __future__ import print_function print("Hello World!")
Geografi ialah bidang yang mencabar bagi kebanyakan pengaturcara. Apabila mendapatkan maklumat geografi atau melukis peta, anda juga akan menghadapi banyak masalah. **modul geopi****[5]** menjadikan kandungan berkaitan geografi sangat mudah.
pip install geopy
Ia berfungsi dengan mengabstraksikan API pelbagai perkhidmatan geokod yang berbeza. Dengan itu, anda boleh mendapatkan alamat jalan yang lengkap, latitud, longitud dan juga ketinggian sesuatu tempat.
Terdapat juga kelas jarak jauh yang berguna. Ia mengira jarak antara dua lokasi dalam unit ukuran pilihan anda.
from geopy import GoogleV3 place = "221b Baker Street, London" location = GoogleV3().geocode(place) print(location.address) print(location.location)
Apabila anda menggunakan pengaturcaraan terminal, anda akan mencari jawapan pada StackOverflow selepas menghadapi masalah, dan kemudian anda akan kembali ke terminal untuk meneruskan . Pengaturcaraan, kadangkala anda tidak ingat penyelesaian yang anda temui sebelum ini, anda perlu menyemak StackOverflow sekali lagi, tetapi anda tidak mahu meninggalkan terminal, maka anda perlu menggunakan alat baris arahan yang berguna ini howdoi**** [6].
pip install howdoi
Tidak kira apa soalan yang anda ada, anda boleh bertanya dan ia akan cuba sedaya upaya untuk membalas.
howdoi vertical align css howdoi for loop in java howdoi undo commits in git
Tetapi amaran - ia akan mengikis kod daripada jawapan teratas pada StackOverflow. Ia mungkin tidak selalu memberikan maklumat yang paling berguna...
howdoi exit vim
**modul pemeriksaan**[7]** Python sangat Bagus untuk memahami perkara yang berlaku di sebalik tabir. Anda juga boleh memanggil kaedahnya sendiri!
Contoh kod di bawahinspect.getsource()
adalah untuk mencetak kod sumber anda sendiri. inspect.getmodule()
juga digunakan untuk mencetak modul yang ditakrifkan.
Barisan terakhir kod mencetak nombor barisnya sendiri.
import inspect print(inspect.getsource(inspect.getsource)) print(inspect.getmodule(inspect.getmodule)) print(inspect.currentframe().f_lineno)
Sudah tentu, selain daripada penggunaan remeh ini, modul periksa boleh terbukti berguna untuk memahami perkara yang dilakukan oleh kod anda. Anda juga boleh menggunakannya untuk menulis kod pendokumentasian sendiri.
Pustaka Jedi ialah perpustakaan autolengkap dan analisis kod. Ia menjadikan penulisan kod lebih pantas dan lebih cekap.
Melainkan anda sedang membangunkan IDE anda sendiri, anda mungkin berminat untuk menggunakan Jedi **[8]** sebagai pemalam editor. Nasib baik, sudah ada banyak yang tersedia!
在学习任何语言时,都会有许多里程碑。使用 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)
当你想编写可以处理未预先定义的命名参数的函数时,这很有用。
关于 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)
Python 通过许多内置功能支持函数式编程。最有用的map()
功能之一是函数——尤其是与**lambda 函数****[11]**结合使用时。
x = [1, 2, 3] y = map(lambda x : x + 1, x) # 打印出 [2,3,4] print(list(y))
在上面的示例中,map()
将一个简单的 lambda
函数应用于x
. 它返回一个映射对象,该对象可以转换为一些可迭代对象,例如列表或元组。
如果你还没有看过它,那么准备好被Python newspaper module [12]模块震撼到。它使你可以从一系列领先的国际出版物中检索新闻文章和相关的元数据。你可以检索图像、文本和作者姓名。它甚至有一些内置的 NLP 功能**[13]**。
因此,如果你正在考虑在下一个项目中使用 BeautifulSoup
或其他一些 DIY 网页抓取库,使用本模块可以为你自己节省不少时间和精力。
pip install newspaper3k
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.__value something = Thing(100) nothing = Thing(0) # True something > nothing # False something < nothing # Error something + nothing
Python 的默认print
函数完成了它的工作。但是如果尝试使用print
函数打印出任何大的嵌套对象,其结果相当难看。这个标准库的漂亮打印模块**pprint****[15]**可以以易于阅读的格式打印出复杂的结构化对象。
这算是任何使用非平凡数据结构的 Python 开发人员的必备品。
import requests import pprint url = 'https://randomuser.me/api/?results=1' users = requests.get(url).json() pprint.pprint(users)
Python 标准库的 Queue 模块实现支持多线程。这个模块让你实现队列数据结构。这些是允许你根据特定规则添加和检索条目的数据结构。
“先进先出”(FIFO)队列让你可以按添加顺序检索对象。“后进先出”(LIFO) 队列让你可以首先访问最近添加的对象。
最后,优先队列让你可以根据对象的排序顺序检索对象。
这是一个如何在 Python 中使用队列**Queue****[16]**进行多线程编程的示例。
在 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)
Python 是一种很棒的脚本语言。有时使用标准的 os 和 subprocess 库可能有点头疼。
该**SH库****[17]**让你可以像调用普通函数一样调用任何程序——对于自动化工作流和任务非常有用。
import sh sh.pwd() sh.mkdir('new_folder') sh.touch('new_file.txt') sh.whoami() sh.echo('This is great!')
Python 是一种动态类型语言。定义变量、函数、类等时不需要指定数据类型。这允许快速的开发时间。但是,没有什么比由简单的输入问题引起的运行时错误更烦人的了。
从 Python 3.5**[18]** 开始,你可以选择在定义函数时提供类型提示。
def addTwo(x : Int) -> Int: return x +
你还可以定义类型别名。
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。如果你正在处理大型、复杂的项目,这是很有用的!
通过Python 标准库的 uuid 模块**[19]**生成通用唯一 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,重复存在的可能性也远低于十亿分之一。
你可能同时在多个 Python 项目上工作。不幸的是,有时两个项目将依赖于相同依赖项的不同版本。你在你的系统上安装了什么?
幸运的是,Python支持对 虚拟环境**[20]** 的让你可以两全其美。从命令行:
python -m venv my-project source my-project/bin/activate pip install all-the-modules
现在,你可以在同一台机器上运行 Python 的独立版本和安装。
维基百科有一个很棒的 API,它允许用户以编程方式访问无与伦比的完全免费的知识和信息。在**wikipedia模块****[21]**使访问该API非常方便。
import wikipedia result = wikipedia.page('freeCodeCamp') print(result.summary) for link in result.links: print(link)
和真实站点一样,该模块提供了多语言支持、页面消歧、随机页面检索,甚至还有一个donate()
方法。
幽默是 Python 语言的一个关键特征,它是以英国喜剧小品剧**Python飞行马戏团****[22]**命名的。Python 的许多官方文档都引用了该节目最著名的草图。不过,Python 的幽默并不仅限于文档。试试运行下面的行:
import antigravity
YAML**[23]**指的是 “ 非标记语言” 。它是一种数据格式化语言,是 JSON 的超集。
与 JSON 不同,它可以存储更复杂的对象并引用它自己的元素。你还可以编写注释,使其特别适合编写配置文件。该**PyYAML模块****[24]**可让你使用YAML使用Python。
安装并然后导入到你的项目中:
pip install pyyamlimport yaml
PyYAML 允许你存储任何数据类型的 Python 对象,以及任何用户定义类的实例。
压轴出场的也是很棒的一个模块。你曾经遇到过需要从两个列表中形成字典吗?
keys = ['a', 'b', 'c'] vals = [1, 2, 3] zipped = dict(zip(keys, vals))
该zip()
内置函数需要一系列可迭代的对象,并返回一个元组列表中。每个元组按位置索引对输入对象的元素进行分组。
你还可以通过调用对象来“解压缩”对象*zip()
。
Python 是一种非常多样化且发展良好的语言,因此肯定会有许多我没有考虑的功能。如果你想了解更多的python模块,可以参考awesome-python****[25]。
推荐学习:python学习教程
Atas ialah kandungan terperinci Ringkaskan dan susun! Ringkasan kemahiran praktikal Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!