Rumah > pembangunan bahagian belakang > Tutorial Python > Kongsi 18 petua pengaturcaraan cekap Python

Kongsi 18 petua pengaturcaraan cekap Python

WBOY
Lepaskan: 2023-04-16 15:25:03
ke hadapan
1115 orang telah melayarinya

Kongsi 18 petua pengaturcaraan cekap Python

Artikel ini disusun oleh Python Programming Time

Kemahiran pengaturcaraan bahasa Python yang cekap membuatkan kita yang telah belajar c atau c++ selama empat tahun di kolej sangat teruja . Ia tidak berjaya, dan akhirnya saya bebas. Bahasa peringkat tinggi, jika tidak boleh melakukan ini, mengapa ia begitu maju?

01 Tukar pembolehubah

>>>a=3
>>>b=6
Salin selepas log masuk

Jika anda ingin menukar pembolehubah dalam c++, anda pasti memerlukan pembolehubah kosong. Tetapi python tidak memerlukannya, ia hanya memerlukan satu baris, semua orang boleh melihat dengan jelas

>>>a,b=b,a
>>>print(a)
>>>6
>>>ptint(b)
>>>5
Salin selepas log masuk

02 pemahaman kamus dan Set pemahaman

Kebanyakan pengaturcara Python tahu Dan telah menggunakan pemahaman senarai. Jika anda tidak biasa dengan konsep pemahaman senarai - pemahaman senarai ialah cara yang lebih pendek dan ringkas untuk mencipta senarai.

>>> some_list = [1, 2, 3, 4, 5]
>>> another_list = [ x + 1 for x in some_list ]
>>> another_list
[2, 3, 4, 5, 6]
Salin selepas log masuk

Sejak Python 3.1, kami boleh menggunakan sintaks yang sama untuk mencipta set dan senarai kamus:

>>> # Set Comprehensions
>>> some_list = [1, 2, 3, 4, 5, 2, 5, 1, 4, 8]
>>> even_set = { x for x in some_list if x % 2 == 0 }
>>> even_set
set([8, 2, 4])
>>> # Dict Comprehensions
>>> d = { x: x % 2 == 0 for x in range(1, 11) }
>>> d
{1: False, 2: True, 3: False, 4: True, 5: False, 6: True, 7: False, 8: True, 9: False, 10: True}
Salin selepas log masuk

Dalam contoh pertama, kami menggunakan some_list sebagai asas untuk mencipta set A dengan elemen unik, dan set hanya mengandungi nombor genap. Dalam contoh jadual kamus, kami mencipta kunci yang merupakan integer tidak berulang antara 1 dan 10 dan nilainya ialah jenis Boolean yang menunjukkan sama ada kunci itu ialah nombor genap.

Perkara lain yang perlu diberi perhatian di sini ialah perwakilan literal bagi set. Kita hanya boleh membuat set dengan cara ini:

>>> my_set = {1, 2, 1, 2, 3, 4}
>>> my_set
set([1, 2, 3, 4])
Salin selepas log masuk

tanpa menggunakan set fungsi terbina dalam().

03 Gunakan Pembilang untuk mengira objek semasa mengira

Ini kelihatan jelas, tetapi sering dilupakan. Mengira sesuatu adalah tugas biasa bagi kebanyakan pengaturcara, dan dalam kebanyakan kes tidak begitu mencabar - berikut ialah beberapa cara untuk menjadikannya lebih mudah.

Pustaka kelas koleksi Python mempunyai subkelas terbina dalam kelas dict, yang direka khas untuk melakukan perkara seperti ini:

>>> from collections import Counter
>>> c = Counter('hello world')
>>> c
Counter({'l': 3, 'o': 2, ' ': 1, 'e': 1, 'd': 1, 'h': 1, 'r': 1, 'w': 1})
>>> c.most_common(2)
[('l', 3), ('o', 2)]
Salin selepas log masuk

04 Cetak JSON dengan cantik

JSON ialah bentuk siri data yang sangat baik dan digunakan secara meluas oleh pelbagai API dan perkhidmatan web hari ini. Menggunakan pemprosesan json terbina dalam Python boleh membuat rentetan JSON boleh dibaca pada tahap tertentu, tetapi apabila menemui data yang besar, ia kelihatan sebagai garis yang panjang dan berterusan, yang sukar dilihat oleh mata manusia.

Untuk menjadikan data JSON lebih mesra pengguna, kami boleh menggunakan parameter inden untuk mengeluarkan JSON yang cantik. Ini amat berguna apabila pengaturcaraan atau pengelogan secara interaktif dalam konsol:

>>> import json
>>> print(json.dumps(data))# No indention
{"status": "OK", "count": 2, "results": [{"age": 27, "name": "Oz", "lactose_intolerant": true}, {"age": 29, "name": "Joe", "lactose_intolerant": false}]}
>>> print(json.dumps(data, indent=2))# With indention
{
"status": "OK",
"count": 2,
"results": [
{
"age": 27,
"name": "Oz",
"lactose_intolerant": true
},
{
"age": 29,
"name": "Joe",
"lactose_intolerant": false
}
]
}
Salin selepas log masuk

Begitu juga, menggunakan modul pprint terbina dalam boleh membuat apa-apa perkara lain dicetak dengan lebih cantik.

05 Menyelesaikan FizzBuzz

Beberapa masa lalu Jeff Atwood mempromosikan latihan pengaturcaraan mudah yang dipanggil FizzBuzz Masalahnya dipetik seperti berikut:

Tulis program untuk mencetak nombor 1 hingga. 100, 3 Cetak "Fizz" untuk menggantikan nombor, "Buzz" untuk gandaan 5 dan "FizzBuzz" untuk nombor yang kedua-duanya adalah gandaan 3 dan 5.

Berikut ialah cara ringkas dan menarik untuk menyelesaikan masalah ini:

for x in range(1,101):
print"fizz"[x%3*len('fizz')::]+"buzz"[x%5*len('buzz')::] or x
Salin selepas log masuk

06 if statement in line

print "Hello" if True else "World"
>>> Hello
Salin selepas log masuk

07 connection

The cara terakhir di bawah adalah sejuk apabila mengikat dua objek berbeza jenis.

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
print nfc + afc
>>> ['Packers', '49ers', 'Ravens', 'Patriots']
print str(1) + " world"
>>> 1 world
print `1` + " world"
>>> 1 world
print 1, "world"
>>> 1 world
print nfc, 1
>>> ['Packers', '49ers'] 1
Salin selepas log masuk

08 Perbandingan berangka

Ini adalah kaedah yang hebat dan mudah yang saya lihat dalam banyak bahasa

x = 2
if 3 > x > 1:
 print x
>>> 2
if 1 < x > 0:
 print x
>>> 2
Salin selepas log masuk

09 Lelang dua senarai pada masa yang sama

nfc = ["Packers", "49ers"]
afc = ["Ravens", "Patriots"]
for teama, teamb in zip(nfc, afc):
 print teama + " vs. " + teamb
>>> Packers vs. Ravens
>>> 49ers vs. Patriots
Salin selepas log masuk

10 lelaran senarai terindeks

teams = ["Packers", "49ers", "Ravens", "Patriots"]
for index, team in enumerate(teams):
print index, team
>>> 0 Packers
>>> 1 49ers
>>> 2 Ravens
>>> 3 Patriots
Salin selepas log masuk

11 Pemahaman senarai

Memandangkan senarai, kita boleh memilih kaedah senarai genap:

numbers = [1,2,3,4,5,6]
even = []
for number in numbers:
if number%2 == 0:
even.append(number)
Salin selepas log masuk

diubah menjadi seperti berikut:

numbers = [1,2,3,4,5,6]
even = [number for number in numbers if number%2 == 0]
Salin selepas log masuk

12 pemahaman kamus

Sama seperti pemahaman senarai, kamus boleh melakukan kerja yang sama:

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print {key: value for value, key in enumerate(teams)}
>>> {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0}
Salin selepas log masuk

13 Mulakan nilai senarai

items = [0]*3
print items
>>> [0,0,0]
Salin selepas log masuk

14 Tukar senarai kepada rentetan

teams = ["Packers", "49ers", "Ravens", "Patriots"]
print ", ".join(teams)
>>> 'Packers, 49ers, Ravens, Patriots'
Salin selepas log masuk

15 Dapatkan elemen daripada kamus

Saya mengakui bahawa kod cuba/kecuali is not elegant , tetapi inilah kaedah yang mudah, cuba cari kunci dalam kamus, jika alue yang sepadan tidak dijumpai, parameter kedua akan digunakan untuk menetapkan nilai pembolehubahnya.

data = {'user': 1, 'name': 'Max', 'three': 4}
try:
 is_admin = data['admin']
except KeyError:
 is_admin = False
Salin selepas log masuk

Ganti dengan ini

data = {'user': 1, 'name': 'Max', 'three': 4}
is_admin = data.get('admin', False)
Salin selepas log masuk

16 Dapatkan subset senarai

Kadangkala, anda hanya memerlukan beberapa elemen dalam senarai, berikut adalah beberapa sub- set mendapatkan kaedah set senarai.

x = [1,2,3,4,5,6]
#前3个
print x[:3]
>>> [1,2,3]
#中间4个
print x[1:5]
>>> [2,3,4,5]
#最后3个
print x[3:]
>>> [4,5,6]
#奇数项
print x[::2]
>>> [1,3,5]
#偶数项
print x[1::2]
>>> [2,4,6]
Salin selepas log masuk

Selain jenis data terbina dalam python, modul pengumpulan juga termasuk beberapa kes penggunaan khas sangat praktikal dalam beberapa situasi. Jika anda menyertai Facebook HackerCup tahun ini, anda juga boleh mendapati praktikalnya.

from collections import Counter
print Counter("hello")
>>> Counter({'l': 2, 'h': 1, 'e': 1, 'o': 1})
Salin selepas log masuk

17 Alat Lelaran

Seperti perpustakaan koleksi, terdapat juga perpustakaan yang dipanggil itertools, yang boleh menyelesaikan masalah tertentu dengan cekap. Satu kes penggunaan adalah untuk mencari semua gabungan, yang boleh memberitahu anda semua gabungan unsur yang mustahil dalam kumpulan

from itertools import combinations
teams = ["Packers", "49ers", "Ravens", "Patriots"]
for game in combinations(teams, 2):
print game
>>> ('Packers', '49ers')
>>> ('Packers', 'Ravens')
>>> ('Packers', 'Patriots')
>>> ('49ers', 'Ravens')
>>> ('49ers', 'Patriots')
>>> ('Ravens', 'Patriots')
Salin selepas log masuk

18 Salah == Benar

Ini lebih praktikal daripada teknologi praktikal perkara yang sangat menarik. Dalam python, Benar dan Salah ialah pembolehubah global, jadi:

False = True
if False:
 print "Hello"
else:
 print "World"
>>> Hello
Salin selepas log masuk

Atas ialah kandungan terperinci Kongsi 18 petua pengaturcaraan cekap Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:51cto.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan