07 Functions 1

image.png Վանաձոր, լուսանկարի հղումը, Հեղինակ՝ Gor Davtyan

Open In Colab (ToDo)

Song reference - ToDo

🎦 Տեսադասեր + լրացուցիչ

ToDo 1. Տեսություն 2025
2. Տեսություն 2023 (ToDo)
3. Գործնական 2025
4. Գործնական 2023 (ToDo)
5. Որոշ տնայինների լուծումներ (ToDo)

Google Forms ToDo

📚 Նյութը

Մոտիվացիոն օրինակ

Պատկերացրեք տանը ահավոր փոքր չայնիկ ունենք՝ մի հոգանոց, լիքը հյուրա եկել մենք պետքա չայերը սարքենք, որնա լինելու մեր մոտեցումը

Հարցնել 1. Սև/կանաչ/մրգային ․․․ 2. Ինչքա՞ն քաղցր 3. Լիմոն քցու՞մ եմ

Հարցնելուց հետո \ Ջուրը դնել եռա \ ․․․ \ և իհարկե, մատուցում ենք սիրով

Մեյլ գրելուց ուղղակի անունն եք փոխում ոչ թե ամենինչը

mard1_tesak = input('սև/կանաչ/մրգային')
mard1_qaxcr = float(input('Ինչքա՞ն քաղցր'))
mard1_limon = bool(input('Լիմոն կուզե՞ք'))

print('ջուրը դրեցի եռա')
print("համապատասխան քանակի քաղցր ավելացնել")
print("լիմոն ավելացնել ըստ ցանկության")
print('մատուցել սիրով')
mard1_tesak = input('սև/կանաչ/մրգային')
mard1_qaxcr = float(input('Ինչքա՞ն քաղցր'))
mard1_limon = bool(input('Լիմոն կուզե՞ք'))


print('ջուրը դնեցի եռա')
print("համապատասխան քանակի քաղցր ավելացնել")
print("լիմոն ավելացնել ըստ ցանկության")
print('մատուցել սիրով')

marda2_tesak = input('սև/կանաչ/մրգային')
marda2_qaxcr = float(input('Ինչքա՞ն քաղցր'))
marda2_limon = bool(input('Լիմոն կուզե՞ք'))

print('ջուրը դնեցի եռա')
print("համապատասխան քանակի քաղցր ավելացնել")
print("լիմոն ավելացնել ըստ ցանկության")
print('մատուցել սիրով')
թեյ_սարքել(tesak, qaxcr, limon):
    սարքել թեյը
    վերադարձնել
թեյ_սարքել("Սև", 2, True)
թեյ_սարքել("Մրգային", 0, False)

եկեք փայթնում տեսնենք ոնց ենք սարքում սենց թեյի ապարատներ և ոչ միայն

Ֆունկցիաներ, սկիզբ

mard1 = input()
print(f'Բարև {mard1}')
print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)

mard2 = input()
print(f'Բարև {mard2}')
print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)

mard3 = input()
print(f'Բարև {mard3}')
print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)

mard4 = input()
print(f'Բարև {mard4}')
print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)
Բարև qwefdbg
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
Բարև dsvfbg
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
Բարև dsfg
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
Բարև dgf
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         

Առանց ոչ մի բան ֆունցկիա

def harcupordz_anel(): # define (սահմանում)
    print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)
mard1 = input()
print(f'Բարև {mard1}')
harcupordz_anel()

mard2 = input()
print(f'Բարև {mard2}')
harcupordz_anel()
Բարև sdasada
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
Բարև dasasd
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         

Արգումենտով ֆունցկիա

help(round)
Help on built-in function round in module builtins:

round(number, ndigits=None)
    Round a number to a given precision in decimal digits.
    
    The return value is an integer if ndigits is omitted or None.  Otherwise
    the return value has the same type as the number.  ndigits may be negative.
print(round(3.5123343, 4))
3.5123
def harcupordz_anel(name):
    print(f'Բարև {name}')
    print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)
name = 1

harcupordz_anel("a")
Բարև a
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
amard1 = input()

harcupordz_anel(mard1)
print(1)
Բարև 32122
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
None
1

Կարանք նույնիսկ սենց անենք՝

def hacupordz_anel():
    anun = input()
    print(f'Բարև {anun}')
    print("""Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         """)
print(anun)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-cdee89ff6ea4> in <cell line: 1>()
----> 1 print(anun)

NameError: name 'anun' is not defined
hacupordz_anel()
1234
Բարև 1234
Ո՞նց ես,
         տնեցիք լա՞վ են,
         էլի՞ են հին տներն եք մնում,
         թութը թա՞փ եք տալիս,
         էս նիհարե՞լ ես հա ոնց-որ,
         բա չե՞ս պսակվում,
         վախտնա է արդեն,
         մենք էլ ենք չէ թոռ ուզում
         
None

Մի քանի արգումենտ ունենա

def hashvel_caxsy(poncikneri_qanak, ponchikneri_gin):
    print(poncikneri_qanak * ponchikneri_gin)
hashvel_caxsy(3, 150)
450
gumar = hashvel_caxsy(3, 150)
print(gumar)
450
None
a = hashvel_caxsy(3, 150)
print(a)

if a > 300:
    print("չենք կարող գնել")
450
None
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [22], in <cell line: 4>()
      1 a = hashvel_caxsy(3, 150)
      2 print(a)
----> 4 if a > 300:
      5     print("չենք կարող գնել")

TypeError: '>' not supported between instances of 'NoneType' and 'int'

Կառուցվածքը

def funkciai_anun(argument1, argument2): # def -> define (սահմանել) բառից
    """Ֆունկցիայի նկարագիր, սրա մասին հետո # կարա սա չլինի
    """
    # արա էս-էս բանը
    return inch_vor_arjeq # կարա սա չլինի

return-ով ֆունկցիաներ

def hashvel_caxsy(poncikneri_qanak, ponchikneri_gin):

    print(poncikneri_qanak * ponchikneri_gin)
unenq = 500

if unenq > hashvel_caxsy(3, 110):
    print("uraa")
330
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [24], in <cell line: 3>()
      1 unenq = 500
----> 3 if unenq > hashvel_caxsy(3, 110):
      4     print("uraa")

TypeError: '>' not supported between instances of 'int' and 'NoneType'

իսկ ինչ եթե ուզում ենք ինչ-որ ձև օգտագործել էդ արժեքը

def hashvel_caxsy(poncikneri_qanak, ponchikneri_gin):
    return poncikneri_qanak * ponchikneri_gin
gin = hashvel_caxsy(3, 110)
print(gin)
330
unenq = 500

caxs = hashvel_caxsy(3, 110)

print(caxs)
if unenq < caxs:
    print('տխրել')
else:
    print('ամ նյամ նյամ')
330
ամ նյամ նյամ

մի քանի արժեքների return

def ponchikneri_calculator(exac_gumar, ponchikneri_qanak, ponchikneri_gin):
    # anhrajesht_gumar = ponchikneri_qanak * ponchikneri_gin
    anhrajesht_gumar = hashvel_caxsy(ponchikneri_qanak, ponchikneri_gin)

    print(f"Ձեզ պետք է {anhrajesht_gumar}դրամ")

    karox_enq_gnel = exac_gumar // ponchikneri_gin

    if exac_gumar < anhrajesht_gumar:
        print(f"Կներեք բայց Ձեր գումարը չի հերիքում, կարող եք գնել {karox_enq_gnel} հատ")
    else:
        print(f"Անուշ արեք, Ձեր մանրն է {exac_gumar - anhrajesht_gumar} դրամ")

    return anhrajesht_gumar, karox_enq_gnel




print(ponchikneri_calculator(1000, 5, 110))
print(type(ponchikneri_calculator(1000, 5, 110)))
# gumar, karanq_arnenq = ponchikneri_calculator(1000, 5, 110)
Ձեզ պետք է 550դրամ
Անուշ արեք, Ձեր մանրն է 450 դրամ
(550, 9)
Ձեզ պետք է 550դրամ
Անուշ արեք, Ձեր մանրն է 450 դրամ
<class 'tuple'>
gumar, karanq_arnenq = ponchikneri_calculator(1000, 5, 110)
Ձեզ պետք է 550դրամ
Անուշ արեք, Ձեր մանրն է 450 դրամ
print(gumar)
print(karanq_arnenq)
print(ponchikneri_calculator(1000, 5, 110))
550
9
Ձեզ պետք է 550դրամ
Անուշ արեք, Ձեր մանրն է 450 դրամ
(550, 9)

returnից հետո ամենինչ անտեսվումա

def panirner_tpel():
    print('պանիր')
    print('պանիր')
    return 'համով պանիր'
    print(509)
    a = 0
    print(a)

a = panirner_tpel()

print(a)
պանիր
պանիր
համով պանիր
round(4.512)
5

Արգումենտների տեսակներ

default արգումենտ

print(1,2, sep=" ")
1 2
def ponchikneri_calculator(exac_gumar, ponchikneri_qanak, ponchikneri_gin=130):
    print(f'պոնչիկի գինն է՝ {ponchikneri_gin}')
    anhrajesht_gumar = ponchikneri_qanak * ponchikneri_gin
    print(f"Ձեզ պետք է {anhrajesht_gumar}դրամ")

    karox_enq_gnel = exac_gumar // ponchikneri_gin

    if exac_gumar < anhrajesht_gumar:
        print(f"Կներեք բայց Ձեր գումարը չի հերիքում, կարող եք գնել {karox_enq_gnel} հատ")
    else:
        print(f"Անուշ արեք, Ձեր մանրն է {exac_gumar - anhrajesht_gumar}դրամ")

    return anhrajesht_gumar, karox_enq_gnel
print(ponchikneri_calculator(1000, 5))
print(ponchikneri_calculator(1000, 5, 150))
պոնչիկի գինն է՝ 130
Ձեզ պետք է 650դրամ
Անուշ արեք, Ձեր մանրն է 350դրամ
(650, 7)
պոնչիկի գինն է՝ 150
Ձեզ պետք է 750դրամ
Անուշ արեք, Ձեր մանրն է 250դրամ
(750, 6)
print(1,2)
print(1,2, sep="---")
1 2
1---2
help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
print(ponchikneri_calculator(1000, 5))
պոնչիկի գինն է՝ 130
Ձեզ պետք է 650դրամ
Անուշ արեք, Ձեր մանրն է 350դրամ
(650, 7)
# ինչ-որ բան հիշացնումա՞
print(1, 3)
print(1, 3, sep="․․․ ․․․ ․․․")
1 3
1․․․ ․․․ ․․․3

Հերթականությունը կարևորա (default-ները պետքա ոչ default-ներից հետո լինեն)

def ponchikneri_calculator(exac_gumar, ponchikneri_gin=110, ponchikneri_qanak):
    print(f'պոնչիկի գինն է՝ {ponchikneri_gin}')
    anhrajesht_gumar = ponchikneri_qanak * ponchikneri_gin
    print(f"Ձեզ պետք է {anhrajesht_gumar}դրամ")

    karox_enq_gnel = exac_gumar // ponchikneri_gin

    if exac_gumar < anhrajesht_gumar:
        print(f"Կներեք բայց Ձեր գումարը չի հերիքում, կարող եք գնել {karox_enq_gnel} հատ")
    else:
        print(f"Անուշ արեք, Ձեր մանրն է {exac_gumar - anhrajesht_gumar}դրամ")

    return anhrajesht_gumar, karox_enq_gnel

keyword, positional arguments

ֆունկցիան կանչելուց կարանք իրան տանք արգումենտները համ ըստ հերթականության, համ անունով

def ponchikneri_calculator(exac_gumar, ponchikneri_qanak, ponchikneri_gin=110):
    print('եղած գումար', exac_gumar)
    print('պոնչիկների քանակ', ponchikneri_qanak)
    print('պոնչիկների գին', ponchikneri_gin)
ponchikneri_calculator(1000, 5, 100) # positional
եղած գումար 1000
պոնչիկների քանակ 5
պոնչիկների գին 100
ponchikneri_calculator(5, 1000, 100)
եղած գումար 5
պոնչիկների քանակ 1000
պոնչիկների գին 100
ponchikneri_calculator(ponchikneri_qanak=5, ponchikneri_gin=100, exac_gumar=1000) # keyword
եղած գումար 1000
պոնչիկների քանակ 5
պոնչիկների գին 100
ponchikneri_calculator(1000, ponchikneri_gin=100, ponchikneri_qanak=5)
եղած գումար 1000
պոնչիկների քանակ 5
պոնչիկների գին 100
ponchikneri_calculator(1000, ponchikneri_gin=100, 5)
  Input In [58]
    ponchikneri_calculator(1000, ponchikneri_gin=100, 5)
                                                       ^
SyntaxError: positional argument follows keyword argument

Հերթականությունը կարևորա (պետքա անունով(keyword) արգումենտը լինի դիրքայիններից(positional) հետո)

Positional only ու keyword only argument-ներ

help(sum)
Help on built-in function sum in module builtins:

sum(iterable, /, start=0)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers
    
    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.
def ponchikneri_calculator(gin, /, qanak): # before /
    print(gin*qanak)

ponchikneri_calculator(120, 3) 
ponchikneri_calculator(120, qanak=3)
ponchikneri_calculator(gin=3, qanak=5)
360
360
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [69], in <cell line: 6>()
      4 ponchikneri_calculator(120, 3) 
      5 ponchikneri_calculator(120, qanak=3)
----> 6 ponchikneri_calculator(gin=3, qanak=5)

TypeError: ponchikneri_calculator() got some positional-only arguments passed as keyword arguments: 'gin'
def ponchiki_calculator(gin, *, qanak): # after *
    print(gin*qanak)

ponchiki_calculator(120, 3)
ponchiki_calculator(qanak=5, gin=3)
15
def kazmel_naxadasautun(bar1, bar2, /, *, miavorich=" "):
    return f"{bar1}{miavorich}{bar2}"

# print(kazmel_naxadasautun("բարև", "հաջող", " - "))
print(kazmel_naxadasautun("բարև", "հաջող", miavorich=" - "))

# print(kazmel_naxadasautun("բարև", bar2="հաջող", miavorich=" - "))
բարև - հաջող
help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
print("a", "b", "c")

Args, kwargs

Լավ նյութ՝ https://realpython.com/python-kwargs-and-args/

*Args

print("a", "b", "c")
a b c

ինչ-որ մեկդ հարցրեք “բայց մի րոպե, մենք printին կարաինք լիքը արգումենտ տաինք ու նորմալ աշխատում էր, կապ չունի մի հատ կտաինք թե 509 հատ, էդ ոնցա՞ լինում

help(print)
Help on built-in function print in module builtins:

print(...)
    print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
    
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file:  a file-like object (stream); defaults to the current sys.stdout.
    sep:   string inserted between values, default a space.
    end:   string appended after the last value, default a newline.
    flush: whether to forcibly flush the stream.
def barevel(mard1, mard2, mard3):
    print(f'Բարև {mard1}')
    print(f'Բարև {mard2}')
    print(f'Բարև {mard3}')
barevel('Հալալ', "Զուլալ", "Արամիկ")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [75], in <cell line: 1>()
----> 1 barevel('Հալալ', "Զուլալ")

TypeError: barevel() missing 1 required positional argument: 'mard3'
# դե կարանք tuple սարքենք ինչ տան, ու կոդը գրենք tuple տրամաբանությանը համապատասխան
def barevel(mardkanc_tuple):
    print(mardkanc_tuple)
    for m in mardkanc_tuple:
        print(f'Բարև {m}')
barevel('Հալալ', "Զուլալ", "Արամիկ", "2232343")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Input In [77], in <cell line: 1>()
----> 1 barevel('Հալալ', "Զուլալ", "Արամիկ", "2232343")

TypeError: barevel() takes 1 positional argument but 4 were given
barevel(('Հալալ', "Զուլալ", "Արամիկ", "2232343"))
('Հալալ', 'Զուլալ', 'Արամիկ', '2232343')
Բարև Հալալ
Բարև Զուլալ
Բարև Արամիկ
Բարև 2232343
print(1,2,3,4)
1 2 3 4

ավելի լավ ընթեռնելի ու հիշողության տեսանկյունից օպտմալ ձև կա,

(կարանք պրինտի օրինակից գուշակենք որ ուրիշ մեթոդ կա, մենք պրինտին ցուցակ չենք չէ՞ տալիս)

def barevel(*mardanc_tuple):
    print(mardanc_tuple)
    for m in mardanc_tuple:
        print(f'Բարև {m}')
barevel('նիֆ-նիֆ', "1")
('նիֆ-նիֆ', '1')
Բարև նիֆ-նիֆ
Բարև 1
barevel('նիֆ-նիֆ', "նաֆ-նաֆ", "նուֆ-նուֆ")
('նիֆ-նիֆ', 'նաֆ-նաֆ', 'նուֆ-նուֆ')
Բարև նիֆ-նիֆ
Բարև նաֆ-նաֆ
Բարև նուֆ-նուֆ

կարանք նաև unpacking operator (*)ը օգտագործենք սենց՝

cucak = ['նիֆ-նիֆ', "նաֆ-նաֆ", "նուֆ-նուֆ"]

print(cucak)
print(cucak[0], cucak[1], cucak[2])
print(*cucak)
['նիֆ-նիֆ', 'նաֆ-նաֆ', 'նուֆ-նուֆ']
նիֆ-նիֆ նաֆ-նաֆ նուֆ-նուֆ
նիֆ-նիֆ նաֆ-նաֆ նուֆ-նուֆ
barevel(*cucak)
('նիֆ-նիֆ', 'նաֆ-նաֆ', 'նուֆ-նուֆ')
Բարև նիֆ-նիֆ
Բարև նաֆ-նաֆ
Բարև նուֆ-նուֆ

**Kwargs

Kwargsը args-ի նմանա, բայց ընդունումա արդեն keyword argument-ներ

def tpel_mardu_infon(**mardik):
    print(mardik)
    for key, value in mardik.items():
        print(key, "=", value)

tpel_mardu_infon(anun="Հենդո", tariq=30, erkir="Դագեստան")
{'anun': 'Հենդո', 'tariq': 30, 'erkir': 'Դագեստան'}
anun = Հենդո
tariq = 30
erkir = Դագեստան
def tpel_mardu_infon(anun, tariq, erkir):
    print(f"Anun =  {anun}")
    print(f"Tariq = {tariq}")
    print(f"Erkir = {erkir}")

mard = {"anun": "Alice", "tariq": 25, "erkir": "New York"}

tpel_mardu_infon(anun = mard["anun"], tariq=mard["tariq"], erkir="New York")

tpel_mardu_infon(**mard)
Anun =  Alice
Tariq = 25
Erkir = New York
Anun =  Alice
Tariq = 25
Erkir = New York

Արգումենտների հերթականություն

def tpel(a, b, *args, d=3, **kwargs):
    print(f"a: {a}")
    print(f"b: {b}")
    print(f"args: {args}")
    print(f"d: {d}")
    print(f"kwargs: {kwargs}")
tpel(1,2,3,4,5,6, e=2, f=3)
a: 1
b: 2
args: (3, 4, 5, 6)
d: 3
kwargs: {'e': 2, 'f': 3}
tpel(1,2, 3,4,5,6, d=4, e=2, f=3)
a: 1
b: 2
args: (3, 4, 5, 6)
d: 4
kwargs: {'e': 2, 'f': 3}
tpel(1,2, 3,4,5,6, d=2, e=3, 3)
  Input In [97]
    tpel(1,2, 3,4,5,6, d=2, e=3, 3)
                                  ^
SyntaxError: positional argument follows keyword argument

հերթականություննա 1. Սովորական positional արգումենտներ 2. *args 3. Սովորական keyword արգումենտներ 4. **kwargs

unpacking , *

cucak = [1, 2, 3, 4, 5, 6]

*skizbinner, naxa_last, last = cucak
skizbinner, naxa_last, *last = cucak

print(skizbinner)
print(naxa_last)
print(last)

skizbinner, *naxa_last, last = cucak


print(skizbinner)
print(naxa_last)
print(last)
1
2
[3, 4, 5, 6]
1
[2, 3, 4, 5]
6

For loops - zip, enumerate

zip

# dolar, evro, dram
qanakner = [1, 3, 50, 2]
arjuetner = [450, 460, 1]

_sum = 0
for i in range(min(len(qanakner), len(arjuetner))):
    print(qanakner[i], arjuetner[i])
    _sum += qanakner[i] * arjuetner[i]

print(_sum)
1 450
3 460
50 1
1880
list(zip(qanakner, arjuetner))

# for i, j in d.items()
[(1, 450), (3, 460), (50, 1)]

qanakner = [1, 3, 50, 2]
arjuetner = [450, 460, 1]

_sum = 0
for i, j in zip(qanakner, arjuetner, strict=True):
    print(i, j)
    _sum += i * j

print(_sum)
1 450
3 460
50 1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Input In [114], in <cell line: 5>()
      2 arjuetner = [450, 460, 1]
      4 _sum = 0
----> 5 for i, j in zip(qanakner, arjuetner, strict=True):
      6     print(i, j)
      7     _sum += i * j

ValueError: zip() argument 2 is shorter than argument 1

enumerate

lst = [1, 3, 4, 0, 0, 2, 4]

for i in range(len(lst)):
    print(f"{i} - {lst[i]}")

print()
for i, j in zip(range(len(lst)), lst):
    print(f"{i} - {j}")

print()
# enumerate(lst) -> zip(range(len(lst)), lst)
for i, j in enumerate(lst):
    print(f"{i} - {j}")
    
print()
for i, j in enumerate(lst, start=1):
    print(f"{i} - {j}")
# enumerate(lst) -> zip(range(start, start + len(lst)), lst)
0 - 1
1 - 3
2 - 4
3 - 0
4 - 0
5 - 2
6 - 4

0 - 1
1 - 3
2 - 4
3 - 0
4 - 0
5 - 2
6 - 4

0 - 1
1 - 3
2 - 4
3 - 0
4 - 0
5 - 2
6 - 4

-3 - 1
-2 - 3
-1 - 4
0 - 0
1 - 0
2 - 2
3 - 4
The Kernel crashed while executing code in the current cell or a previous cell. 

Please review the code in the cell(s) to identify a possible cause of the failure. 

Click <a href='https://aka.ms/vscodeJupyterKernelCrash'>here</a> for more info. 

View Jupyter <a href='command:jupyter.viewOutput'>log</a> for further details.

RECURSIA TODO

🛠️ Գործնական (ToDo)

🏡Տնային

Հիմնական տնային

  1. Profound բաժին 26 (Ֆունկցիաներ) - լրիվ
  2. Profound բաժին 27 (Ֆունկցիաներ 2) - լրիվ
  3. Կարող եք նաև անել տնայիններ Profound-ի միջին մակարդակի դասընթացի համապատասխան բաժնից

Նշումներ

  1. 27.7 խնդրում օգտագործվում ա գաղափար (scopes) որը հաջորդ լեկցիան ենք անցնելու

Լուծումներ

🎲 7

Flag Counter