ho w to pass a v ariable n u mber of arg u ments to a f u
play

Ho w to pass a v ariable n u mber of arg u ments to a f u nction ? P - PowerPoint PPT Presentation

Ho w to pass a v ariable n u mber of arg u ments to a f u nction ? P R AC TIC IN G C OD IN G IN TE R VIE W QU E STION S IN P YTH ON Kirill Smirno v Data Science Cons u ltant , Altran Arg u ment t y pes There are t w o t y pes of arg u ments :


  1. Ho w to pass a v ariable n u mber of arg u ments to a f u nction ? P R AC TIC IN G C OD IN G IN TE R VIE W QU E STION S IN P YTH ON Kirill Smirno v Data Science Cons u ltant , Altran

  2. Arg u ment t y pes There are t w o t y pes of arg u ments : PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  3. Arg u ment t y pes There are t w o t y pes of arg u ments : positional arg u ments PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  4. Arg u ment t y pes There are t w o t y pes of arg u ments : positional arg u ments ke yw ord arg u ments PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  5. Arg u ment t y pes There are t w o t y pes of arg u ments : positional arg u ments ke yw ord arg u ments PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  6. Positional arg u ments def func_with_pos_args(arg1, arg2): pass def multiply(x, y): return x * y multiply(2, 3) 6 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  7. * args def func_with_var_pos_args(*args): pass func_with_var_pos_args(1, 2, 'hello') PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  8. * args def func_with_var_pos_args(*args): print(args) func_with_var_pos_args(1, 2, 'hello') (1, 2, 'hello') PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  9. * args def func_with_var_pos_args(*args): for arg in args: print(arg) func_with_var_pos_args(1, 2, 'hello') 1 2 'hello' PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  10. Redefining m u ltipl y() def multiply(*args): multiply(1, 2, 3): result = 1 for arg in args: 6 result = result * arg return result multiply(1, 2, 3, 4) 24 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  11. Redefining m u ltipl y() def multiply(*nums): multiply(1, 2, 3): result = 1 for num in nums: 6 result = result * num return result multiply(1, 2, 3, 4) 24 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  12. Another u se of single asterisk * def multiply(num1, num2, num3): return num1 * num2 * num3 multiply(1, 2, 3) 6 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  13. Another u se of single asterisk * def multiply(num1, num2, num3): nums = (2, 3, 4) return num1 * num2 * num3 multiply(*nums) 24 nums = [2, 3] multiply(*nums, 4) 24 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  14. Another u se of single asterisk * def multiply(*args): result = 1 for arg in args: result = result * num return result nums = (2, 3, 4, 5) multiply(*nums) 120 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  15. Arg u ment t y pes There are t w o t y pes of arg u ments : positional arg u ments ke yw ord arg u ments PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  16. Ke yw ord arg u ments def func_with_kwargs(arg1=1, arg2=2): def multiply(x=1, y=2): print(str(x) + ' : ' + str(y)) multiply(2, 3) 2 : 3 multiply() 1 : 2 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  17. Ke yw ord arg u ments def func_with_kwargs(arg1=1, arg2=2): def multiply(x=1, y=2): print(str(x) + " : " + str(y)) multiply(y=5, x=3) 3 : 5 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  18. ** k w args k w args - ke yw ord arg u ments def func_with_var_kwargs(**kwargs): print(kwargs) func_with_var_kwargs(arg1=1, arg2=2, arg3=3) {arg1: 1, arg2: 2, arg3: 3} func_with_var_kwargs(1, arg2=2, arg3=3) TypeError PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  19. Redefining m u ltipl y() def multiply_kwargs(**kwargs): result = 1 for (key, value) in kwargs.items(): print(key + ' = ' + str(value)) result = result * value return result def multiply(*args): result = 1 for arg in args: result = result * arg return result PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  20. Calling m u ltipl y_ k w args () multiply_kwargs(num1=1, num2=2, num3=3, num4=4) num1 = 1 num2 = 2 num3 = 3 num4 = 4 24 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  21. Another u se of do u ble asterisk ** def multiply(num1=1, num2=2, num3=3): print('num1 = ' + str(num1)) print('num2 = ' + str(num2)) print('num3 = ' + str(num3)) return num1 * num2 * num3 multiply() num1 = 1 num2 = 2 num3 = 3 6 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  22. Another u se of do u ble asterisk ** def multiply(num1=1, num2=2, num3=3): nums = {'num1': 10, 'num2': 20, 'num3': 30 print('num1 = ' + str(num1)) print('num2 = ' + str(num2)) multiply(**nums) print('num3 = ' + str(num3)) return num1 * num2 * num3 num1 = 10 num2 = 20 num3 = 30 6000 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  23. Another u se of do u ble asterisk ** def multiply(num1=1, num2=2, num3=3): nums = {'num1': 10, 'num3': 30} print('num1 = ' + str(num1)) print('num2 = ' + str(num2)) multiply(**nums) print('num3 = ' + str(num3)) return num1 * num2 * num3 num1 = 10 num2 = 2 num3 = 30 600 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  24. Another u se of do u ble asterisk ** def multiply(num1=1, num2=2, num3=3): nums = {'NUM10': 1, 'num2': 2, 'num3': 3} print('num1 = ' + str(num1)) print('num2 = ' + str(num2)) multiply(**nums) print('num3 = ' + str(num3)) return num1 * num2 * num3 TypeError PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  25. Another u se of do u ble asterisk ** def multiply_kwargs(**kwargs): nums = { result = 1 'num1': 2, 'num2': 3, for (key, value) in kwargs.items(): 'num3': 4, 'num4': 5 print(key + ' = ' + str(value)) } result = result * value return result multiply_kwargs(**nums) num1 = 2 num2 = 3 num3 = 4 num4 = 5 120 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  26. Arg u ment order def func( ): PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  27. Arg u ment order def func(arg1, arg2, ): arg1 , arg2 - positional arg u ments PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  28. Arg u ment order def func(arg1, arg2, *args, ): arg1 , arg2 - positional arg u ments *args - positional arg u ments of v ariable si z e PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  29. Arg u ment order def func(arg1, arg2, *args, kwarg1, kwarg2, ): arg1 , arg2 - positional arg u ments *args - positional arg u ments of v ariable si z e kwarg1 , kwarg2 - ke yw ord arg u ments PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  30. Arg u ment order def func(arg1, arg2, *args, kwarg1, kwarg2, **kwargs): arg1 , arg2 - positional arg u ments *args - positional arg u ments of v ariable si z e kwarg1 , kwarg2 - ke yw ord arg u ments **kwargs - ke yw ord arg u ments of v ariable si z e def func(arg1, arg2, *args): def func(arg1, arg2, **kwargs): def func(*args, **kwargs): PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  31. Let ' s practice ! P R AC TIC IN G C OD IN G IN TE R VIE W QU E STION S IN P YTH ON

  32. What is a lambda e x pression ? P R AC TIC IN G C OD IN G IN TE R VIE W QU E STION S IN P YTH ON Kirill Smirno v Data Science Cons u ltant , Altran

  33. Definition lambda e x pression / f u nction - is a short f u nction ha v ing the follo w ing s y nta x: lambda arg1, arg2, ...: expression(arg1, arg2, ...) PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  34. Definition lambda e x pression / f u nction - is a short f u nction ha v ing the follo w ing s y nta x: lambda PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  35. Definition lambda e x pression / f u nction - is a short f u nction ha v ing the follo w ing s y nta x: lambda arg1, arg2, ...: PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  36. Definition lambda e x pression / f u nction - is a short f u nction ha v ing the follo w ing s y nta x: lambda arg1, arg2, ...: expression(arg1, arg2, ...) lambda x: x**2 squared = lambda x: x**2 squared(4) 16 4 → x → x**2 → 16 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  37. Definition lambda e x pression / f u nction - is a short f u nction ha v ing the follo w ing s y nta x: lambda arg1, arg2, ...: expression(arg1, arg2, ...) power = lambda x, y: x**y power(2, 3) 8 2, 3 → x, y → x**y → 8 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  38. Missing arg u ment power = lambda x, y: x**y power(2) TypeError PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  39. Comparison to normal f u nction definition squared_lambda = lambda x: x**2 def squared_normal(x): return x**2 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  40. Comparison to normal f u nction definition lambda def PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  41. Comparison to normal f u nction definition squared_lambda = lambda def squared_normal PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  42. Comparison to normal f u nction definition squared_lambda = lambda x: def squared_normal(x): PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  43. Comparison to normal f u nction definition squared_lambda = lambda x: x**2 squared_lambda(3) def squared_normal(x): 9 return x**2 squared_normal(3) 9 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

  44. Passing lambda f u nction as an arg u ment def function_with_callback(num, callback_function): return callback(num) callback_function(arg) - a f u nction w ith one arg u ment def squared_normal(x): return x**2 function_with_callback(2, squared_normal) 4 PRACTICING CODING INTERVIEW QUESTIONS IN PYTHON

Recommend


More recommend