fb pixel

Python-ի ներածություն

  • Profound Academy

    • Status
      • 1
        Մուտք և Ելք
      • 2
        Փոփոխականներ և ամբողջ թվեր
      • 3
        Պայմաններ
      • 4
        Ներդրված պայմաններ
      • 5
        Փոփոխականներ և տիպեր
      • 6
        Տողեր
      • 7
        Զանգվածներ
      • 8
        For ցիկլեր
      • 9
        While ցիկլեր
      • 10
        continue, break, while...else
      • 11
        Տողերի և զանգվածների հետ աշխատանք
      • 12
        Ներդրված ցիկլեր
      • 13
        List Comprehension
      • 14
        Tuple-ներ և Set-եր
      • 15
        dict
      • 16
        Ֆունկցիաներ
      • 17
        Ֆունկցիաներ 2
      • 18
        Lambda and higher-order functions
      • 19
        Files

  • Ֆունկցիաներ ֆունկցիաների ներսում

    Python-ը շատ ճկուն լեզու է և թույլ է տալիս ստեղծել ֆունկցիաներ կոդի գրեթե ցանկացած մասում: Կարելի է նոր ֆունկցիա սահմանել if բլոկի, for ցիկլի կամ մեկ այլ ֆունկցիայի ներսում.
    def process(name1, name2, name3):
    	def greet(name):
    		if len(name) < 5:
    			print(f'Hi, {name}')
    		else:
    			print('The name is too long')
    	greet(name1)
    	greet(name2)
    	greet(name3)
    
    process('Anna', 'Bob', 'Daniel')
    # Hi, Anna
    # Hi, Bob
    # The name is too long
    Այստեղ մենք հայտարարել ենք greet() նոր ֆունկցիա, որը գործում է որպես գործիք՝ չկրկնելու բոլոր 3 անունների համար if, else պայմանները process() ֆունկցիայում:
    Նկատի ունեցեք, որ ներդրված ֆունկցիաներին հասանելի են բոլոր փոփոխականները, որոնք սահմանված են իրենց վերևում: Այսպիսով, մեր օրինակում greet() ֆունկցիան հասանելիություն ունի name1, name2 և name3-ին:

    Առաջադրանք

    Փոփոխեք ֆունկցիան այնպես, որ այն վերադարձնի իրեն փոխանցված թվերի բոլոր բաժանարարների ցանկը: Ավելացրեք ներդրված ֆունկցիա, որը վերադարձնում է մեկ թվի բաժանարարների ցանկը:
    def divisors(*numbers):
    	...
    
    print(divisors(4, 5))         # [1, 2, 4, 1, 5]
    print(divisors(3))            # [1, 3]
    print(divisors(6, 8))         # [1, 2, 3, 6, 1, 2, 4, 8]
     
    To check your solution you need to sign in
    Sign in to continue