Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Töökoodi kirjutamisest ei piisa alati; peaksite proovima kirjutada hästi struktureeritud koodi, millest on ka lihtne aru saada. Puhas kood muudab teie ja teiste jaoks teie tarkvara hooldamise lihtsaks.

Pythonil on palju funktsioone ja funktsioone, mis aitavad teil puhtamat koodi kirjutada. Siin on mõned parimad.

1. Automatiseerige ressursside sulgemine kontekstihalduriga

Ressursside käsitsi sulgemine võib olla ebamugav, kui teie kood suhtleb paljude ressurssidega. Võite unustada ressursi sulgeda. See muudab teie programmi süsteemiressursse ebaefektiivselt kasutama, mis võib põhjustada a mäluleke.

See kood avab faili ja seejärel sulgeb selle käsitsi:

file = open('test.txt', 'r')
file_contents = file.read()
file.close()
words = file_contents.split(' ')
sõnade_arv = len (sõnad)
print (sõnade_arv)

Kontekstihalduri abil saate faili sulgemise automatiseerida. Kontekstihaldurid haldavad ressursse teie eest, nii et te ei pea meeles pidama, et neid käsitsi hallata. Kasuta

koos avaldus ressursi haldamiseks konteksti loomiseks:

koos avatud ('test.txt', 'r') nagu fail:
file_contents = file.read()
words = file_contents.split(' ')
sõnade_arv = len (sõnad)
print (sõnade_arv)

Selle ploki kood töötab failiobjekti kontekstis, mis avatud naaseb. Python sulgeb faili automaatselt, kui kood sellest kontekstist lahkub, isegi kui ilmneb erand.

2. Cleaner tingimuslausete kirjutamine

Võimalik, et kirjutate sellega tegelemisel palju tarbetut koodi kui-muidu avaldused. Pythonil on kolmekomponentsed operaatorid, mis aitavad teil kirjutada kompaktsemaid avaldusi. Allolev koodiplokk näitab tavalist if-else lauset.

tingimus = Tõsi

kui tingimus:
x = 1
muidu:
x = 0

printida (x)

Saate selle koodi ümber kirjutada kolmeosalise operaatori abil, mis võimaldab teil kirjutada tingimuse ühele koodireale.

tingimus = Tõsi
x = 1kui tingimus muidu0
printida (x)

Oluline on märkida, et lihtsa loogika rakendamisel peaksite kasutama kolmekomponentseid operaatoreid. Keerulisemas loogikas ja pesastatud tingimuslausetes võib kolmeosaline operaator muutuda raskesti mõistetavaks.

3. Enumerate funktsiooniga üksuste jälgimine

Pythoni loendi itereerimisel pääsete praeguse üksuse registrile juurde kahel viisil. Üks võimalus on kasutada traditsioonilist for-silmust. See töötab hästi, kuid kood pole nii puhas kui võiks. See nõuab ka indeksi käsitsi lähtestamist.

autod = ["Bugatti", "Mercedes", "Toyota"]
indeks = 0

jaoks auto sisse autod:
print (indeks, auto)
indeks += 1

Teine võimalus on kasutada Pythoni sisseehitatud loendusfunktsiooni. See võimaldab teil silmustsükli ajal juurdepääsu indeksile ja loendis olevale vastavale väärtusele.

autod = ["Bugatti", "Mercedes", "Toyota"]

jaoks indeks, auto sisse loetleda (autod):
print (indeks, auto)

Nüüd ei pea te indeksit käsitsi jälgima.

4. Zip-funktsiooniga mitme loendi silmus

Loendamisfunktsiooni saate kasutada ka mitme loendi korraga liikumiseks. Hankige esimese loendi register, seejärel kasutage seda teiste loendite vastavatele väärtustele juurdepääsuks.

english_names = ['toit', 'vesi', 'auto']
hispaania_nimed = ['alimento', 'agua', 'auto']

jaoks indeks, nimi sisse loetlema (inglise_names):
hispaania = hispaania_nimed [indeks]
printida (f' {nimi} hispaania keeles on {hispaania}')

See töötab hästi, kuid loendite arvu suurenemisel peate kirjutama palju tarbetut koodi. Puhtama koodi kirjutamiseks võite kasutada ZIP-funktsiooni ja edastada sellele oma loendi nimed.

english_names = ['toit', 'vesi', 'auto']
hispaania_nimed = ['alimento', 'agua', 'auto']

jaoks inglise, hispaania keel sisse zip (inglise_names, hispaania_names):
print(f' {Inglise} hispaania keeles on {hispaania}')

Peaksite jätkama loendamisfunktsiooni kasutamist silmus üle ühe loendi. Kui aga vaatate mitut loendit koos, kaaluge ZIP-funktsiooni kasutamist.

Tundliku teabe sisestamisel ei tohiks sisend olla ekraanil lihttekstina nähtav. Tavaline viis Pythonis sisendi saamiseks on kasutada sisestusfunktsiooni:

kasutajanimi = input('Kasutajanimi:')
parool = input('Parool:')
print('Sisse logima...')

Sisestusfunktsioon muudab parooli aga tippimise ajal ekraanil lihttekstina nähtavaks. Veendumaks, et parooli ekraanil ei kuvata, peaksite selle asemel kasutama funktsiooni getpass:

alates saada pass importida saada pass
kasutajanimi = input('Kasutajanimi:')
parool = getpass("Parool:")
print('Sisse logima...')

Getpassi moodul on Pythoni standardteegi osa, nii et te ei pea seda installima.

6. Suurte numbrite loetavaks muutmine allkriipsutatud kohatäite abil

Kui teie programmis on palju numbreid, võib neid olla väga raske lühidalt lugeda. Muutujatele valede numbrite määramine põhjustab vigase programmi ja selle vea tuvastamine võib olla väga raske.

arv1 = 10000000000
arv2 = 100000000
kokku = number1 + arv2
print (kokku)

Saate ülaltoodud koodi ümber kirjutada, kasutades allkriipse, et eraldada tuhandetest koosnevad rühmad. See on levinud viis suurte numbrite loetavamaks muutmiseks.

arv1 = 10_000_000_000
arv2 = 100_000_000
kokku = number1 + arv2
print(f'{kokku:,}')

Prindifunktsiooni string f eraldab väljundi tuhandete eraldaja abil.

7. Abifunktsiooni kasutamine mooduli kohta lisateabe saamiseks

Abifunktsioon on Pythonis väga oluline. See annab teile teada, kuidas installitud moodulit kasutada. Selle kasutamiseks installige moodul, seejärel käivitage terminalis Pythoni tõlk ja osutage teele, mille olete mooduli installinud. Importige moodul ja edastage lõpuks abifunktsioonile mooduli nimi.

Et teada saada, milliseid meetodeid ja atribuute saate kasutada, asendage abifunktsioon funktsiooniga dir.

Funktsioon dir tagastab meetodid ja atribuudid, mida moodul ei toeta kogu dokumentatsiooni. See on kasulik, kui soovite mooduli tegemistest ülevaate saada.

Cleaner Pythoni koodi kirjutamine

Python on väga mitmekesine keel. Nagu iga teise keele puhul, saate aja jooksul paremini kirjutada puhtama Pythoni koodi.

Pythonil on palju sisseehitatud mooduleid ja funktsioone. Mõnel juhul võite kirjutada raskesti loetava koodi, kuna teil puuduvad teadmised teatud funktsiooni olemasolust. Et olla rohkem kursis, peaksite lugema rohkem artikleid parema koodi kirjutamise kohta.