Returnera flera värden från en Python -funktion

Return Multiple Values From Python Function



Funktionen används i alla programmeringsspråk för att köra ett specifikt kodblock flera gånger när det krävs och organisera koden korrekt. Ibland kräver detta att man läser returvärdet från funktionen för programmeringsändamål. Funktionens returvärde lagras i en variabel. Python -funktioner kan returnera både enkla och flera värden. Denna handledning visar hur flera värden kan returneras från Python -funktioner med flera variabler, objekt, tupler, listor och ordböcker.

Exempel 1: Returnera flera värden från funktionen med hjälp av flera variabler

Om du bara vill returnera några få variabler från Python -funktionen, är det bättre att definiera dessa variabler för att lagra flera returvärden från flera variabler, objekt, tupler, listor och ordböcker som använder funktionen. I det här exemplet deklareras tre variabler i skriptet för att lagra tre returvärden. De multiVarFunc () funktionen används för att ta tre ingångsvärden och returnera värdena till variablerna dept_name, total_std och total_fac .







#!/usr/bin/env python3

# Definiera funktion för att returnera flera variabler
defmultiVarFunc():
# Ta en strängdata
avd= inmatning('Ange avdelningsnamn:')
# Ta en numerisk data
stdnum= int(inmatning('Ange antalet studenter totalt:'))
# Ta en numerisk data
facnum= int(inmatning('Ange antalet fakulteter totalt:'))
# Returnera flera variabler
lämna tillbakaavd,stdnum,facnum;

# Anropa funktionen och lagra returvärdena i tre variabler
avd_namn,total_std,total_fac=multiVarFunc()
# Skriv ut den formaterade utmatningen av returvärdena
skriva ut(' nAvdelning:%s nTotalt antal studenter:%d nTotalt antal fakulteter:%d '%(avd_namn,total_std,
total_fac))

Produktion



Tre värden tas som ingångar och utgångsvärdena skrivs ut efter formatering.







Exempel 2: Returnera flera värden från funktionen med hjälp av tupeln

Följande skript visar hur du använder en tupel för att returnera flera värden från en funktion. Om du vill returnera många värden från funktionen är detta ett bättre alternativ. Här, tupleFunc () funktionen används för att ta fyra inmatningsvärden från användaren och returnera värdena som en tupel till den som ringer. Returvärdena kommer att lagras i en tupelvariabel som heter tupleVar och värdena kommer att skrivas ut senare.

#!/usr/bin/env python3

# Definiera funktion för att returnera flera variabler
deftupleFunc():
# Ta en strängdata
stdID= inmatning('Ange student -id:')
# Ta en strängdata
stdName= inmatning('Ange studentens namn:')
# Ta ett heltal data
stdBatch= int(inmatning('Ange batchnummer:'))
# Ta en flottördata
stdCGPA= flyta(inmatning('Ange CGPA:'))
# Returnera flera variabler som en tupel
lämna tillbaka (stdID,stdName,stdBatch,stdCGPA)

# Ring funktionen och lagra returvärdena i en tupel
tupleVar=tupleFunc()
# Skriv ut den formaterade utdata från tupeln
skriva ut(' nID:%s nNamn:%s nParti:%d nCGPA: %4.2f '%(tupleVar[0],tupleVar[1],tupleVar[2],
tupleVar[3]))

Produktion



De fyra ingångsvärdena tas som input och formaterade utdata skrivs sedan ut.

Exempel 3: Returnera flera värden från funktionen med hjälp av listan

Följande skript visar hur du använder en lista för att returnera flera värden från en funktion. Detta är ett annat alternativ för att returnera många värden från en funktion. De listFunc() funktion används i skriptet för att ta två heltal från användaren och beräkna addition, subtraktion, multiplikation och division av dessa nummer. Därefter returneras dessa fyra resultat som en lista från funktionen. Listvariabeln, listVar används för att lagra returvärdena och skriva ut värdena.

#!/usr/bin/env python3

# Definiera funktion för att returnera flera värden som en lista
deflistFunc():
# Ta en numerisk data
nummer ett= flyta(inmatning('Ange valfritt nummer:'))
# Ta en numerisk data
nummer 2= flyta(inmatning('Ange valfritt nummer:'))

tillägg=nummer1 + nummer2
subtraktion=nummer1 - nummer2
multiplikation=nummer1 * nummer2
division=nummer1 / nummer2

# Returnera flera variabler som en lista
lämna tillbaka [nummer ett,nummer 2,tillägg,subtraktion,multiplikation,division]

# Ring funktionen och lagra returvärdena i en tupel
listVar=listFunc()
# Skriv ut den formaterade utdata från listdata
skriva ut(' n%5.2f + %5.2f = %5.2f '%(listVar[0],listVar[1],listVar[2]))
skriva ut(' %5.2f - %5.2f = %5.2f'%(listVar[0],listVar[1],listVar[3]))
skriva ut(' %5.2f x %5.2f = %5.2f'%(listVar[0],listVar[1],listVar[4]))
skriva ut(' %5.2f / %5.2f = %5.2f'%(listVar[0],listVar[1],listVar[5]))

Produktion

Efter att ha tagit två nummer, 67 och 23.7, kommer följande utdata att visas.

Exempel 4: Returnera flera värden från funktionen med hjälp av ordlistan

Följande skript visar hur du använder en ordlista för att returnera flera värden från en funktion. Detta är ett annat alternativ för att returnera många värden från en funktion. En variabel med variabler i ordboken heter dictVar deklareras inuti funktionen. Tre värden tilldelas variabeln och returnerar dicVar till den som ringer. Därefter skrivs ordlistans värden ut.

#!/usr/bin/env python3
# Definiera funktion för att returnera flera värden som en ordlista
defdictFunc():
# Deklarera en ordboksvariabel
dictVar= dict();
# Tilldela några värden
dictVar['namn'] = 'Kelli Ali'
dictVar['ålder'] = 46
dictVar['yrke'] = 'Sångare'
# Returnera ordlistan som returvärden
lämna tillbakadictVar

# Anropa funktionen och lagra returvärdena i en ordboksvariabel
dictValues=dictFunc()
# Skriv ut ordlistans värden
skriva ut('Ordlistans värden är: n',dictValues)

Produktion

Följande utdata visas efter att manuset har körts.

Exempel 5: Returnera flera värden från funktionen med hjälp av objekt

En klass används med en funktion för att returnera flera värden som ett objekt från funktionen i följande skript. När objFunc () funktionsanrop initierar funktionen objektet från Anställda class och returnerar objektet till den som ringer. Därefter skrivs objektets egenskapsvärden ut.

#!/usr/bin/env python3

# Definiera klassen för att initialisera objektet
klassAnställda:
def __i det__(själv):
själv.namn = 'Mosarof Karim'
själv.posta = 'Chef'
själv.lön = 50 000

# Definiera funktionen för att returnera värden som ett objekt
defobjFunc():
lämna tillbakaAnställda()

# Ring funktionen för att ställa in objektvariabeln
objVar=objFunc()

# Skriv ut den formaterade utmatningen
skriva ut(' nAnställd Namn:',objVar.namn,' n','Posta:',objVar.posta,' n','Lön:',
objVar.lön)

Produktion

Följande utdata visas efter att manuset har körts.

Slutsats

Flera returvärden från en funktion kan användas i skriptet för olika ändamål. Denna handledning visade några av de olika sätten att returnera flera värden från en funktion i Python.

Se författarens video: här