


Ringkaskan tiga puluh kemahiran praktikal Python
Artikel ini membawa anda pengetahuan yang berkaitan tentang python terutamanya meringkaskan beberapa teknik penggunaan biasa dalam proses pengaturcaraan, termasuk menyemak objek, menggunakan rentetan berbilang baris dan fungsi hamba kandungan lain yang berkaitan, saya harap ia akan membantu semua orang.
Pembelajaran yang disyorkan: tutorial python
Petua 1 Menukar dua nombor di tempat
Python menyediakan An intuitif cara untuk melaksanakan tugasan dan pertukaran dalam satu baris. Sila rujuk contoh di bawah. Tugasan di sebelah kanan
x, y = 10, 20print(x, y) x, y = y, xprint(x, y) #1 (10, 20)#2 (20, 10)
menghasilkan tupel baharu. Dan yang di sebelah kiri serta-merta membongkar tuple (tanpa petikan) itu ke dalam nama <a>
dan <b>
.
Selepas peruntukan selesai, tupel baharu akan dinyahrujuk dan ditanda untuk kutipan sampah. Pertukaran pembolehubah juga berlaku pada akhir.
Petua 2 Rangkaian pengendali perbandingan.
Pengagregatan pengendali perbandingan ialah satu lagi helah yang kadangkala berguna.
n = 10 result = 1 < n < 20 print(result) # True result = 1 > n <= 9 print(result) # False
Petua 3 Gunakan operator ternary untuk penugasan bersyarat.
Pengendali ternary ialah pintasan untuk pernyataan if-else, juga dikenali sebagai operator bersyarat.
[on_true] if [expression] else [on_false]
Berikut ialah beberapa contoh yang boleh anda gunakan untuk menjadikan kod anda padat dan ringkas.
Pernyataan berikut mempunyai maksud yang sama seperti "jika y ialah 9, maka tetapkan 10 kepada x, jika tidak tetapkan 20 kepada x". Kami boleh mengembangkan rantaian operator jika perlu.
x = 10 if (y == 9) else 20
Begitu juga, kita boleh melakukan perkara yang sama dengan objek kelas.
x = (classA if y == 1 else classB)(param1, param2)
Dalam contoh di atas, kelasA dan kelasB ialah dua kelas, satu daripadanya pembina kelas akan dipanggil.
Berikut ialah contoh no. Tambah syarat yang menilai nombor terkecil.
def small(a, b, c): return a if a <= b and a <= c else (b if b <= a and b <= c else c) print(small(1, 0, 1))print(small(1, 2, 2))print(small(2, 2, 3))print(small(5, 4, 3))#Output#0 #1 #2 #3
Kita juga boleh menggunakan operator ternary dalam pemahaman senarai.
[m**2 if m > 10 else m**4 for m in range(50)]#=> [0, 1, 16, 81, 256, 625, 1296, 2401, 4096, 6561, 10000, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401]
Petua 4 Menggunakan rentetan berbilang baris
Pendekatan asas ialah menggunakan garis miring ke belakang, yang berasal daripada bahasa C.
multiStr = "select * from multi_row \ where row_id < 5"print(multiStr)# select * from multi_row where row_id < 5
Helah lain ialah menggunakan petikan tiga kali ganda.
multiStr = """select * from multi_row where row_id < 5"""print(multiStr)#select * from multi_row #where row_id < 5
Masalah biasa dengan kaedah di atas ialah kekurangan lekukan yang betul. Jika kita cuba mengesot, ia memasukkan ruang dalam rentetan.
Jadi penyelesaian terakhir ialah membelah rentetan kepada berbilang baris dan melampirkan keseluruhan rentetan dalam kurungan.
multiStr= ("select * from multi_row ""where row_id < 5 ""order by age") print(multiStr)#select * from multi_row where row_id < 5 order by age
Petua 5 Menyimpan elemen senarai ke dalam pembolehubah baharu
Kita boleh menggunakan senarai untuk memulakan no. pembolehubah. Apabila membongkar senarai, bilangan pembolehubah tidak boleh melebihi bilangan. elemen dalam senarai.
testList = [1,2,3]x, y, z = testListprint(x, y, z)#-> 1 2 3
Petua 6 Cetak laluan fail modul yang diimport
Jika anda ingin mengetahui lokasi mutlak modul yang diimport dalam kod anda, gunakan helah berikut.
import threading import socketprint(threading)print(socket)#1- <module 'threading' from '/usr/lib/python2.7/threading.py'>#2- <module 'socket' from '/usr/lib/python2.7/socket.py'>
Petua 7 Gunakan pengendali “_” interaktif
Ini ialah ciri berguna yang ramai daripada kita tidak tahu.
Dalam konsol Python, setiap kali kami menguji ungkapan atau memanggil fungsi, hasilnya dihantar ke nama sementara _ (garis bawah).
>>> 2 + 13>>> _3>>> print _3
"_" merujuk kepada output ungkapan yang terakhir dilaksanakan.
Petua 8 Kamus/set pemahaman
Sama seperti kita menggunakan pemahaman senarai, kita juga boleh menggunakan kamus/set pemahaman. Mereka mudah digunakan dan sama-sama berkesan. Berikut adalah contoh.
testDict = {i: i * i for i in xrange(10)} testSet = {i * 2 for i in xrange(10)}print(testSet)print(testDict) #set([0, 2, 4, 6, 8, 10, 12, 14, 16, 18]) #{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
Nota - Satu-satunya perbezaan antara kedua-dua pernyataan ialah <:>. Juga, untuk menjalankan kod di atas dalam Python3, gantikan dengan .
Petua 9 Menyahpepijat Skrip
Kami boleh menetapkan titik putus dalam skrip Python dengan bantuan modul. Sila ikuti contoh di bawah.
import pdb pdb.set_trace()
Kami boleh menentukan
Petua 10 Menyediakan Perkongsian Fail
Python membenarkan menjalankan pelayan HTTP, yang boleh anda gunakan untuk berkongsi fail daripada akar pelayan. Di bawah ialah arahan untuk memulakan pelayan.
Python 2
python -m SimpleHTTPServer
Python 3
python3 -m http.server
Arahan di atas akan memulakan pelayan pada port lalai 8000. Anda juga boleh menggunakan port tersuai dengan menghantarnya sebagai parameter terakhir kepada arahan di atas.
Petua 11 Menyemak Objek dalam Python
Kita boleh menyemak objek dalam Python dengan memanggil kaedah dir(). Ini adalah contoh mudah.
test = [1, 3, 5, 7]print( dir(test) )
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
Petua 12 Permudahkan pernyataan if
Untuk mengesahkan berbilang nilai kita boleh melakukannya dengan cara berikut.
if m in [1,3,5,7]:
bukannya:
if m==1 or m==3 or m==5 or m==7:
Sebagai alternatif, kita boleh menggunakan '{1,3,5,7}' dan bukannya '[1,3,5,7]' sebagai operator 'dalam', kerana 'set' boleh mengakses setiap elemen dalam O(1).
Petua 13 Kesan versi Python pada masa jalan
Kadangkala, kami mungkin tidak mahu melaksanakan program kami jika enjin Python yang sedang berjalan lebih rendah daripada versi yang disokong. Untuk melakukan ini, anda boleh menggunakan coretan kod berikut. Ia juga mencetak versi Python yang sedang digunakan dalam format yang boleh dibaca manusia.
import sys#Detect the Python version currently in use.if not hasattr(sys, "hexversion") or sys.hexversion != 50660080: print("Sorry, you aren't running on Python 3.5\n") print("Please upgrade to 3.5.\n") sys.exit(1) #Print Python version in a readable format.print("Current Python version: ", sys.version)
Sebagai alternatif, anda boleh menggantikan sys.hexversion!= 50660080 dengan sys.version_info >= (3, 5) dalam kod di atas. Ini adalah nasihat pembaca yang berpengetahuan.
Output apabila dijalankan pada Python 2.7.
Python 2.7.10 (default, Jul 14 2015, 19:46:27)[GCC 4.8.2] on linux Sorry, you aren't running on Python 3.5Please upgrade to 3.5.
在 Python 3.5 上运行时的输出。
Python 3.5.1 (default, Dec 2015, 13:05:11)[GCC 4.8.2] on linux Current Python version: 3.5.2 (default, Aug 22 2016, 21:11:05) [GCC 5.3.0]
技巧14 组合多个字符串
如果您想连接列表中所有可用的标记,请参见以下示例。
>>> test = ['I', 'Like', 'Python', 'automation']
现在,让我们从上面给出的列表中的元素创建一个字符串。
>>> print ''.join(test)
技巧15 反转 string/list 的四种方法
反转列表本身
testList = [1, 3, 5]testList.reverse()print(testList)#-> [5, 3, 1]
在循环中迭代时反转
for element in reversed([1,3,5]): print(element)#1-> 5#2-> 3#3-> 1
反转一个字符串
"Test Python"[::-1]
这使输出为“nohtyP tseT”
使用切片反转列表
[1, 3, 5][::-1]
上面的命令将输出 [5, 3, 1]。
技巧16 玩枚举
使用枚举器,在循环中很容易找到索引。
testlist = [10, 20, 30]for i, value in enumerate(testlist): print(i, ': ', value)#1-> 0 : 10#2-> 1 : 20#3-> 2 : 30
技巧17 在 Python 中使用枚举。
我们可以使用以下方法来创建枚举定义。
class Shapes: Circle, Square, Triangle, Quadrangle = range(4)print(Shapes.Circle)print(Shapes.Square)print(Shapes.Triangle)print(Shapes.Quadrangle)#1-> 0#2-> 1#3-> 2#4-> 3
技巧18 从函数返回多个值。
支持此功能的编程语言并不多。但是,Python 中的函数确实会返回多个值。
请参考以下示例以查看它的工作情况。
# function returning multiple values.def x(): return 1, 2, 3, 4# Calling the above function.a, b, c, d = x()print(a, b, c, d)
#-> 1 2 3 4
技巧19 使用 splat 运算符解包函数参数。
splat 运算符提供了一种解压参数列表的艺术方式。为清楚起见,请参阅以下示例。
def test(x, y, z): print(x, y, z)testDict = {'x': 1, 'y': 2, 'z': 3} testList = [10, 20, 30]test(*testDict)test(**testDict)test(*testList)#1-> x y z#2-> 1 2 3#3-> 10 20 30
技巧20 使用字典来存储 switch。
我们可以制作一个字典存储表达式。
stdcalc = { 'sum': lambda x, y: x + y, 'subtract': lambda x, y: x - y}print(stdcalc['sum'](9,3))print(stdcalc['subtract'](9,3))#1-> 12#2-> 6
技巧21 计算一行中任意数字的阶乘。
Python 2.x.
result = (lambda k: reduce(int.__mul__, range(1,k+1),1))(3)print(result)#-> 6
Python 3.x.
import functools result = (lambda k: functools.reduce(int.__mul__, range(1,k+1),1))(3)print(result)
#-> 6
技巧22 查找列表中出现频率最高的值。
test = [1,2,3,4,2,2,3,1,4,4,4]print(max(set(test), key=test.count))#-> 4
技巧23 重置递归限制。
Python 将递归限制限制为 1000。我们可以重置它的值。
import sys x=1001print(sys.getrecursionlimit())sys.setrecursionlimit(x)print(sys.getrecursionlimit())#1-> 1000#2-> 1001
请仅在需要时应用上述技巧。
技巧24 检查对象的内存使用情况。
在 Python 2.7 中,32 位整数消耗 24 字节,而在 Python 3.5 中使用 28 字节。为了验证内存使用情况,我们可以调用 方法。
Python 2.7.
import sys x=1print(sys.getsizeof(x))#-> 24
Python 3.5.
import sys x=1print(sys.getsizeof(x))#-> 28
技巧25 使用 __slots__ 减少内存开销。
你有没有观察到你的 Python 应用程序消耗了大量资源,尤其是内存?这是使用<__slots__>
类变量在一定程度上减少内存开销的一种技巧。
import sysclass FileSystem(object): def __init__(self, files, folders, devices): self.files = files self.folders = folders self.devices = devicesprint(sys.getsizeof( FileSystem ))class FileSystem1(object): __slots__ = ['files', 'folders', 'devices'] def __init__(self, files, folders, devices): self.files = files self.folders = folders self.devices = devicesprint(sys.getsizeof( FileSystem1 ))#In Python 3.5#1-> 1016#2-> 888
显然,您可以从结果中看到内存使用量有所节省。但是当一个类的内存开销不必要地大时,你应该使用 __slots__
。仅在分析应用程序后执行此操作。否则,您将使代码难以更改并且没有真正的好处。
技巧26 Lambda 模仿打印功能。
import sys lprint=lambda *args:sys.stdout.write(" ".join(map(str,args)))lprint("python", "tips",1000,1001)#-> python tips 1000 1001
技巧27 从两个相关序列创建字典。
t1 = (1, 2, 3)t2 = (10, 20, 30)print(dict (zip(t1,t2)))#-> {1: 10, 2: 20, 3: 30}
技巧28 在线搜索字符串中的多个前缀。
print("http://www.baidu.com".startswith(("http://", "https://")))print("https://juejin.cn".endswith((".com", ".cn")))#1-> True#2-> True
技巧29 形成一个统一的列表,不使用任何循环。
import itertools test = [[-1, -2], [30, 40], [25, 35]]print(list(itertools.chain.from_iterable(test)))#-> [-1, -2, 30, 40, 25, 35]
如果您有一个包含嵌套列表或元组作为元素的输入列表,请使用以下技巧。但是,这里的限制是它使用了 for 循环。
def unifylist(l_input, l_target): for it in l_input: if isinstance(it, list): unifylist(it, l_target) elif isinstance(it, tuple): unifylist(list(it), l_target) else: l_target.append(it) return l_target test = [[-1, -2], [1,2,3, [4,(5,[6,7])]], (30, 40), [25, 35]]print(unifylist(test,[]))#Output => [-1, -2, 1, 2, 3, 4, 5, 6, 7, 30, 40, 25, 35]
统一包含列表和元组的列表的另一种更简单的方法是使用 Python 的 < more_itertools > 包。它不需要循环。只需执行 < pip install more_itertools >,如果还没有的话。
import more_itertools test = [[-1, -2], [1, 2, 3, [4, (5, [6, 7])]], (30, 40), [25, 35]]print(list(more_itertools.collapse(test)))#Output=> [-1, -2, 1, 2, 3, 4, 5, 6, 7, 30, 40, 25, 35]
技巧30 在 Python 中实现真正的 switch-case 语句。
这是使用字典来模仿 switch-case 构造的代码。
def xswitch(x): return xswitch._system_dict.get(x, None) xswitch._system_dict = {'files': 10, 'folders': 5, 'devices': 2}print(xswitch('default'))print(xswitch('devices'))#1-> None#2-> 2
推荐学习:python学习教程
Atas ialah kandungan terperinci Ringkaskan tiga puluh kemahiran praktikal Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Anda boleh mempelajari konsep pengaturcaraan asas dan kemahiran Python dalam masa 2 jam. 1. Belajar Pembolehubah dan Jenis Data, 2.

Python digunakan secara meluas dalam bidang pembangunan web, sains data, pembelajaran mesin, automasi dan skrip. 1) Dalam pembangunan web, kerangka Django dan Flask memudahkan proses pembangunan. 2) Dalam bidang sains data dan pembelajaran mesin, numpy, panda, scikit-learn dan perpustakaan tensorflow memberikan sokongan yang kuat. 3) Dari segi automasi dan skrip, Python sesuai untuk tugas -tugas seperti ujian automatik dan pengurusan sistem.

Tidak mustahil untuk melihat kata laluan MongoDB secara langsung melalui Navicat kerana ia disimpan sebagai nilai hash. Cara mendapatkan kata laluan yang hilang: 1. Tetapkan semula kata laluan; 2. Periksa fail konfigurasi (mungkin mengandungi nilai hash); 3. Semak Kod (boleh kata laluan Hardcode).

Sebagai profesional data, anda perlu memproses sejumlah besar data dari pelbagai sumber. Ini boleh menimbulkan cabaran kepada pengurusan data dan analisis. Nasib baik, dua perkhidmatan AWS dapat membantu: AWS Glue dan Amazon Athena.

Untuk membaca giliran dari Redis, anda perlu mendapatkan nama giliran, membaca unsur -unsur menggunakan arahan LPOP, dan memproses barisan kosong. Langkah-langkah khusus adalah seperti berikut: Dapatkan nama giliran: Namakannya dengan awalan "giliran:" seperti "giliran: my-queue". Gunakan arahan LPOP: Keluarkan elemen dari kepala barisan dan kembalikan nilainya, seperti LPOP Queue: My-Queue. Memproses Baris kosong: Jika barisan kosong, LPOP mengembalikan nihil, dan anda boleh menyemak sama ada barisan wujud sebelum membaca elemen.

Soalan: Bagaimana untuk melihat versi pelayan Redis? Gunakan alat perintah Redis-cli -version untuk melihat versi pelayan yang disambungkan. Gunakan arahan pelayan INFO untuk melihat versi dalaman pelayan dan perlu menghuraikan dan mengembalikan maklumat. Dalam persekitaran kluster, periksa konsistensi versi setiap nod dan boleh diperiksa secara automatik menggunakan skrip. Gunakan skrip untuk mengautomasikan versi tontonan, seperti menyambung dengan skrip Python dan maklumat versi percetakan.

Langkah -langkah untuk memulakan pelayan Redis termasuk: Pasang Redis mengikut sistem operasi. Mulakan perkhidmatan Redis melalui Redis-server (Linux/macOS) atau redis-server.exe (Windows). Gunakan redis-cli ping (linux/macOS) atau redis-cli.exe ping (windows) perintah untuk memeriksa status perkhidmatan. Gunakan klien Redis, seperti redis-cli, python, atau node.js untuk mengakses pelayan.

Keselamatan kata laluan Navicat bergantung pada gabungan penyulitan simetri, kekuatan kata laluan dan langkah -langkah keselamatan. Langkah -langkah khusus termasuk: menggunakan sambungan SSL (dengan syarat bahawa pelayan pangkalan data menyokong dan mengkonfigurasi sijil dengan betul), mengemas kini Navicat, menggunakan kaedah yang lebih selamat (seperti terowong SSH), menyekat hak akses, dan yang paling penting, tidak pernah merakam kata laluan.
