Det er ikke alltid nok å skrive arbeidskode; du bør prøve å skrive godt strukturert kode som også er lett å forstå. Ren kode vil gjøre det enkelt for deg – og andre – å vedlikeholde programvaren.
Python har mange funksjoner og funksjoner som kan hjelpe deg med å skrive renere kode. Her er noen av de beste.
1. Automatiser ressursstenging med Context Manager
Manuell lukking av ressurser kan være upraktisk når koden din samhandler med mange ressurser. Du kan glemme å lukke en ressurs. Dette gjør at programmet bruker systemressurser ineffektivt, noe som kan føre til en hukommelsestap.
Denne koden åpner en fil, og lukker den deretter manuelt:
fil = åpen('test.txt', 'r')
file_contents = file.read()
file.close()
ord = file_contents.split(' ')
word_count = len (ord)
print (ord_antall)
Du kan automatisere lukkingen av filen ved å bruke en kontekstbehandling. Kontekstadministratorer håndterer ressurser for deg, så du trenger ikke å huske å administrere dem manuelt. Bruke
med uttalelse for å lage en kontekst for å administrere en ressurs:med åpen('test.txt', 'r') som fil:
file_contents = file.read()
ord = file_contents.split(' ')
word_count = len (ord)
print (ord_antall)
Koden i denne blokken kjører innenfor konteksten til filobjektet som åpen returnerer. Python lukker automatisk den filen når koden forlater den konteksten, selv om et unntak oppstår.
2. Skrive renere betingelseserklæringer
Du kan finne deg selv å skrive mye unødvendig kode når du arbeider med if-else uttalelser. Python har ternære operatorer som vil hjelpe deg med å skrive mer kompakte utsagn. Kodeblokken nedenfor viser en normal if-else-setning.
tilstand = ekte
hvis betingelse:
x = 1
ellers:
x = 0
skriv ut (x)
Du kan skrive om denne koden ved å bruke en ternær operator som lar deg skrive betingelsen i en enkelt kodelinje.
tilstand = ekte
x = 1hvis betingelse ellers0
skriv ut (x)
Det er viktig å merke seg at du bør bruke ternære operatorer når du implementerer enkel logikk. I mer kompleks logikk og nestede betingede utsagn kan den ternære operatoren bli vanskelig å forstå.
3. Holde oversikt over elementer med Enumerate-funksjonen
Når du itererer over en Python-liste, kan du få tilgang til indeksen til gjeldende element på to måter. En måte er å bruke den tradisjonelle for loop. Dette fungerer fint, men koden er ikke så ren som den kan være. Det krever også at du initialiserer indeksen manuelt.
biler = ["Bugatti", 'Mercedes', "Toyota"]
indeks = 0
til bil i biler:
print (indeks, bil)
indeks += 1
Den andre måten er å bruke Python innebygde enumerate-funksjonen. Dette vil tillate deg å få tilgang til indeksen og den tilsvarende verdien i listen under looping.
biler = ["Bugatti", 'Mercedes', "Toyota"]
til indeks, bil i oppgi (biler):
print (indeks, bil)
Du trenger nå ikke holde styr på indeksen manuelt.
4. Sløyfe over flere lister med zip-funksjonen
Du kan også bruke enumerate-funksjonen til å gå over flere lister samtidig. Få indeksen til den første listen, og bruk den for å få tilgang til de tilsvarende verdiene i andre lister.
engelske_navn = ['mat', 'vann', 'bil']
spanske_navn = ['alimento', 'agua', 'auto']
til indeks, navn i enumerate (engelske_navn):
spansk = spanske_navn [indeks]
skrive ut (f' {Navn} på spansk er {spansk}')
Dette fungerer fint, men du må skrive mye unødvendig kode hvis antallet lister øker. For å skrive renere kode kan du bruke zip-funksjonen og sende navnene på listen til den.
engelske_navn = ['mat', 'vann', 'bil']
spanske_navn = ['alimento', 'agua', 'auto']
til engelsk spansk i zip (engelske_navn, spanske_navn):
skrive ut(f' {Engelsk} på spansk er {spansk}')
Du bør fortsette å bruke enumerate-funksjonen for å sløyfe over en enkelt liste. Men hvis du går over flere lister sammen, bør du vurdere å bruke zip-funksjonen.
Når du legger inn sensitiv informasjon, skal inndata ikke være synlig som ren tekst på skjermen. Den vanlige måten å ta innspill på i Python er å bruke inndatafunksjonen:
brukernavn = input('Brukernavn:')
passord = input('Passord: ')
skrive ut('Logger inn...')
Inntastingsfunksjonen gjør imidlertid passordet synlig som ren tekst på skjermen under skriving. For å sikre at passordet ikke vises på skjermen, bør du bruke getpass-funksjonen i stedet:
fra få pass import få pass
brukernavn = input('Brukernavn:')
passord = getpass('Passord:')
skrive ut('Logger inn...')
Getpass-modulen er en del av Pythons standardbibliotek, så du trenger ikke å installere den.
6. Gjøre store tall lesbare ved å bruke understrekingsplassholdere
Når du har å gjøre med store tall i programmet ditt, kan de være svært vanskelige å lese på et øyeblikk. Å tilordne feil tall til variabler fører til et feil program og å oppdage denne feilen kan være svært vanskelig.
num1 = 10000000000
nummer2 = 100000000
totalt = tall1 + tall2
print (totalt)
Du kan skrive om koden ovenfor ved å bruke understreking for å skille grupper på tusenvis, en vanlig måte å gjøre store tall mer lesbare.
num1 = 10_000_000_000
nummer2 = 100_000_000
totalt = tall1 + tall2
skrive ut(f'{Total:,}')
F-strengen i utskriftsfunksjonen skiller utdataene ved hjelp av tusenskilletegn.
7. Bruke hjelpefunksjonen for å lære mer om en modul
Hjelpefunksjonen er veldig viktig i Python. Den vil fortelle deg hvordan du bruker en modul du har installert. For å bruke den, installer modulen, start deretter Python-tolken i en terminal og pek på banen du har installert modulen. Importer modulen og send til slutt navnet på modulen til hjelpefunksjonen.
For å finne ut hvilke metoder og attributter du kan bruke, bytt ut hjelpefunksjonen med dir-funksjonen.
Dir-funksjonen returnerer metodene og attributtene modulen støtter ikke hele dokumentasjonen. Dette er nyttig når du vil ha et glimt av hva modulen gjør.
Skrive renere Python-kode
Python er et veldig mangfoldig språk. Som med alle andre språk, vil du bli flinkere til å skrive renere Python-kode over tid.
Python har mange innebygde moduler og funksjoner. I noen tilfeller kan du skrive vanskelig å lese kode fordi du mangler kunnskap om eksistensen av en bestemt funksjon. For å være sikker på at du er mer informert, bør du lese flere artikler om hvordan du skriver bedre kode.