Piton

Python prinos vs. Povratak

Python prinos vs. Povratak

Python je široko korišten opći programski jezik novijeg doba. Prinos je ugrađena ključna riječ Python koja se koristi za stvaranje funkcija generatora. Njegova funkcija generira niz rezultata. Pauzira izvršavanje programa, vraća vrijednost rezultata pozivatelju i nastavlja izvršenje od zadnjeg prinosa. Osim toga, funkcija yield generira niz rezultata u obliku generatorskog objekta. S druge strane, return je također ugrađena ključna riječ u Pythonu koja prekida funkciju i šalje vrijednost natrag pozivaču.

Ovaj članak s primjerima opisuje razlike između prinosa i prinosa.

Razlike između prinosa i povrata

Za početak postoje mnoge vidljive razlike između prinosa i prinosa. Prvo razgovarajmo o čemu se radi.

Povratak Prinos
Izraz return pozivatelju vraća samo jednu vrijednost. Izjava yield može pozivatelju vratiti niz rezultata u obliku generatorskog objekta.
Povratak izlazi iz funkcije, a u slučaju petlje odbacuje petlju. To je posljednja izjava koja se postavlja unutar funkcije. Ne ukida lokalne varijable funkcije. Obustavlja izvršenje i vraća vrijednost natrag pozivatelju i nastavlja izvršenje programa iz zadnjeg izraza prinosa.
Logično, funkcija bi trebala imati samo izraz return. Unutar funkcije može biti više od jednog izraza prinosa.
Izjava o povratu može se pokrenuti samo jednom. Izjava o prinosu može se izvoditi više puta.
Naredba return smještena je unutar redovite Python funkcije. Izjava yield pretvara redovnu funkciju u funkciju generatora.

Primjer1: Povratak vs. Prinos

Pogledajmo sada razliku između naredbi return i yield kroz primjere. U donjem primjeru programa koristili smo više naredbi za povratak. Možete primijetiti da će se izvršavanje programa završiti nakon prve naredbe za povratak, a ostatak koda neće biti izvršen.

#a program za prikaz rada povratne izjave

#definiranje varijable broja

broj1 = 10
#definiranje varijable broja

broj2 = 20
#kreiranje funkcije za izvođenje aritmetičkih operacija

def mathOP ():
# izračunavanje vrijednosti zbroja

povratak num1 + num2
# izračunavanje razlike

povratak num1-num2
# izračunavanje vrijednosti množenja

povratak num1 * num2
# izračunavanje vrijednosti podjele

povratak num1 / num2
#pozivanje funkcije

ispis (mathOP ())

Izlaz

U izlazu se može vidjeti da funkcija vraća samo prvu vrijednost, a program se prekida.

Da bismo izvršili sličan zadatak s višestrukim naredbama return, moramo stvoriti četiri različite funkcije za svaku vrstu aritmetičke operacije.

#a program za prikaz rada povratne izjave

#definiranje varijable broja

broj1 = 10
#definiranje varijable broja

broj2 = 20
#kreiranje funkcije za izvođenje aritmetičkih operacija

def sumOP ():
# izračunavanje vrijednosti zbroja

povratak num1 + num2
def oduzmiOP ():
# izračunavanje razlike

povratak num1-num2
def multiplicationOP ():
# izračunavanje vrijednosti množenja

povratak num1 * num2
def divisionOP ():
# izračunavanje vrijednosti podjele

povratak num1 / num2
#pozivanje funkcije zbroja

print ("Vrijednost zbroja je:", sumOP ())
#pozivanje funkcije oduzimanja

print ("Vrijednost razlike je:", oduzmiOP ())
#pozivanje funkcije množenja

print ("Vrijednost množenja je:", multiplicationOP ())
#pozivanje funkcije dijeljenja

print ("Vrijednost podjele je:", divisionOP ())

Izlaz

Te višestruke aritmetičke operacije možemo izvoditi unutar jedne funkcije generatora s više izjava o prinosu.

#a program za prikaz rada izvještaja o prinosu

#definiranje varijable broja

broj1 = 10
#definiranje varijable broja

broj2 = 20
#kreiranje funkcije za izvođenje aritmetičkih operacija

def mathOP ():
# izračunavanje vrijednosti zbroja

prinos num1 + num2
# izračunavanje razlike

prinos num1-num2
# izračunavanje vrijednosti množenja

prinos num1 * num2
# izračunavanje vrijednosti podjele

prinos num1 / num2
#pozivanje funkcije

print ("Ispis vrijednosti:")
#use for petlja za pristup vrijednostima iz objekta generatora

za i u mathOP ():
ispis (i)

Izlaz

Primjer2: Povratak vs. Prinos

Pogledajmo još jedan primjer izjava o povratu i prinosu. U danom primjeru imamo popis brojeva koji se prosljeđuje funkciji mod () kao argument. Izvodimo operaciju modula na svakom broju popisa i provjeravamo koji su to brojevi kada se podijeli s 10, vraća nulu kao ostatak vrijednosti.

Prvo, implementirajmo ovaj primjer u našu Python skriptu s return naredbom.

#definiranje popisa brojeva

myList = [10,20,25,30,35,40,50]
#definiranje funkcije za izvođenje operacije modula

def mod (moj popis):
jer sam na svom popisu:
#izvođenje modula

ako (i% 10 == 0):
povratak i
ispis (mod (myList))

Izlaz

Izraz return samo pozivatelju vraća prvi broj i prekida izvršavanje funkcije.

Sad, implementirajmo isti primjer u našu Python skriptu s naredbom yield.

#definiranje popisa brojeva

myList = [10,20,25,30,35,40,50]
#definiranje funkcije za izvođenje operacije modula

def mod (moj popis):
jer sam na svom popisu:
#izvođenje modula

ako (i% 10 == 0):
#izjava o prinosu

prinos i
za i u modu (myList):
ispis (i)

Izlaz

Zaključak

Zaključno, povrat i prinos dvije su ugrađene Python ključne riječi ili izjave. Naredba return koristi se za vraćanje vrijednosti pozivatelju iz funkcije i završava izvršavanje programa, dok naredba yield generira objekt i pozivatelju može vratiti više vrijednosti bez prekida izvršenja programa. Ovaj članak s primjerima navodi sve vidljive razlike između izjava o prinosu i prinosu.

Kako preuzeti i igrati Sid Meier's Civilization VI na Linuxu
Uvod u igru Civilization 6 moderan je pogled na klasični koncept predstavljen u seriji igara Age of Empires. Ideja je bila prilično jednostavna; započ...
Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...
Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...