title
Full Python Programming Course | Python Tutorial for Beginners | Learn Python

description
Python is one of top 5 programming languages today. If you want to pursue a career, this language is a must for you.This course has been created for beginners. βœ” Contents βœ” πŸ’» (0:01:00) 0 - Course Introduction πŸ’» (0:02:29) 1 - Introduction to Python (For Absolute Beginners) πŸ’» (0:10:41) 2 - How to Install Python 3 on Windows 10 πŸ’» (0:16:19) 3 - Basic Math, Mathematical Operators and Python Expressions πŸ’» (0:28:40) 4 - Python Variables and Types πŸ’» (0:40:37) 5 - Python print() and input() Function πŸ’» (0:53:05) 6 - Python Built-in Functions and Built-in Module πŸ’» (1:00:10) 7 - Creating and Executing your First Python Script (Run .py file) πŸ’» (1:12:36) 8 - Install PyCharm ( Python IDE ) on Windows 10 + First Project πŸ’» (1:20:36) 9 - Python Strings and Comments πŸ’» (1:35:14) 10 - Boolean, Comparison Operators and Logical Operators in Python πŸ’» (1:46:08) 11 - Python IF ELSE Statements πŸ’» (1:54:53) 12 - Python IF...ELIF...ELSE Statements + nested IF statements πŸ’» (2:03:41) 13 - Python Lists πŸ’» (2:13:37) 14 - Python Tuples πŸ’» (2:20:22) 15 - Python Sets πŸ’» (2:33:54) 16 - Python Dictionary πŸ’» (2:42:59) 17 - Python Slice and Negative index πŸ’» (2:53:44) 18 - Python while Loop πŸ’» (3:03:50) 19 - Python for Loop πŸ’» (3:11:43) 20 - Python break, continue statement πŸ’» (3:18:28) 21 - Python Functions πŸ’» (3:30:47) 22 - Default Arguments, *args and **kwargs (Variable-length Arguments) πŸ’» (3:38:27) 23 - Introduction to Object-Oriented Programming (OOP) πŸ’» (3:48:24) 24 - Classes and Objects in Python (OOP) πŸ’» (3:58:23) 25 - Python __init__ and self in class πŸ’» (4:10:18) 26 - Is it possible to define multiple constructors in Python? πŸ’» (4:18:14) 27 - Python Encapsulation πŸ’» (4:29:39) 28 - Private methods in Python πŸ’» (4:35:48) 29 - Python Inheritance πŸ’» (4:50:47) 30 - How To Create Modules in Python 3 πŸ’» (5:03:10) 31 - Python Multiple Inheritance πŸ’» (5:08:38) 32 - Python super() πŸ’» (5:16:15) 33 - Python Composition πŸ’» (5:21:51) 34 - Python Aggregation + Difference in Aggregation and Composition πŸ’» (5:28:54) 35 - Python Abstract Classes πŸ’» (5:37:16) 36 - Python Exception handling + Python Try Except πŸ’» (5:52:06) 37 - Try Except Else Finally (Python Exception handling) πŸ’» (5:57:47) 38 - Raising Exceptions In Python πŸ’» (6:03:50) 39 - Raising Custom Exceptions (Writing and Using Custom Exceptions) πŸ’» (6:08:30) 40 - Idea behind : if __name__ == "__main__" πŸ’» (6:15:38) 41 - Create a Text File and Write in It Using Python πŸ’» (6:28:50) 42 - Reading Files in Python πŸ’» (6:40:13) 43 - Working With JSON Data in Python πŸ’» (6:52:00) 44 - Python Iterators πŸ’» (7:06:19) 45 - Python Generators πŸ’» (7:22:13) 46 - Command Line Arguments in Python with argparse πŸ’» (7:40:24) 47 - Lambda, filter, reduce and map πŸ’» (7:58:54) 48 - Python Closures + nested functions πŸ’» (8:12:37) 49 - Python Decorators πŸ’» (8:32:25) 50 - Python Operator Overloading πŸ’» (8:49:06) 51 - An Introduction to Python Debugger (pdb) πŸ’» (9:10:00) 52 - How to use PyCharm to debug Python code πŸ’» (9:18:16) 53 - How to use Pip and PyPI for managing Python packages πŸ’» (9:25:55) 54 - How to Install Pip packages using PyCharm πŸ’» (9:30:51) 55 - Global, Local and Nonlocal variables in Python #Python, #MachineLearning, #WebDevelopment Feel the real power of Python and programming! This is a Python tutorial for beginners to learn Python programming from scratch. The course offers you a unique approach of learning how to code by solving real world problems. Throughout the course we will be understanding how to identify and formulate the problems, what is the key to a great app, we will learn how to efficiently adopt the problem for the computer and the most important that you will be writing a lot of code! The course is structured in a way that lectures are like labs where we study the material, do the quizzes, write programs and test them! The most important that you will be involved into work a lot in order to get the best experience! Learn Python at easy to understand steps. β˜…β˜…β˜…Top Online Courses From ProgrammingKnowledge β˜…β˜…β˜… Python Programming Course ➑️ http://bit.ly/2vsuMaS ⚫️ http://bit.ly/2GOaeQB Java Programming Course ➑️ http://bit.ly/2GEfQMf ⚫️ http://bit.ly/2Vvjy4a Bash Shell Scripting Course ➑️ http://bit.ly/2DBVF0C ⚫️ http://bit.ly/2UM06vF Linux Command Line Tutorials ➑️ http://bit.ly/2IXuil0 ⚫️ http://bit.ly/2IXukt8 C Programming Course ➑️ http://bit.ly/2GQCiD1 ⚫️ http://bit.ly/2ZGN6ej C++ Programming Course ➑️ http://bit.ly/2V4oEVJ ⚫️ http://bit.ly/2XMvqMs PHP Programming Course ➑️ http://bit.ly/2XP71WH ⚫️ http://bit.ly/2vs3od6 Android Development Course ➑️ http://bit.ly/2UHih5H ⚫️ http://bit.ly/2IMhVci β˜…β˜…β˜… Follow β˜…β˜…β˜… My Website - http://www.codebind.com DISCLAIMER: This video and description contains affiliate links, which means that if you click on one of the product links, I’ll receive a small commission. This help support the channel and allows us to continue to make videos like this. Thank you for the support!

detail
{'title': 'Full Python Programming Course | Python Tutorial for Beginners | Learn Python', 'heatmap': [{'end': 2821.45, 'start': 2458.733, 'weight': 0.866}, {'end': 4929.201, 'start': 3164.392, 'weight': 0.987}, {'end': 10563.124, 'start': 10203.851, 'weight': 0.909}, {'end': 13382.561, 'start': 13022.182, 'weight': 0.731}, {'end': 14789.915, 'start': 13728.701, 'weight': 0.735}, {'end': 16200.872, 'start': 15485.854, 'weight': 0.77}, {'end': 17963.966, 'start': 17247.985, 'weight': 0.738}, {'end': 19018.385, 'start': 18300.65, 'weight': 0.752}, {'end': 24999.313, 'start': 24641.354, 'weight': 0.702}], 'summary': 'This python programming course covers essential concepts of python programming for applications in web development, game development, machine learning, and data science. it includes a comprehensive understanding of python, installation, mathematical operations, variables, built-in functions, modules, pycharm usage, programming fundamentals, collections, functions, object-oriented programming, exception handling, file handling, json handling, iterators, generators, closures, operator overloading, debugging with pdb and pycharm, managing python packages, and variable scopes.', 'chapters': [{'end': 472.353, 'segs': [{'end': 51.712, 'src': 'embed', 'start': 0.882, 'weight': 0, 'content': [{'end': 4.444, 'text': 'Hey guys, welcome to this course on Python programming for beginners.', 'start': 0.882, 'duration': 3.562}, {'end': 10.689, 'text': 'So why learn Python? Because using Python, you can build almost anything.', 'start': 4.905, 'duration': 5.784}, {'end': 21.216, 'text': 'Python can be used for web development, game development, computer vision, robotics, graphical user interface development and also.', 'start': 11.169, 'duration': 10.047}, {'end': 29.962, 'text': 'Python is the number one language of choice for machine learning, data science and artificial intelligence.', 'start': 21.216, 'duration': 8.746}, {'end': 35.444, 'text': 'So the goal of this course is to provide you the working knowledge of Python programming.', 'start': 30.242, 'duration': 5.202}, {'end': 40.927, 'text': 'We will start with the basics, starting from the installation of Python on your operating system.', 'start': 35.845, 'duration': 5.082}, {'end': 51.712, 'text': 'And then we will learn all the basic concepts in Python programming, like variables, data types, operators, control statements, loops, strings,', 'start': 41.427, 'duration': 10.285}], 'summary': 'Python is versatile and widely used for web, game development, machine learning, data science, ai, and more. this course aims to provide working knowledge of python, covering basics and installation.', 'duration': 50.83, 'max_score': 0.882, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc882.jpg'}, {'end': 180.633, 'src': 'embed', 'start': 151.008, 'weight': 2, 'content': [{'end': 154.269, 'text': "in this video, i'm going to give you a brief introduction about python.", 'start': 151.008, 'duration': 3.261}, {'end': 156.07, 'text': "So let's get started.", 'start': 154.989, 'duration': 1.081}, {'end': 163.497, 'text': 'So first of all, what is Python? So Python is a high level dynamically typed programming language.', 'start': 156.23, 'duration': 7.267}, {'end': 174.507, 'text': 'Python support multiple programming paradigms, including object oriented, imperative, functional, and procedural styles.', 'start': 164.478, 'duration': 10.029}, {'end': 177.37, 'text': 'Now Python is a interpreted language.', 'start': 174.727, 'duration': 2.643}, {'end': 180.633, 'text': 'So what do we mean by interpreted?', 'start': 178.01, 'duration': 2.623}], 'summary': 'Introduction to python, a high-level, interpreted language with support for multiple programming paradigms.', 'duration': 29.625, 'max_score': 151.008, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc151008.jpg'}, {'end': 393.222, 'src': 'embed', 'start': 367.425, 'weight': 3, 'content': [{'end': 371.648, 'text': "That means you don't need to pay anything to start learning Python.", 'start': 367.425, 'duration': 4.223}, {'end': 374.61, 'text': "Now let's talk about some history about Python.", 'start': 371.728, 'duration': 2.882}, {'end': 389.539, 'text': 'So Python was conceived in late 1980s and its implementation began in December 1989 by a developer called Guido van Rossum in Netherlands,', 'start': 375.45, 'duration': 14.089}, {'end': 393.222, 'text': 'as a successor of a programming language called ABC.', 'start': 389.539, 'duration': 3.683}], 'summary': 'Python, developed in late 1980s, requires no payment to learn.', 'duration': 25.797, 'max_score': 367.425, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc367425.jpg'}], 'start': 0.882, 'title': 'Python programming essentials and introduction & history', 'summary': 'Covers essential concepts of python programming, such as applications in web development, game development, machine learning, and data science. it aims to provide a comprehensive understanding of python, covering basic to advanced topics like object-oriented and functional programming, exception handling, debugging, and package management. additionally, it includes a brief introduction to python, its features, types, and history, explaining its support for multiple programming paradigms, interpreted nature, dynamic data types, independence from platforms, and its history from conception to the present, including its founder and the python software foundation.', 'chapters': [{'end': 127.359, 'start': 0.882, 'title': 'Python programming essentials', 'summary': 'Covers the essential concepts of python programming, including its applications in web development, game development, machine learning, and data science, and aims to provide a comprehensive understanding of python, covering topics ranging from basic concepts to advanced object-oriented and functional programming, exception handling, debugging, and package management.', 'duration': 126.477, 'highlights': ['Python is versatile, being used for web development, game development, computer vision, robotics, graphical user interface development, machine learning, data science, and artificial intelligence.', 'The course covers basic Python concepts such as variables, data types, operators, control statements, loops, strings, functions, and collections like lists, tuples, sets, and dictionaries.', 'It also delves into advanced object-oriented programming topics like encapsulation, inheritance, polymorphism, abstraction, access specifiers, abstract classes, and compositions.', 'The chapter also includes topics on handling exceptions, Python iterators, generators, decorators, functional programming concepts, debugging, and using pip for package management.']}, {'end': 472.353, 'start': 127.859, 'title': 'Python: introduction & history', 'summary': "Covers a brief introduction to python, including its features, types, and history. it explains python's support for multiple programming paradigms, interpreted nature, dynamic data types, independence from platforms, and its history from conception to the present, including its founder and the python software foundation.", 'duration': 344.494, 'highlights': ['Python supports multiple programming paradigms, including object oriented, imperative, functional, and procedural styles, making it versatile for various programming approaches.', 'Python is an interpreted language, which means it must be parsed, interpreted, and executed each time the program is run, resulting in slower execution compared to compiled languages.', 'Python supports dynamic data types, performing type checking at runtime, allowing flexibility for variable types during execution.', 'Python is independent from platforms, enabling it to run on various operating systems, such as Windows, Linux, Mac, and other Unix systems.', "Python's history dates back to its conception in the late 1980s by Guido van Rossum, its release in 1991, and the creation of the Python Software Foundation in 2001, reflecting the ongoing development and leadership of the language."]}], 'duration': 471.471, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc882.jpg', 'highlights': ['Python is versatile, used for web development, game development, machine learning, and data science.', 'The course covers basic Python concepts like variables, data types, operators, and control statements.', 'Python supports multiple programming paradigms, including object oriented, imperative, functional, and procedural styles.', "Python's history dates back to its conception in the late 1980s by Guido van Rossum, its release in 1991, and the creation of the Python Software Foundation in 2001."]}, {'end': 1537.964, 'segs': [{'end': 529.796, 'src': 'embed', 'start': 501.404, 'weight': 0, 'content': [{'end': 509.307, 'text': "And why it's the first choice of educational institutes? Because it's very easy to learn and it runs on any platform.", 'start': 501.404, 'duration': 7.903}, {'end': 517.571, 'text': 'Now. Python is very powerful, scalable and easy to maintain programming language which enables high productivity,', 'start': 509.447, 'duration': 8.124}, {'end': 522.013, 'text': 'and it has lots and lots of inbuilt libraries which a developer can use.', 'start': 517.571, 'duration': 4.442}, {'end': 529.796, 'text': 'Python is also used as a glue language which acts as an interactive frontend for the languages like C and C++.', 'start': 522.232, 'duration': 7.564}], 'summary': 'Python is a popular choice for educational institutes due to its ease of learning, platform versatility, and powerful, scalable nature with numerous inbuilt libraries.', 'duration': 28.392, 'max_score': 501.404, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc501404.jpg'}, {'end': 574.173, 'src': 'embed', 'start': 546.043, 'weight': 2, 'content': [{'end': 550.444, 'text': "And it's really easy to extend to other languages if you are using Python.", 'start': 546.043, 'duration': 4.401}, {'end': 560.086, 'text': 'So where can you use Python? So because Python is a general purpose programming language, it is used in many web development framework.', 'start': 550.844, 'duration': 9.242}, {'end': 566.148, 'text': 'For example, Django and Flask recently became very popular for web development.', 'start': 560.266, 'duration': 5.882}, {'end': 574.173, 'text': 'now python is also widely used in scientific computing, data mining and machine learning,', 'start': 566.608, 'duration': 7.565}], 'summary': 'Python is widely used in web development frameworks like django and flask and in scientific computing, data mining, and machine learning.', 'duration': 28.13, 'max_score': 546.043, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc546043.jpg'}, {'end': 671.576, 'src': 'embed', 'start': 601.806, 'weight': 3, 'content': [{'end': 607.667, 'text': 'And at last, as I said, because Python is really easy to learn.', 'start': 601.806, 'duration': 5.861}, {'end': 614.089, 'text': "it's used for educational purposes, as the first programming language for teaching programming.", 'start': 607.667, 'duration': 6.422}, {'end': 620.711, 'text': 'Now the question arises, which version of Python should you learn? Python 3? or Python 2.', 'start': 614.369, 'duration': 6.342}, {'end': 629.217, 'text': "So I would recommend Python 3 since it's more modern and it is a more popular option at this point of time.", 'start': 620.711, 'duration': 8.506}, {'end': 633.12, 'text': 'So I will be teaching this course in Python 3.', 'start': 629.678, 'duration': 3.442}, {'end': 635.522, 'text': 'So this was a brief introduction about Python.', 'start': 633.12, 'duration': 2.402}, {'end': 642.208, 'text': "From the next video, I'm going to show you how to install Python and how to use Python as a programming language.", 'start': 635.622, 'duration': 6.586}, {'end': 647.332, 'text': "In this video, I'm going to show you how to install Python 3 on your Windows 10 operating system.", 'start': 642.308, 'duration': 5.024}, {'end': 648.913, 'text': "So let's get started.", 'start': 648.032, 'duration': 0.881}, {'end': 654.316, 'text': 'So first of all, open your favorite browser on your Windows 10 operating system and then search for Python.', 'start': 649.013, 'duration': 5.303}, {'end': 658.178, 'text': 'And the first link which will appear here will be from python.org.', 'start': 654.536, 'duration': 3.642}, {'end': 659.759, 'text': 'So we are going to click on that link.', 'start': 658.198, 'duration': 1.561}, {'end': 666.863, 'text': 'And once this python.org website is open, you just need to scroll down a little until you see this downloads section.', 'start': 660.019, 'duration': 6.844}, {'end': 671.576, 'text': 'And you can see at the time of making this video, Python 3.7.', 'start': 667.703, 'duration': 3.873}], 'summary': "Python 3 is recommended for learning as it's modern and popular. the video will guide on installing python 3 on windows 10.", 'duration': 69.77, 'max_score': 601.806, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc601806.jpg'}, {'end': 1102.002, 'src': 'embed', 'start': 1072.387, 'weight': 6, 'content': [{'end': 1073.629, 'text': 'So now everything is set.', 'start': 1072.387, 'duration': 1.242}, {'end': 1076.432, 'text': "So let's get started with the programming.", 'start': 1073.709, 'duration': 2.723}, {'end': 1079.476, 'text': "So let's start with the basic math operations.", 'start': 1076.833, 'duration': 2.643}, {'end': 1088.339, 'text': "So let's say I want to add something, so I can just write number plus, which is operator, and the other number,", 'start': 1080.117, 'duration': 8.222}, {'end': 1093.16, 'text': 'and then press enter and you will get the result of this expression.', 'start': 1088.339, 'duration': 4.821}, {'end': 1102.002, 'text': "Now let's try the subtraction, so let's say I want to subtract 60 minus 50 and then press enter and it gives the result.", 'start': 1093.74, 'duration': 8.262}], 'summary': 'Introduction to programming basic math operations with examples.', 'duration': 29.615, 'max_score': 1072.387, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1072387.jpg'}, {'end': 1198.012, 'src': 'embed', 'start': 1169.106, 'weight': 8, 'content': [{'end': 1179.191, 'text': 'in which you get the whole number as the answer and the decimal value is truncated out of your answer.', 'start': 1169.106, 'duration': 10.085}, {'end': 1186.819, 'text': 'so if you want to get the exact value out of the division in decimal values also, then you can use this expression,', 'start': 1179.191, 'duration': 7.628}, {'end': 1194.248, 'text': 'which is single forward slash operator, and if you want to do the floor division, then use these two forward slash symbols.', 'start': 1186.819, 'duration': 7.429}, {'end': 1198.012, 'text': "Now it's also possible to divide two decimal values.", 'start': 1194.488, 'duration': 3.524}], 'summary': 'Use single forward slash for exact division, double for floor division, and divide decimal values.', 'duration': 28.906, 'max_score': 1169.106, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1169106.jpg'}, {'end': 1286.829, 'src': 'embed', 'start': 1256.297, 'weight': 7, 'content': [{'end': 1265.22, 'text': 'here is, for example, multiplying two numbers or dividing two numbers, or addition of two numbers or subtraction of two numbers.', 'start': 1256.297, 'duration': 8.923}, {'end': 1267.841, 'text': "In Python, it's called expression.", 'start': 1265.92, 'duration': 1.921}, {'end': 1271.842, 'text': 'OK, so 50 multiplied by 10 is an expression.', 'start': 1268.201, 'duration': 3.641}, {'end': 1279.565, 'text': 'And I have already told you that these symbols for multiplication or division are called operators.', 'start': 1272.082, 'duration': 7.483}, {'end': 1286.829, 'text': 'Now the number on which you are doing these mathematical operations are called operand.', 'start': 1280.365, 'duration': 6.464}], 'summary': 'Python expressions involve arithmetic operations on numbers, such as multiplication and division, with 50 multiplied by 10 being an example.', 'duration': 30.532, 'max_score': 1256.297, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1256297.jpg'}, {'end': 1537.964, 'src': 'embed', 'start': 1518.576, 'weight': 10, 'content': [{'end': 1530.601, 'text': 'then whatever operator you use on the left have the highest priority and whatever operator you use on the right have the lower priority.', 'start': 1518.576, 'duration': 12.025}, {'end': 1537.964, 'text': 'so in this table parenthesis have the highest priority and the addition and the subtraction have the lowest priority.', 'start': 1530.601, 'duration': 7.363}], 'summary': 'Operators on left have highest priority, on right have lower. parenthesis highest, addition/subtraction lowest.', 'duration': 19.388, 'max_score': 1518.576, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1518576.jpg'}], 'start': 472.593, 'title': 'Python: a powerful and versatile language', 'summary': 'Highlights the popularity and versatility of python, emphasizing its usage in educational institutes, web development frameworks, scientific computing, and machine learning. it recommends learning python 3 for its modernity and popularity and provides step-by-step instructions for installing python 3 on windows 10. additionally, it demonstrates the installation of python 3.7 on windows 10, including customizing the install location, and then explores basic math operations in python using the idle ide, covering addition, subtraction, negative subtraction, and division, with emphasis on the floating point results. furthermore, the chapter explains the use of mathematical operators in python, such as division, floor division, decimal values, multiplication, modulo, and exponent operations, highlighting the concept of operands, literals, and operator precedence.', 'chapters': [{'end': 779.265, 'start': 472.593, 'title': 'Python: a powerful and versatile language', 'summary': 'Highlights the popularity and versatility of python, emphasizing its usage in educational institutes, web development frameworks, scientific computing, and machine learning. it also recommends learning python 3 for its modernity and popularity, and provides step-by-step instructions for installing python 3 on windows 10.', 'duration': 306.672, 'highlights': ["Python's widespread usage in educational institutes due to its ease of learning and multi-paradigm support.", "Python's versatility and power, including its scalability, ease of maintenance, high productivity, and extensive inbuilt libraries.", "Python's role as a scripting language, its ability to act as an interactive frontend for languages like C and C++, and its efficiency in reducing development time and code length.", "Python's wide usage in various domains, including web development, scientific computing, data mining, machine learning, graphical user interfaces, embedded applications, gaming, and DevOps tools.", 'The recommendation to learn Python 3 for its modernity, popularity, and suitability for the course being taught.', 'Step-by-step instructions for installing Python 3 on Windows 10, including navigating to the python.org website, choosing the latest version, and customizing the installation.']}, {'end': 1146.882, 'start': 779.265, 'title': 'Installing python and basic math operations in python', 'summary': 'Demonstrates the installation of python 3.7 on windows 10, including customizing the install location, and then explores basic math operations in python using the idle ide, covering addition, subtraction, negative subtraction, and division, with emphasis on the floating point results.', 'duration': 367.617, 'highlights': ['The chapter demonstrates the installation of Python 3.7 on Windows 10, including customizing the install location.', 'Exploration of basic math operations in Python using the IDLE IDE, covering addition, subtraction, negative subtraction, and division, with emphasis on the floating point results.']}, {'end': 1537.964, 'start': 1147.282, 'title': 'Python mathematical operators & precedence', 'summary': 'Explains the use of mathematical operators in python, such as division, floor division, decimal values, multiplication, modulo, and exponent operations, highlighting the concept of operands, literals, and operator precedence.', 'duration': 390.682, 'highlights': ['Python mathematical operators include division, floor division, decimal values, multiplication, modulo, and exponent operations.', 'Floor division truncates the decimal value, returning the whole number as the answer.', 'Decimal values, referred to as float values in Python, can be used in mathematical operations.', 'The concept of operands, literals, and operator precedence is explained in the context of mathematical operations in Python.', 'The concept of operator precedence is elucidated, emphasizing the hierarchy of mathematical operations.']}], 'duration': 1065.371, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc472593.jpg', 'highlights': ["Python's widespread usage in educational institutes due to its ease of learning and multi-paradigm support.", "Python's versatility and power, including its scalability, ease of maintenance, high productivity, and extensive inbuilt libraries.", "Python's wide usage in various domains, including web development, scientific computing, data mining, machine learning, graphical user interfaces, embedded applications, gaming, and DevOps tools.", 'The recommendation to learn Python 3 for its modernity, popularity, and suitability for the course being taught.', 'Step-by-step instructions for installing Python 3 on Windows 10, including navigating to the python.org website, choosing the latest version, and customizing the installation.', 'The chapter demonstrates the installation of Python 3.7 on Windows 10, including customizing the install location.', 'Exploration of basic math operations in Python using the IDLE IDE, covering addition, subtraction, negative subtraction, and division, with emphasis on the floating point results.', 'Python mathematical operators include division, floor division, decimal values, multiplication, modulo, and exponent operations.', 'Floor division truncates the decimal value, returning the whole number as the answer.', 'The concept of operands, literals, and operator precedence is explained in the context of mathematical operations in Python.', 'The concept of operator precedence is elucidated, emphasizing the hierarchy of mathematical operations.']}, {'end': 3419.719, 'segs': [{'end': 1560.135, 'src': 'embed', 'start': 1537.964, 'weight': 0, 'content': [{'end': 1548.689, 'text': 'and for example, if you use multiplication and division in the same expression, then the priority is decided which operator is appearing on the left.', 'start': 1537.964, 'duration': 10.725}, {'end': 1556.273, 'text': 'so if the operator is appearing on the left, it has the highest priority, then the operator which are on the right side.', 'start': 1548.689, 'duration': 7.584}, {'end': 1559.094, 'text': "so let's take an example of that.", 'start': 1556.273, 'duration': 2.821}, {'end': 1560.135, 'text': 'so, for example.', 'start': 1559.094, 'duration': 1.041}], 'summary': 'Priority of operators in expressions: left has highest priority, example provided.', 'duration': 22.171, 'max_score': 1537.964, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1537964.jpg'}, {'end': 1690.461, 'src': 'embed', 'start': 1657.486, 'weight': 4, 'content': [{'end': 1666.853, 'text': 'if you want to learn the order of precedence between the operators, then you can use this keyword, which is PEMDAS.', 'start': 1657.486, 'duration': 9.367}, {'end': 1676.216, 'text': 'P stands for parenthesis, E stands for exponents, M stands for multiplication, D stands for division,', 'start': 1667.394, 'duration': 8.822}, {'end': 1680.138, 'text': 'A stands for addition and S stands for subtraction.', 'start': 1676.216, 'duration': 3.922}, {'end': 1690.461, 'text': 'So you can either remember this name which is PEMDAS or you can use this sentence which I have written here.', 'start': 1681.258, 'duration': 9.203}], 'summary': 'Learn the order of precedence using pemdas: parenthesis, exponents, multiplication, division, addition, subtraction.', 'duration': 32.975, 'max_score': 1657.486, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1657486.jpg'}, {'end': 1878.076, 'src': 'embed', 'start': 1845.308, 'weight': 1, 'content': [{'end': 1849.75, 'text': 'and further, every variable in python is an object.', 'start': 1845.308, 'duration': 4.442}, {'end': 1857.992, 'text': 'so if you have learned some other languages like c, c, plus plus java or other statically typed languages,', 'start': 1849.75, 'duration': 8.242}, {'end': 1865.573, 'text': 'you may have observed that before writing the variable name, they give the type of the variable.', 'start': 1857.992, 'duration': 7.581}, {'end': 1869.594, 'text': 'for example, in other languages, for defining integer,', 'start': 1865.573, 'duration': 4.021}, {'end': 1878.076, 'text': 'they have to first define the data type of that variable and then they define the variable name and then they assign any value to it.', 'start': 1869.594, 'duration': 8.482}], 'summary': 'Python variables are objects, unlike statically typed languages like c, c++, and java.', 'duration': 32.768, 'max_score': 1845.308, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1845308.jpg'}, {'end': 2468.916, 'src': 'embed', 'start': 2438.36, 'weight': 2, 'content': [{'end': 2446.787, 'text': 'In this video we will see how to use print function in order to print output on the console in various different ways,', 'start': 2438.36, 'duration': 8.427}, {'end': 2451.29, 'text': "and I'm also going to show you how to take user input using Python.", 'start': 2446.787, 'duration': 4.503}, {'end': 2458.533, 'text': 'So we have already seen that in Python, we can use this print function in order to print something.', 'start': 2451.85, 'duration': 6.683}, {'end': 2468.916, 'text': "And we have already printed hello world at the time of installation, right? And when I press enter, it's going to print hello world on the console.", 'start': 2458.733, 'duration': 10.183}], 'summary': 'Demonstrates printing and taking user input in python.', 'duration': 30.556, 'max_score': 2438.36, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc2438360.jpg'}, {'end': 2821.45, 'src': 'heatmap', 'start': 2458.733, 'weight': 0.866, 'content': [{'end': 2468.916, 'text': "And we have already printed hello world at the time of installation, right? And when I press enter, it's going to print hello world on the console.", 'start': 2458.733, 'duration': 10.183}, {'end': 2477.822, 'text': 'Now some of you might wonder what is this print? So print is a inbuilt function in Python.', 'start': 2469.017, 'duration': 8.805}, {'end': 2484.107, 'text': 'So Python has a number of inbuilt function and print is one of them.', 'start': 2478.222, 'duration': 5.885}, {'end': 2496.496, 'text': 'So here print is a function and then inside the parenthesis, what you give here is called a parameter or an argument.', 'start': 2484.447, 'duration': 12.049}, {'end': 2501.821, 'text': 'okay?. So hello world is an argument which is a string argument, right?', 'start': 2496.496, 'duration': 5.325}, {'end': 2507.665, 'text': "So let's try to give in this print an integer argument.", 'start': 2502.441, 'duration': 5.224}, {'end': 2513.23, 'text': "Let's say I just provide 25 here and it will print this number once again.", 'start': 2507.965, 'duration': 5.265}, {'end': 2522.677, 'text': "Let's say I'm going to write print and then I want to execute some expression 50 multiplied by 60 and then press enter.", 'start': 2513.99, 'duration': 8.687}, {'end': 2525.579, 'text': 'Print function is also able to do this.', 'start': 2523.458, 'duration': 2.121}, {'end': 2539.074, 'text': "let's say i want to output some more complex formatted string so let's say i want to print on the console 50 multiplied by 10 is equal to 60.", 'start': 2526.741, 'duration': 12.333}, {'end': 2540.155, 'text': 'how can i do this?', 'start': 2539.074, 'duration': 1.081}, {'end': 2541.276, 'text': "so let's see how we can do it.", 'start': 2540.155, 'duration': 1.121}, {'end': 2549.765, 'text': 'so i can write print here and then inside these double quotes you can write your string, for example 50 multiplied by 10,', 'start': 2541.276, 'duration': 8.489}, {'end': 2556.188, 'text': 'and then in print function you can give multiple arguments using this comma separator.', 'start': 2549.765, 'duration': 6.423}, {'end': 2568.154, 'text': 'So here I can just write 50 multiplied by 10 and let me put equals symbol here inside this string and then press enter.', 'start': 2556.828, 'duration': 11.326}, {'end': 2579.458, 'text': 'and now it prints 50 multiplied by 10 equals 500, and you can also provide more than one argument to this print function.', 'start': 2568.154, 'duration': 11.304}, {'end': 2588.72, 'text': 'so, for example, I can just write hello here and then in the second argument I will just provide the space between hello and world,', 'start': 2579.458, 'duration': 9.262}, {'end': 2591.961, 'text': 'and in the third argument I will just say world here,', 'start': 2588.72, 'duration': 3.241}, {'end': 2598.862, 'text': 'and this print function will concatenate all these string values and give you the output in this format.', 'start': 2591.961, 'duration': 6.901}, {'end': 2604.665, 'text': "Now let's say, you want to also provide this value here, which is 50 and 10 instead of string.", 'start': 2599.002, 'duration': 5.663}, {'end': 2609.567, 'text': 'you want to provide some value which you take from a variable.', 'start': 2604.665, 'duration': 4.902}, {'end': 2618.071, 'text': 'So, for example, you declare a variable x is equal to 50 here and then y is equal to 10,', 'start': 2609.707, 'duration': 8.364}, {'end': 2622.693, 'text': 'and you want to use these two variables instead of this static string.', 'start': 2618.071, 'duration': 4.622}, {'end': 2627.397, 'text': 'So how you can achieve this? You can achieve this in various different ways.', 'start': 2623.473, 'duration': 3.924}, {'end': 2628.958, 'text': 'So let me show you the first way.', 'start': 2627.517, 'duration': 1.441}, {'end': 2633.883, 'text': 'So I can write print and then in the double quotes, this is your string.', 'start': 2629.018, 'duration': 4.865}, {'end': 2641.81, 'text': 'So whenever you use this double quotes and whenever you write something in between this double quotes, it becomes a string.', 'start': 2634.563, 'duration': 7.247}, {'end': 2644.212, 'text': 'So after this string, I will provide a dot here.', 'start': 2641.87, 'duration': 2.342}, {'end': 2653.145, 'text': 'and wait for some seconds and as soon as you do this you will be able to see various different hints here which are provided.', 'start': 2644.833, 'duration': 8.312}, {'end': 2659.134, 'text': 'So these are all the inbuilt methods which you can use with the string.', 'start': 2653.205, 'duration': 5.929}, {'end': 2662.337, 'text': 'So you can use find method.', 'start': 2659.935, 'duration': 2.402}, {'end': 2664.218, 'text': 'You can use format method.', 'start': 2662.717, 'duration': 1.501}, {'end': 2667.96, 'text': 'So for now, we are going to use this format method with strings.', 'start': 2664.298, 'duration': 3.662}, {'end': 2670.462, 'text': 'So you can just click on this format method.', 'start': 2667.98, 'duration': 2.482}, {'end': 2674.685, 'text': "So let's say I will provide x as the first argument.", 'start': 2670.562, 'duration': 4.123}, {'end': 2685.339, 'text': 'y as the second argument and i want to see the output of x multiplied by y in the third argument.', 'start': 2675.625, 'duration': 9.714}, {'end': 2692.348, 'text': 'now how you can print the value of x y and the multiplication of x y using this blank string.', 'start': 2685.339, 'duration': 7.009}, {'end': 2701.594, 'text': 'So it turns out that you can use these curly brackets inside this string and you can give some index here.', 'start': 2693.189, 'duration': 8.405}, {'end': 2703.596, 'text': 'So, index starts from 0.', 'start': 2701.674, 'duration': 1.922}, {'end': 2712.981, 'text': 'So, this index is index 0 and then I am going to provide space and then this asterisk symbol to provide this kind of format.', 'start': 2703.596, 'duration': 9.385}, {'end': 2715.303, 'text': 'So, we want to achieve this format here, right.', 'start': 2713.001, 'duration': 2.302}, {'end': 2722.628, 'text': 'So just write 0 in the curly bracket, space asterisk and once again curly bracket,', 'start': 2716.003, 'duration': 6.625}, {'end': 2729.492, 'text': 'and this time we are going to provide the index 1 and the result will be transferred to index 2..', 'start': 2722.628, 'duration': 6.864}, {'end': 2736.617, 'text': 'Why? Because here the index starts from 0 so x will be transferred to the index 0.', 'start': 2729.492, 'duration': 7.125}, {'end': 2744.086, 'text': 'y will be transferred to the index 1 and the multiplication of x and y will be transferred to index 2 here.', 'start': 2736.617, 'duration': 7.469}, {'end': 2749.512, 'text': 'so let me press enter here and you can see it prints the string which we desire.', 'start': 2744.086, 'duration': 5.426}, {'end': 2756.439, 'text': "now, once again, i'm going to write this print function and once again i'm going to give this parenthesis, and you can see the hint here.", 'start': 2749.512, 'duration': 6.927}, {'end': 2762.224, 'text': 'So I want to use this SCP keyword now inside the string.', 'start': 2757.08, 'duration': 5.144}, {'end': 2768.168, 'text': 'So how can I use this? So I will just close this parenthesis and once again I want to print hello world.', 'start': 2762.264, 'duration': 5.904}, {'end': 2783.461, 'text': "So I will just write hello and then I'm going to provide the comma and inside the double quotes I'm going to just write world here and then in the last argument you can provide this keyword SCP is equal to,", 'start': 2768.188, 'duration': 15.273}, {'end': 2789.588, 'text': 'and inside the double quotes you can provide some separator to separate the hello from world.', 'start': 2783.461, 'duration': 6.127}, {'end': 2801.001, 'text': "so i want to just give this string to separate hello from world and now i'm going to press enter and you can see this string is separating the keyword hello from the world.", 'start': 2789.588, 'duration': 11.413}, {'end': 2808.064, 'text': 'Now, in Python, you can also use C style string formatting to create a new formatted string.', 'start': 2801.181, 'duration': 6.883}, {'end': 2809.745, 'text': 'So let me show you how we can do it.', 'start': 2808.204, 'duration': 1.541}, {'end': 2814.427, 'text': "So I'm going to declare a variable called name and I'm going to assign some value to it.", 'start': 2809.865, 'duration': 4.562}, {'end': 2817.528, 'text': 'For example, max here and then press enter.', 'start': 2814.887, 'duration': 2.641}, {'end': 2821.45, 'text': "And now I'm going to just write print function.", 'start': 2818.149, 'duration': 3.301}], 'summary': 'The transcript explains the usage of the print function in python, including examples with string and integer arguments, expression evaluation, formatted strings, and variable usage.', 'duration': 362.717, 'max_score': 2458.733, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc2458733.jpg'}, {'end': 3282.815, 'src': 'embed', 'start': 3254.068, 'weight': 3, 'content': [{'end': 3258.42, 'text': '0 and you can even choose your language which are available here.', 'start': 3254.068, 'duration': 4.352}, {'end': 3265.584, 'text': 'Now when you click on this link which says library references, you will be able to see this page which says Python standard library.', 'start': 3258.78, 'duration': 6.804}, {'end': 3271.188, 'text': 'And then when you scroll down here, you will be able to see the introduction about Python.', 'start': 3266.265, 'duration': 4.923}, {'end': 3274.79, 'text': 'And the second section here is about built-in functions.', 'start': 3271.548, 'duration': 3.242}, {'end': 3277.632, 'text': "So I'm going to click on this built-in function link.", 'start': 3274.81, 'duration': 2.822}, {'end': 3282.815, 'text': 'And here you will be able to see all the built-in functions in Python.', 'start': 3278.172, 'duration': 4.643}], 'summary': 'The python standard library offers a wide range of built-in functions.', 'duration': 28.747, 'max_score': 3254.068, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc3254068.jpg'}], 'start': 1537.964, 'title': 'Mathematical operator priority and python variables', 'summary': "Discusses the priority of operators in mathematical expressions emphasizing left-to-right priority and python's object-oriented, dynamically typed nature. it covers variable declaration rules, types, reassignment, and usage with print function. additionally, it includes examples of c-style string formatting and usage of built-in functions such as pow, len, and help.", 'chapters': [{'end': 1657.486, 'start': 1537.964, 'title': 'Operator priority in math', 'summary': 'Discusses the priority of operators in mathematical expressions, with an example showcasing the order of operations and the resulting calculation, emphasizing the importance of left-to-right priority. it also highlights how the priority of operators determines the order of calculation in expressions and provides a detailed example of the order of operations.', 'duration': 119.522, 'highlights': ['The priority of operators in mathematical expressions is determined by their position from left to right, with the leftmost operator having the highest priority. This is demonstrated through an example where the order of operations is showcased, emphasizing the significance of left-to-right priority.', 'The example illustrates the order of calculation in a mathematical expression, showcasing how parentheses have the highest priority, followed by multiplication and division, and finally addition and subtraction, resulting in a clear demonstration of the order of operations in an expression.', 'The chapter provides a detailed example of the order of operations in a mathematical expression, showcasing how the priority of operators determines the sequence of calculation, resulting in a comprehensive understanding of how operators are prioritized in mathematical expressions.']}, {'end': 1978.6, 'start': 1657.486, 'title': 'Python variables & types', 'summary': "Discusses the order of precedence using pemdas, defines variables in python, and highlights the rules for variable declaration, emphasizing python's object-oriented and dynamically typed nature.", 'duration': 321.114, 'highlights': ['Python variables are not statically typed, allowing programmers to define variables without specifying their type, in contrast to languages like C, C++, and Java.', 'The rules for declaring a variable in Python include starting with a letter or underscore, consisting of letters, numbers, and underscores only, and being case-sensitive.', 'PEMDAS, which stands for Parenthesis, Exponents, Multiplication, Division, Addition, and Subtraction, is used to understand the order of precedence between operators in Python.']}, {'end': 2361.158, 'start': 1978.64, 'title': 'Python variable declaration', 'summary': 'Covers the rules for declaring variables in python, including valid variable names, reserved words, and data types, showcasing examples with integers, floats, complex numbers, and string variables, along with reassignment and type casting.', 'duration': 382.518, 'highlights': ['Rules for declaring variables in Python', 'Examples of declaring different data types', 'Reassignment and type casting of variables', 'Finding the type of a variable']}, {'end': 2701.594, 'start': 2361.158, 'title': 'Python variables and print function', 'summary': 'Demonstrates using python variables and the print function to display different data types and perform operations. it also explores the usage of the print function with various types of arguments and demonstrates string formatting and concatenation.', 'duration': 340.436, 'highlights': ['The chapter demonstrates using Python variables and the print function to display different data types and perform operations.', 'It also explores the usage of the print function with various types of arguments and demonstrates string formatting and concatenation.']}, {'end': 3419.719, 'start': 2701.674, 'title': 'Python built-in functions and string formatting', 'summary': 'Covers the usage of python built-in functions and string formatting, including examples of c-style string formatting, the input function for user input, and showcasing various built-in functions such as pow, len, and help.', 'duration': 718.045, 'highlights': ['The chapter covers the usage of Python built-in functions and string formatting', 'The index starts from 0 so x will be transferred to the index 0. y will be transferred to the index 1 and the multiplication of x and y will be transferred to index 2.', "Showing how to use the SCP keyword to separate the string 'hello' from 'world' using the print function.", 'Demonstrating the usage of C style string formatting in Python including examples with the modulo symbol and tuple.', 'Showcasing the usage of the float keyword and limiting the number of decimal values in Python.', 'Explaining the usage of the input function for user input and the typecasting of input values to integers or floats.', 'Displaying the availability of built-in functions in Python and how to list them using the dir and builtins functions.']}], 'duration': 1881.755, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc1537964.jpg', 'highlights': ['The priority of operators in mathematical expressions is determined by their position from left to right, with the leftmost operator having the highest priority.', 'Python variables are not statically typed, allowing programmers to define variables without specifying their type, in contrast to languages like C, C++, and Java.', 'The chapter demonstrates using Python variables and the print function to display different data types and perform operations.', 'The chapter covers the usage of Python built-in functions and string formatting.', 'PEMDAS, which stands for Parenthesis, Exponents, Multiplication, Division, Addition, and Subtraction, is used to understand the order of precedence between operators in Python.']}, {'end': 4422.09, 'segs': [{'end': 3606.865, 'src': 'embed', 'start': 3493.732, 'weight': 1, 'content': [{'end': 3505.962, 'text': 'So there is a built-in module called math and to import it, you just use a keyword called import and then the module name, for example math,', 'start': 3493.732, 'duration': 12.23}, {'end': 3512.047, 'text': "and press enter, and it's going to import this module into our interpreter.", 'start': 3505.962, 'duration': 6.085}, {'end': 3525.721, 'text': 'now you can use this math keyword and then you can write dot and wait for some seconds and you can see it gives me all the list which are available inside this math module.', 'start': 3512.808, 'duration': 12.913}, {'end': 3529.986, 'text': "so let's say i want to find out the square root of any number.", 'start': 3525.721, 'duration': 4.265}, {'end': 3538.876, 'text': 'i can use a function called sqrt here, And then this gives me the square root of a number.', 'start': 3529.986, 'duration': 8.89}, {'end': 3543.021, 'text': 'So for example, I want to find out the square root of 100.', 'start': 3539.196, 'duration': 3.825}, {'end': 3544.002, 'text': 'And then press Enter.', 'start': 3543.021, 'duration': 0.981}, {'end': 3546.586, 'text': 'It gives me the answer 10.', 'start': 3544.563, 'duration': 2.023}, {'end': 3550.33, 'text': 'Now once again, as I said, you can use a built-in function called help.', 'start': 3546.586, 'duration': 3.744}, {'end': 3553.813, 'text': 'In order to know the signature of this function.', 'start': 3550.911, 'duration': 2.902}, {'end': 3559.837, 'text': 'So I can just write math.sqrt and then press enter.', 'start': 3553.893, 'duration': 5.944}, {'end': 3562.959, 'text': "And it's going to give me some help about this function.", 'start': 3560.077, 'duration': 2.882}, {'end': 3567.302, 'text': 'So you can see it returns the square root of x.', 'start': 3563.419, 'duration': 3.883}, {'end': 3569.543, 'text': 'And the signature looks like this.', 'start': 3567.302, 'duration': 2.241}, {'end': 3576.088, 'text': 'Now if you want to print all the methods and types available inside this built-in module.', 'start': 3569.784, 'duration': 6.304}, {'end': 3579.93, 'text': 'You can once again use this built-in function dir.', 'start': 3576.508, 'duration': 3.422}, {'end': 3584.733, 'text': 'and then in the parenthesis write the name of the module.', 'start': 3581.171, 'duration': 3.562}, {'end': 3595.559, 'text': 'so this time we will write math here and then press enter, and it gives me the list of all the available functions available inside this math module,', 'start': 3584.733, 'duration': 10.826}, {'end': 3599.681, 'text': 'and you can see all these functions which are available inside this module.', 'start': 3595.559, 'duration': 4.122}, {'end': 3606.865, 'text': 'so you can just use a cos function from here, pi function from here, radians or tan function from here.', 'start': 3599.681, 'duration': 7.184}], 'summary': 'The math module provides functions like sqrt, dir, and constants like pi, with examples and usage.', 'duration': 113.133, 'max_score': 3493.732, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc3493732.jpg'}, {'end': 3789.85, 'src': 'embed', 'start': 3760.652, 'weight': 0, 'content': [{'end': 3766.255, 'text': "So let's convert this number into a float value.", 'start': 3760.652, 'duration': 5.603}, {'end': 3774.54, 'text': 'So you can use another inbuilt function which is float and then this string will be converted to float.', 'start': 3766.355, 'duration': 8.185}, {'end': 3778.163, 'text': "So I'm going to do the same for other two numbers.", 'start': 3775.041, 'duration': 3.122}, {'end': 3787.468, 'text': 'Now, in order to get the maximum numbers out of these three numbers we have seen, there is a inbuilt function in Python which is called max,', 'start': 3778.723, 'duration': 8.745}, {'end': 3789.85, 'text': 'and we are going to use this max function.', 'start': 3787.468, 'duration': 2.382}], 'summary': "Convert numbers to floats and find maximum using python's built-in functions.", 'duration': 29.198, 'max_score': 3760.652, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc3760652.jpg'}], 'start': 3419.979, 'title': 'Using built-in functions and modules in python', 'summary': 'Demonstrates using the help function to understand built-in functions like max and sqrt, importing and using built-in modules like math, executing a python script with built-in functions cos, pi, radians, and tan, finding maximum among user-input numbers, and using the max function to find the maximum value from input numbers, with an example resulting in the max value of 101. additionally, it explains running a hello.py file in python using terminal and command prompt, highlighting the difference between interpreted and compiled languages, and the process of executing python scripts on a terminal without needing an ide.', 'chapters': [{'end': 3584.733, 'start': 3419.979, 'title': 'Using built-in functions and modules in python', 'summary': 'Demonstrates how to use the help function to understand built-in functions such as max and sqrt, as well as how to import and use built-in modules like math in python.', 'duration': 164.754, 'highlights': ['The help function provides information on built-in functions like max and sqrt, such as their signature and description.', 'Importing and using the math module in Python allows access to various mathematical functions and constants, such as sqrt for calculating square roots.', 'The dir function can be used to display all the methods and types available within a built-in module, aiding in exploring the available functionalities.']}, {'end': 3729.36, 'start': 3584.733, 'title': 'Using built-in functions and modules in python', 'summary': 'Demonstrates how to create and execute a python script, including using built-in functions like cos, pi, radians, and tan, and saving the script as a .py file, providing an example of asking the user to input three numbers and finding the maximum among them.', 'duration': 144.627, 'highlights': ['The chapter demonstrates how to create and execute a Python script, including using built-in functions like cos, pi, radians, and tan.', 'Saving the script as a .py file, providing an example of asking the user to input three numbers and finding the maximum among them.']}, {'end': 3908.723, 'start': 3729.861, 'title': 'Python max function example', 'summary': 'Explains how to use the max function in python to find the maximum value from three input numbers, and demonstrates it with an example using 50, 90, and 101 as inputs, resulting in the max value of 101.', 'duration': 178.862, 'highlights': ['The chapter demonstrates the usage of the max function in Python to find the maximum value from three input numbers, using the example inputs of 50, 90, and 101, resulting in the max value of 101.', 'The transcript explains the process of converting input strings into float values using the float inbuilt function in Python.', 'It also mentions the need to save the Python file before running the code in IDLE IDE to ensure the changes are applied.']}, {'end': 4422.09, 'start': 3909.424, 'title': 'Running python files on terminal', 'summary': 'Explains how to run a hello.py file in python using terminal and command prompt, highlighting the difference between interpreted and compiled languages, and the process of executing python scripts on a terminal without needing an ide.', 'duration': 512.666, 'highlights': ['Python is an interpreted language and does not require compilation like Java, C++ or C, simplifying the process of executing Python files.', 'The tutorial demonstrates running a hello.py file on the terminal by double-clicking the file, entering input, and preventing the terminal from closing using the input method.', "Instructions are provided on how to run a Python file using the command prompt, including checking if Python is working, copying the file path, and executing the file using the 'Python' command in the command prompt."]}], 'duration': 1002.111, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc3419979.jpg', 'highlights': ['The max function in Python finds the maximum value from input numbers, resulting in the max value of 101', 'Using the help function provides information on built-in functions like max and sqrt', 'Importing and using the math module in Python allows access to various mathematical functions and constants', 'The chapter demonstrates how to create and execute a Python script, including using built-in functions like cos, pi, radians, and tan', 'The dir function can be used to display all the methods and types available within a built-in module']}, {'end': 6495.103, 'segs': [{'end': 4531.184, 'src': 'embed', 'start': 4500.74, 'weight': 0, 'content': [{'end': 4506.785, 'text': 'and what we want to download is we want to download the community version of PyCharm.', 'start': 4500.74, 'duration': 6.045}, {'end': 4515.111, 'text': 'this community version, you can see, is free and open source, so you can download and install it with no cost.', 'start': 4506.785, 'duration': 8.326}, {'end': 4523.877, 'text': 'if you want to download the professional version, then you need to pay some money to JetBrains in order to use it,', 'start': 4515.111, 'duration': 8.766}, {'end': 4531.184, 'text': 'and as soon as you click on download button, this download of PyCharmCommunityVersion.exe.', 'start': 4523.877, 'duration': 7.307}], 'summary': 'Download free pycharm community version, or pay for professional version from jetbrains.', 'duration': 30.444, 'max_score': 4500.74, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc4500740.jpg'}, {'end': 4622.672, 'src': 'embed', 'start': 4595.107, 'weight': 1, 'content': [{'end': 4603.853, 'text': 'so I will leave this unchecked and the next option here is download and install the JRE x86 by JetBrains.', 'start': 4595.107, 'duration': 8.746}, {'end': 4612.019, 'text': "there is no harm in this, so I'm going to check this checkbox and I'm going to click next and now I'm going to click on the install button.", 'start': 4603.853, 'duration': 8.166}, {'end': 4617.929, 'text': 'So this is going to start installing PyCharm on my Windows 10 operating system.', 'start': 4613.325, 'duration': 4.604}, {'end': 4622.672, 'text': 'So I need to wait for some time until this installation is finished.', 'start': 4618.549, 'duration': 4.123}], 'summary': 'Installing pycharm on windows 10, waiting for completion.', 'duration': 27.565, 'max_score': 4595.107, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc4595107.jpg'}, {'end': 5110.453, 'src': 'embed', 'start': 5085.349, 'weight': 4, 'content': [{'end': 5097.139, 'text': "okay?. So when you add a backslash in front of a character, Python interpreter knows that it's a escape character, so this will be treated as a valid string.", 'start': 5085.349, 'duration': 11.79}, {'end': 5098.44, 'text': 'So let me just print.', 'start': 5097.179, 'duration': 1.261}, {'end': 5103.906, 'text': 'the result and you can see it prints the same result now.', 'start': 5098.94, 'duration': 4.966}, {'end': 5110.453, 'text': "now let's say I want to use a double quote in this string which uses double quote already.", 'start': 5103.906, 'duration': 6.547}], 'summary': 'Using backslash as an escape character in python for handling special characters.', 'duration': 25.104, 'max_score': 5085.349, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc5085349.jpg'}, {'end': 5468.986, 'src': 'embed', 'start': 5437.695, 'weight': 3, 'content': [{'end': 5442.238, 'text': 'now let me show some other method related to the strings.', 'start': 5437.695, 'duration': 4.543}, {'end': 5453.843, 'text': 'so first method i want to show here is there is a method called is lower, and then there is a method called is upper,', 'start': 5442.238, 'duration': 11.605}, {'end': 5462.785, 'text': 'and then there is a method called dot replace, which is used to replace some character inside the string.', 'start': 5453.843, 'duration': 8.942}, {'end': 5468.986, 'text': "so let's say i want to replace capital h by, let's say, j.", 'start': 5462.785, 'duration': 6.201}], 'summary': "Demonstrated string methods: islower, isupper, replace. replaced 'h' with 'j'.", 'duration': 31.291, 'max_score': 5437.695, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc5437695.jpg'}, {'end': 6184.397, 'src': 'embed', 'start': 6149.038, 'weight': 2, 'content': [{'end': 6152.66, 'text': 'and this will check whether in my string there is an alphanumeric value or not.', 'start': 6149.038, 'duration': 3.622}, {'end': 6160.465, 'text': 'Now the next question you may ask is for example I want to evaluate two conditions at the same time.', 'start': 6152.9, 'duration': 7.565}, {'end': 6174.75, 'text': "Let's say I want to evaluate whether 10 is greater than 9 And I want to evaluate whether 20 is less than 15 or not.", 'start': 6161.245, 'duration': 13.505}, {'end': 6184.397, 'text': 'So how can I evaluate these two conditions at the same time? So for those type of comparison, we use the logical operators.', 'start': 6175.35, 'duration': 9.047}], 'summary': 'Using logical operators to evaluate multiple conditions simultaneously', 'duration': 35.359, 'max_score': 6149.038, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc6149038.jpg'}], 'start': 4422.09, 'title': 'Installing and using pycharm with python', 'summary': 'Explains installing pycharm on windows 10, using python strings and their manipulation, covering string methods, and delving into boolean basics, if-else statements, and logical operators in python, with practical demonstrations and examples.', 'chapters': [{'end': 4668.629, 'start': 4422.09, 'title': 'Installing pycharm on windows 10', 'summary': 'Explains the process of installing pycharm on windows 10, including details about downloading the free community version, configuring installation options, and launching the ide for the first time.', 'duration': 246.539, 'highlights': ['The community version of PyCharm is free and open source, making it accessible for users with no cost.', 'The installation process involves selecting the installation location and choosing optional features like creating shortcuts and associations, as well as downloading and installing the JRE x86 by JetBrains.', 'Upon completion, a PyCharm shortcut is created on the desktop, and the IDE can be launched, with the option to import settings from a previous installation.']}, {'end': 5085.349, 'start': 4668.629, 'title': 'Installing pycharm and using python strings', 'summary': 'Demonstrates the process of installing pycharm on windows 10 and provides guidance on using strings in python, including commenting and creating strings, with examples and explanations.', 'duration': 416.72, 'highlights': ['The chapter demonstrates the process of installing PyCharm on Windows 10.', 'Guidance on using strings in Python, including commenting and creating strings, with examples and explanations.']}, {'end': 5602.413, 'start': 5085.349, 'title': 'Python string manipulation and methods', 'summary': 'Covers string manipulation and methods in python, including escape characters, string methods like capitalize, upper, lower, string extraction, substring, strip, is lower, is upper, replace, and split, with practical demonstrations.', 'duration': 517.064, 'highlights': ['The chapter explains the concept of escape characters in Python strings, demonstrating the use of backslash to print single and double quotes within a string.', 'The demonstration of string manipulation includes practical examples of using string methods like capitalize, upper, lower, strip, is lower, is upper, replace, and split.', 'The concept of extracting individual characters from a string using square brackets and the demonstration of substring extraction based on index positions are explained in detail.', 'The explanation of the split method for dividing a string using a specified character, along with practical examples of splitting a string using a comma, is provided.']}, {'end': 6003.869, 'start': 5602.413, 'title': 'Python string and boolean basics', 'summary': 'Covers the usage of strings in python, demonstrating methods like title, translate, and printing strings multiple times using asterisks, and then delves into boolean values, comparison operators, and their application in python, with specific examples and results.', 'duration': 401.456, 'highlights': ['Python strings: Demonstrating methods like title, translate, and printing strings multiple times using asterisks', 'Python Boolean values and comparison operators: Explanation and usage with specific examples', 'Demonstration of Python console and usage of true and false Boolean constants']}, {'end': 6495.103, 'start': 6003.869, 'title': 'Python if-else and logical operators', 'summary': 'Covers using comparison operators, logical operators, and if-else statements in python, including examples of checking numerical and string values, with a focus on the usage of the logical operators and, or, and not.', 'duration': 491.234, 'highlights': ['The chapter covers examples of checking numerical and string values using comparison operators and logical operators AND, OR, and NOT.', 'The usage of logical operators AND, OR, and NOT is exemplified with numerical comparisons and their outcomes.', "The if statement syntax and its usage are explained with an example of checking a variable's value."]}], 'duration': 2073.013, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc4422090.jpg', 'highlights': ['The community version of PyCharm is free and open source, making it accessible for users with no cost.', 'The installation process involves selecting the installation location and choosing optional features like creating shortcuts and associations, as well as downloading and installing the JRE x86 by JetBrains.', 'The chapter covers examples of checking numerical and string values using comparison operators and logical operators AND, OR, and NOT.', 'The demonstration of string manipulation includes practical examples of using string methods like capitalize, upper, lower, strip, is lower, is upper, replace, and split.', 'The chapter explains the concept of escape characters in Python strings, demonstrating the use of backslash to print single and double quotes within a string.']}, {'end': 8210.272, 'segs': [{'end': 6687.471, 'src': 'embed', 'start': 6658.795, 'weight': 0, 'content': [{'end': 6668.64, 'text': "Now let's take another scenario, and this time I want to check whether the value of x is a positive value or a negative value.", 'start': 6658.795, 'duration': 9.845}, {'end': 6677.225, 'text': 'So I will start from here and I will give one more if statement here and I will just check whether x is greater than 0 or not.', 'start': 6669.101, 'duration': 8.124}, {'end': 6687.471, 'text': "and then give this colon to indicate, Python, that I have finished this condition and then, if it's greater than 0,", 'start': 6678.966, 'duration': 8.505}], 'summary': 'Checking if x is positive or negative.', 'duration': 28.676, 'max_score': 6658.795, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc6658795.jpg'}, {'end': 6918.501, 'src': 'embed', 'start': 6894.626, 'weight': 2, 'content': [{'end': 6903.691, 'text': "In this video, I'm going to show you how to use l if statement with if else statements and how to use nested if statements in Python.", 'start': 6894.626, 'duration': 9.065}, {'end': 6905.532, 'text': "So let's get started.", 'start': 6904.472, 'duration': 1.06}, {'end': 6913.097, 'text': "So what I'm going to do is I'm going to declare a variable and I'm going to ask the user to enter some name.", 'start': 6905.552, 'duration': 7.545}, {'end': 6918.501, 'text': "So I'm going to just write enter a name here.", 'start': 6913.898, 'duration': 4.603}], 'summary': 'Demonstrating usage of if and if-else statements in python.', 'duration': 23.875, 'max_score': 6894.626, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc6894626.jpg'}, {'end': 7235.641, 'src': 'embed', 'start': 7202.955, 'weight': 1, 'content': [{'end': 7208.058, 'text': 'so this is how you can use if statement with l if statement and else statement.', 'start': 7202.955, 'duration': 5.103}, {'end': 7212.581, 'text': "Now let's see how to use the nested if statement.", 'start': 7208.898, 'duration': 3.683}, {'end': 7223.611, 'text': "So I'm going to declare a variable called x and the value I will assign to x is 10, and then I'm going to write an if condition,", 'start': 7213.082, 'duration': 10.529}, {'end': 7229.996, 'text': "and here I'm going to just evaluate whether x is less than 0..", 'start': 7223.611, 'duration': 6.385}, {'end': 7235.641, 'text': "and when x is less than zero, I'm going to just print that x is negative.", 'start': 7229.996, 'duration': 5.645}], 'summary': "Demonstrated usage of if, else, and nested if statements with an example of evaluating x's value and printing a message when x is negative.", 'duration': 32.686, 'max_score': 7202.955, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc7202955.jpg'}, {'end': 7446.368, 'src': 'embed', 'start': 7416.53, 'weight': 3, 'content': [{'end': 7422.113, 'text': 'And this type of if-else statement are called nested if-else statement.', 'start': 7416.53, 'duration': 5.583}, {'end': 7426.495, 'text': "In this video, I'm going to show you how to use lists in Python.", 'start': 7422.353, 'duration': 4.142}, {'end': 7438.642, 'text': 'So first of all, what are lists? So list in Python is a kind of collection which allows us to put many values in a single variable.', 'start': 7427.196, 'duration': 11.446}, {'end': 7444.586, 'text': 'You can also say that list is an ordered set of values.', 'start': 7439.562, 'duration': 5.024}, {'end': 7446.368, 'text': "So let's define a list.", 'start': 7445.047, 'duration': 1.321}], 'summary': 'This transcript discusses using lists in python, which are collections allowing storage of multiple values in a single variable.', 'duration': 29.838, 'max_score': 7416.53, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc7416530.jpg'}, {'end': 7842.135, 'src': 'embed', 'start': 7815.558, 'weight': 4, 'content': [{'end': 7822.142, 'text': 'so now this list contain only five element and the last element is now removed.', 'start': 7815.558, 'duration': 6.584}, {'end': 7829.706, 'text': "once again, when you use this pop method, it's going to remove the seven, and now our list only contains four elements.", 'start': 7822.142, 'duration': 7.564}, {'end': 7832.028, 'text': "Now let's say you want to delete the whole list.", 'start': 7830.006, 'duration': 2.022}, {'end': 7842.135, 'text': "So I'm going to declare a list and this list will contain few values, and then I will press enter and you can see the values of list.", 'start': 7832.328, 'duration': 9.807}], 'summary': 'Demonstrates removing elements from a list and deleting the entire list.', 'duration': 26.577, 'max_score': 7815.558, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc7815558.jpg'}], 'start': 6495.103, 'title': 'Python programming fundamentals', 'summary': 'Covers python indentation, conditional statements, if-else and nested if statements, nested if-else, and lists, as well as list and tuple basics. it emphasizes the use of indentation, conditional execution, nested conditions, and list manipulation with examples and code execution.', 'chapters': [{'end': 6751.006, 'start': 6495.103, 'title': 'Python indentation and conditional statements', 'summary': 'Explains python indentation and conditional statements, emphasizing the use of indentation to define code blocks and demonstrating the execution of if and else statements based on different conditions and values of x in python.', 'duration': 255.903, 'highlights': ['The use of indentation in Python to define blocks of code, with examples demonstrating the impact of indentation on the execution of if and else statements.', 'The demonstration of if and else statements in Python, showcasing the execution of code based on the fulfillment or failure of conditions, with an example of printing positive or negative value based on the value of x.', 'Explanation of the significance of indentation in Python, comparing it to the use of curly brackets in C or C++, and its impact on the execution of code based on the fulfillment of conditions.']}, {'end': 7356.034, 'start': 6751.226, 'title': 'Python if-else and nested if statements', 'summary': 'Explains the use of if-else and nested if statements in python, demonstrating conditional execution based on logical comparisons and nested condition evaluation, with examples and code execution.', 'duration': 604.808, 'highlights': ['The chapter explains the use of if-else and nested if statements in Python, demonstrating conditional execution based on logical comparisons and nested condition evaluation, with examples and code execution.', 'The video demonstrates the use of if-else statements to check the value of x, showcasing the execution of code based on logical conditions and providing clear examples of positive, negative, and multiple condition checks.', 'The explanation of l if statements highlights how to provide multiple condition checks using logical operators, showcasing the execution of code based on logical conditions and providing examples of using OR and AND operators to evaluate conditions.', 'The detailed explanation of nested if statements demonstrates the concept of nesting one if-else condition inside another, showcasing the nested evaluation of conditions and providing clear examples of nested conditional execution.']}, {'end': 7863.574, 'start': 7356.034, 'title': 'Nested if-else and lists in python', 'summary': 'Demonstrates the use of nested if-else statements to determine even values and the creation, manipulation, and deletion of lists in python, including accessing elements by index, inserting and removing elements, and using the len and del functions.', 'duration': 507.54, 'highlights': ['The chapter demonstrates the use of nested if-else statements to determine even values.', 'The video showcases the creation of lists in Python, with a demonstration of defining lists and accessing elements by index.', 'The demonstration includes the insertion and removal of elements from a list, showcasing the insert and remove methods.', 'The functionality of the len function for retrieving the length of a list is demonstrated, showcasing the capability to determine the number of elements in a list.', 'The del function is demonstrated for deleting an entire list, exemplifying the capability to remove a list from memory.']}, {'end': 8210.272, 'start': 7863.734, 'title': 'Python lists and tuples basics', 'summary': 'Explains how to use list methods such as clear, sort, reverse, append, copy, and count in python, as well as the immutability of tuples and their limitations compared to lists.', 'duration': 346.538, 'highlights': ['The clear function is used to remove all the values from a list, resulting in an empty list.', 'The sort function arranges integer values inside a list in ascending order.', 'The append function adds a specified element to the end of a list.', 'The count function returns the number of occurrences of a specified element in a list.', 'Tuples are immutable, meaning their content cannot be changed once initialized, and they have limitations compared to lists.']}], 'duration': 1715.169, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc6495103.jpg', 'highlights': ['The demonstration of if and else statements in Python, showcasing the execution of code based on the fulfillment or failure of conditions, with an example of printing positive or negative value based on the value of x.', 'The detailed explanation of nested if statements demonstrates the concept of nesting one if-else condition inside another, showcasing the nested evaluation of conditions and providing clear examples of nested conditional execution.', 'The chapter explains the use of if-else and nested if statements in Python, demonstrating conditional execution based on logical comparisons and nested condition evaluation, with examples and code execution.', 'The video showcases the creation of lists in Python, with a demonstration of defining lists and accessing elements by index.', 'The demonstration includes the insertion and removal of elements from a list, showcasing the insert and remove methods.']}, {'end': 9440.017, 'segs': [{'end': 8260.413, 'src': 'embed', 'start': 8210.272, 'weight': 0, 'content': [{'end': 8214.753, 'text': 'if 8 is present twice in this tuple, here you will see the result 2.', 'start': 8210.272, 'duration': 4.481}, {'end': 8221.919, 'text': 'Now, in order to get the length of the tuple, you can use the inbuilt function, which is len, and then the tuple name,', 'start': 8214.753, 'duration': 7.166}, {'end': 8225.502, 'text': "and then press enter and it's going to give you the length of the tuple.", 'start': 8221.919, 'duration': 3.583}, {'end': 8232.087, 'text': 'Now in the previous video I have told you that you can save multiple data type values in lists.', 'start': 8225.722, 'duration': 6.365}, {'end': 8236.071, 'text': "Let's see if we can do the same with tuples or not.", 'start': 8232.708, 'duration': 3.363}, {'end': 8238.092, 'text': "So I'm going to give the parenthesis.", 'start': 8236.45, 'duration': 1.642}, {'end': 8248.482, 'text': "I'm going to give the first value as integer, second value as string, third value as, for example, the decimal value,", 'start': 8238.092, 'duration': 10.39}, {'end': 8254.007, 'text': "and I'm going to press enter and I'm going to get the value of y.", 'start': 8248.482, 'duration': 5.525}, {'end': 8260.413, 'text': "and you can see it's totally possible to save multiple data type values in a tuple.", 'start': 8254.007, 'duration': 6.406}], 'summary': 'Tuples can hold multiple data types, and length can be determined using the len function.', 'duration': 50.141, 'max_score': 8210.272, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc8210272.jpg'}, {'end': 8321.493, 'src': 'embed', 'start': 8289.602, 'weight': 4, 'content': [{'end': 8294.564, 'text': "So I'm going to just once again see the contents in the Z variable.", 'start': 8289.602, 'duration': 4.962}, {'end': 8301.745, 'text': 'And you can see when you use this plus operator or concatenation operator.', 'start': 8294.584, 'duration': 7.161}, {'end': 8310.73, 'text': "it's going to join these two tuple and create a new tuple with the combination of the values of both these tuples.", 'start': 8301.745, 'duration': 8.985}, {'end': 8321.493, 'text': 'Now there is one interesting thing which you can do with a tuple, which is you can declare a variable and let me define a tuple with only one element,', 'start': 8310.99, 'duration': 10.503}], 'summary': 'Using the plus operator, tuples can be joined to create a new tuple with combined values.', 'duration': 31.891, 'max_score': 8289.602, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc8289602.jpg'}, {'end': 8374.3, 'src': 'embed', 'start': 8335.177, 'weight': 5, 'content': [{'end': 8340.501, 'text': 'and I can use an asterisk here and I can use some value here.', 'start': 8335.177, 'duration': 5.324}, {'end': 8347.344, 'text': 'So let us say I have provided 5 here and I am going to press enter and then I am going to see the values.', 'start': 8340.641, 'duration': 6.703}, {'end': 8357.552, 'text': 'inside this a variable and now you can see high string is saved 5 times in a variable in the form of a tuple.', 'start': 8347.344, 'duration': 10.208}, {'end': 8367.438, 'text': 'So, you can once again get this value at index 2 for example and it is going to give you the value which is stored at index 2 which is high itself.', 'start': 8357.992, 'duration': 9.446}, {'end': 8374.3, 'text': 'You can also use an inbuilt function called max here to get the maximum value out of a tuple.', 'start': 8367.577, 'duration': 6.723}], 'summary': 'Using an asterisk to save a value 5 times in a variable and retrieving values from a tuple.', 'duration': 39.123, 'max_score': 8335.177, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc8335177.jpg'}, {'end': 8541.914, 'src': 'embed', 'start': 8513.135, 'weight': 2, 'content': [{'end': 8520.642, 'text': "so let's see some of the methods related to sets, and the first method is, as always, len method,", 'start': 8513.135, 'duration': 7.507}, {'end': 8529.229, 'text': 'and you can find the length of a set using this len method and the name of the set, which returns the length of a set.', 'start': 8520.642, 'duration': 8.587}, {'end': 8537.853, 'text': 'you can also use a add function, so a dot add to add a element in a set.', 'start': 8529.229, 'duration': 8.624}, {'end': 8541.914, 'text': 'So I want to add 10, for example, into my set.', 'start': 8537.973, 'duration': 3.941}], 'summary': 'Methods for sets: len to find length, add to add elements.', 'duration': 28.779, 'max_score': 8513.135, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc8513135.jpg'}, {'end': 8845.841, 'src': 'embed', 'start': 8796.65, 'weight': 3, 'content': [{'end': 8803.113, 'text': 'And when I try to access the values inside the set name, you can see it has created this set of names.', 'start': 8796.65, 'duration': 6.463}, {'end': 8806.315, 'text': 'Also you can convert a list into a set.', 'start': 8803.454, 'duration': 2.861}, {'end': 8808.957, 'text': 'So let me define a variable called Z.', 'start': 8806.555, 'duration': 2.402}, {'end': 8819.742, 'text': 'and then I can use a set constructor and inside these parentheses, I can use the square brackets which we use generally with lists,', 'start': 8809.817, 'duration': 9.925}, {'end': 8830.328, 'text': 'and then you can define your list here and then press enter and this list will be converted to a set and you can see the result here.', 'start': 8819.742, 'duration': 10.586}, {'end': 8838.775, 'text': 'now similar to the mathematical set operations like union intersection difference, symmetric difference.', 'start': 8830.828, 'duration': 7.947}, {'end': 8845.841, 'text': 'you can also use these mathematical operations related to set on the python sets also.', 'start': 8838.775, 'duration': 7.066}], 'summary': 'Python sets can be created from lists and support mathematical set operations.', 'duration': 49.191, 'max_score': 8796.65, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc8796650.jpg'}, {'end': 9270.633, 'src': 'embed', 'start': 9232.822, 'weight': 8, 'content': [{'end': 9235.364, 'text': 'so this is how you can use sets in python.', 'start': 9232.822, 'duration': 2.542}, {'end': 9239.426, 'text': "in this video, i'm going to show you how to use dictionaries in python.", 'start': 9235.364, 'duration': 4.062}, {'end': 9241.448, 'text': 'so first of all, what are dictionaries?', 'start': 9239.426, 'duration': 2.022}, {'end': 9248.556, 'text': 'so dictionaries in python are like associative lists or a map.', 'start': 9242.328, 'duration': 6.228}, {'end': 9254.524, 'text': 'now you can think of dictionary as a list of pairs.', 'start': 9248.556, 'duration': 5.968}, {'end': 9258.77, 'text': 'so let me show you how to define a dictionary so you can define any variable name.', 'start': 9254.524, 'duration': 4.246}, {'end': 9270.633, 'text': 'and to define a dictionary, first of all, you use these curly brackets and inside these curly brackets you provide a list of key value pairs.', 'start': 9259.35, 'duration': 11.283}], 'summary': 'Introduction to using dictionaries in python.', 'duration': 37.811, 'max_score': 9232.822, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc9232822.jpg'}, {'end': 9412.195, 'src': 'embed', 'start': 9381.782, 'weight': 9, 'content': [{'end': 9384.583, 'text': 'so as key you can define any data type.', 'start': 9381.782, 'duration': 2.801}, {'end': 9396.128, 'text': "so let me define a new dictionary here and I'm going to give these curly brackets and, as i said, you can define a string value as key.", 'start': 9384.583, 'duration': 11.545}, {'end': 9401.431, 'text': 'also, you can define a number as a key, for example 15, colon 15.', 'start': 9396.128, 'duration': 5.303}, {'end': 9403.271, 'text': "let's try the float values.", 'start': 9401.431, 'duration': 1.84}, {'end': 9409.074, 'text': "so i'm going to just write 15.1, colon, 15.1.", 'start': 9403.271, 'duration': 5.803}, {'end': 9412.195, 'text': 'this is also allowed in dictionary.', 'start': 9409.074, 'duration': 3.121}], 'summary': 'Explanation of defining keys in a dictionary with string and number examples, including float values.', 'duration': 30.413, 'max_score': 9381.782, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc9381782.jpg'}], 'start': 8210.272, 'title': 'Working with tuples, sets, and dictionaries in python', 'summary': 'Covers the length of a tuple, storing multiple data types, concatenation, repeating tuple elements, finding maximum and minimum values, deleting a tuple, defining sets, adding, updating, and removing elements, set operations, mathematical set operations, set constructor, symmetric difference, dictionaries, key-value pairs, data types for keys, and accessing values.', 'chapters': [{'end': 8260.413, 'start': 8210.272, 'title': 'Tuples and length', 'summary': 'Demonstrates how to determine the length of a tuple using the len function and showcases the ability to store multiple data types in a tuple.', 'duration': 50.141, 'highlights': ['The len function can be used to determine the length of a tuple, providing a convenient way to quantify the size of the data structure.', 'Tuples can store multiple data types, offering flexibility in representing diverse types of information.']}, {'end': 8768.371, 'start': 8260.413, 'title': 'Working with tuples and sets in python', 'summary': "Covers working with tuples and sets in python, including concatenation of tuples, using asterisk to repeat tuple elements, finding maximum and minimum values in a tuple, deleting a tuple, defining sets in python, adding, updating, and removing elements from a set, and understanding the differences between 'discard' and 'remove' methods.", 'duration': 507.958, 'highlights': ['The chapter demonstrates the concatenation of tuples using the plus operator, creating a new tuple with the combination of the values of both original tuples.', 'The tutorial shows the usage of the asterisk to repeat a single element in a tuple multiple times, demonstrating the creation of a tuple with repeated values.', "It explains how to find the maximum value in a tuple using the 'max' function, providing insight into extracting the maximum value from a tuple.", 'It covers the usage of sets in Python and how duplicate values are automatically removed when defining a set, ensuring that each value in the set is unique.', "The tutorial provides a detailed explanation of various set methods such as 'add', 'update', 'remove', 'discard', 'pop', 'clear', and 'del', along with practical demonstrations."]}, {'end': 9129.087, 'start': 8768.371, 'title': 'Python set operations', 'summary': 'Covers creating sets, converting lists to sets, and performing mathematical set operations like union, intersection, difference, and symmetric difference in python, demonstrating the usage of set constructor, mathematical set operations, and their corresponding methods.', 'duration': 360.716, 'highlights': ['Creating sets using set constructor and converting lists to sets', 'Usage of mathematical set operations like union, intersection, difference, and symmetric difference in Python sets', 'Demonstrating various methods for performing set operations such as union, intersection, difference, and symmetric difference']}, {'end': 9440.017, 'start': 9129.087, 'title': 'Sets and dictionaries in python', 'summary': 'Covers the use of sets in python, including the symmetric difference, methods, and unordered nature, and then delves into dictionaries, explaining key-value pairs, data types for keys, and accessing values.', 'duration': 310.93, 'highlights': ['The chapter covers the use of sets in Python, including the symmetric difference, methods, and unordered nature.', 'Dictionaries in Python are explained, including key-value pairs, data types for keys, and accessing values.', 'Symmetric difference gives the same answer whether using A cap B or B cap A.', 'Sets are unordered and not indexed, with no support for accessing values by index.', 'Dictionaries can store various data types as keys, including strings, numbers, boolean values, and tuples.']}], 'duration': 1229.745, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc8210272.jpg', 'highlights': ['The len function can be used to determine the length of a tuple, providing a convenient way to quantify the size of the data structure.', 'Tuples can store multiple data types, offering flexibility in representing diverse types of information.', "The tutorial provides a detailed explanation of various set methods such as 'add', 'update', 'remove', 'discard', 'pop', 'clear', and 'del', along with practical demonstrations.", 'Usage of mathematical set operations like union, intersection, difference, and symmetric difference in Python sets', 'The chapter demonstrates the concatenation of tuples using the plus operator, creating a new tuple with the combination of the values of both original tuples.', 'The tutorial shows the usage of the asterisk to repeat a single element in a tuple multiple times, demonstrating the creation of a tuple with repeated values.', "It explains how to find the maximum value in a tuple using the 'max' function, providing insight into extracting the maximum value from a tuple.", 'Creating sets using set constructor and converting lists to sets', 'Dictionaries in Python are explained, including key-value pairs, data types for keys, and accessing values.', 'Dictionaries can store various data types as keys, including strings, numbers, boolean values, and tuples.']}, {'end': 12126.925, 'segs': [{'end': 9574.536, 'src': 'embed', 'start': 9547.761, 'weight': 0, 'content': [{'end': 9554.985, 'text': "I can get it like this and it's going to give me the value associated with the name key.", 'start': 9547.761, 'duration': 7.224}, {'end': 9556.986, 'text': 'You can also add a new key.', 'start': 9555.185, 'duration': 1.801}, {'end': 9562.31, 'text': 'So this D dictionary, you can see there are right now three key value pairs.', 'start': 9557.087, 'duration': 5.223}, {'end': 9565.711, 'text': 'And I can add one more key value pair.', 'start': 9562.95, 'duration': 2.761}, {'end': 9570.474, 'text': 'So to add a key value pair, you need to just write D.', 'start': 9565.812, 'duration': 4.662}, {'end': 9574.536, 'text': 'And in the square bracket, you just need to give the name of the new key.', 'start': 9570.474, 'duration': 4.062}], 'summary': 'Demonstrates adding key-value pairs to a dictionary in python.', 'duration': 26.775, 'max_score': 9547.761, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc9547761.jpg'}, {'end': 9840.719, 'src': 'embed', 'start': 9808.359, 'weight': 1, 'content': [{'end': 9809.88, 'text': 'So now we have three variables.', 'start': 9808.359, 'duration': 1.521}, {'end': 9814.962, 'text': 'First is a list, second is a tuple and third is a string.', 'start': 9810.14, 'duration': 4.822}, {'end': 9824.926, 'text': 'Now there is a function called slice which you can use with your lists, tuples and strings to slice something out of your collection.', 'start': 9815.402, 'duration': 9.524}, {'end': 9832.472, 'text': "So, to use this slice, I'm going to declare a variable and then I'm going to use this function, which is slice,", 'start': 9825.706, 'duration': 6.766}, {'end': 9835.655, 'text': 'and you can provide some parameters in the parenthesis here.', 'start': 9832.472, 'duration': 3.183}, {'end': 9840.719, 'text': 'So the first parameter you can provide here is for example start.', 'start': 9835.975, 'duration': 4.744}], 'summary': 'Introducing slice function to extract elements from lists, tuples, and strings.', 'duration': 32.36, 'max_score': 9808.359, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc9808359.jpg'}, {'end': 10563.124, 'src': 'heatmap', 'start': 10203.851, 'weight': 0.909, 'content': [{'end': 10215.376, 'text': 'you can also use the negative index, which starts from the right hand side, so it starts from n, And the index you can give here is from minus 1..', 'start': 10203.851, 'duration': 11.525}, {'end': 10223.421, 'text': 'So the last index here will be minus 1 then minus 2 minus 3 minus 4 minus 5 and minus 6 here.', 'start': 10215.376, 'duration': 8.045}, {'end': 10228.545, 'text': "So let's use these kind of indexes and let's see how we can use them.", 'start': 10224.122, 'duration': 4.423}, {'end': 10237.81, 'text': "So we have this string here and let's say I want to get this value which is 9 which is the last letter of the string.", 'start': 10229.305, 'duration': 8.505}, {'end': 10247.076, 'text': "So I can use C and here inside the square bracket I can give minus 1 and then press enter and it's going to give me the last letter of the string.", 'start': 10237.83, 'duration': 9.246}, {'end': 10251.699, 'text': 'If I give minus 2 here, it will give me the second last letter.', 'start': 10247.916, 'duration': 3.783}, {'end': 10261.206, 'text': 'Okay So the negative index starts from the right hand side and it goes from minus 1 till the end of the string.', 'start': 10251.719, 'duration': 9.487}, {'end': 10266.39, 'text': "Now let's use this negative number index with the list which we have.", 'start': 10261.546, 'duration': 4.844}, {'end': 10267.851, 'text': 'So we have this A list.', 'start': 10266.59, 'duration': 1.261}, {'end': 10279.545, 'text': 'And we can use a and then we can give a colon colon minus one which is going to give you all the numbers in the reverse order in the list.', 'start': 10268.732, 'duration': 10.813}, {'end': 10282.409, 'text': 'So our list was starting from zero to nine.', 'start': 10279.906, 'duration': 2.503}, {'end': 10286.134, 'text': 'It will give us nine to zero in the reverse order.', 'start': 10282.97, 'duration': 3.164}, {'end': 10296.901, 'text': "let's say, if you want to get the first two item in the reverse order, so this is when you use this minus one as the third parameter,", 'start': 10286.454, 'duration': 10.447}, {'end': 10299.702, 'text': 'it will give you everything in the reverse order.', 'start': 10296.901, 'duration': 2.801}, {'end': 10307.607, 'text': 'okay, so minus one as the step value is used to give everything in the reverse order.', 'start': 10299.702, 'duration': 7.905}, {'end': 10314.511, 'text': "so when you give, for example, one here and leave the end parameter empty, it's going to give you.", 'start': 10307.607, 'duration': 6.904}, {'end': 10317.033, 'text': 'you can see one zero.', 'start': 10314.511, 'duration': 2.522}, {'end': 10323.439, 'text': "so as you can see, our list starts from zero one and it's going to give us the reverse order values.", 'start': 10317.033, 'duration': 6.406}, {'end': 10332.247, 'text': "so it's going to give us one zeros, because here we have given one and it's the end value for this reverse string,", 'start': 10323.439, 'duration': 8.808}, {'end': 10335.23, 'text': 'because we have used the minus one here.', 'start': 10332.247, 'duration': 2.983}, {'end': 10337.112, 'text': "let's take some more examples.", 'start': 10335.23, 'duration': 1.882}, {'end': 10345.097, 'text': 'so instead of this start value, i can give minus three here and then press enter and you can see it gives us eight and nine,', 'start': 10337.112, 'duration': 7.985}, {'end': 10350.419, 'text': 'which are the last two items of the list in the reverse format.', 'start': 10345.097, 'duration': 5.322}, {'end': 10356.562, 'text': 'okay, because our index in reverse starts from minus one, minus two, minus three,', 'start': 10350.419, 'duration': 6.143}, {'end': 10365.169, 'text': 'and we we are skipping the minus 3 option because we have seen that we just take the end minus 1 right.', 'start': 10356.562, 'duration': 8.607}, {'end': 10374.177, 'text': 'So minus 1 minus 2 and these will be given to us in the reverse order because we have used minus 1 here.', 'start': 10365.689, 'duration': 8.488}, {'end': 10379.298, 'text': 'now you can also give, for example, minus 3 as the start value.', 'start': 10374.477, 'duration': 4.821}, {'end': 10387.5, 'text': "so I'm going to give the minus 3 as the start value and then press enter and it's going to give us 0 to 7, right.", 'start': 10379.298, 'duration': 8.202}, {'end': 10392.401, 'text': 'so 0 to 7, except 8 and 9 in the reverse order.', 'start': 10387.5, 'duration': 4.901}, {'end': 10398.802, 'text': 'so because 3 this time is the start value and end value is until the start.', 'start': 10392.401, 'duration': 6.401}, {'end': 10408.857, 'text': 'So because three this time is the start value, so we go from minus one, minus two, minus three.', 'start': 10400.714, 'duration': 8.143}, {'end': 10413.9, 'text': 'So minus three is this index, and this is the start value.', 'start': 10409.238, 'duration': 4.662}, {'end': 10418.321, 'text': 'So we get zero to seven in the reverse order.', 'start': 10413.94, 'duration': 4.381}, {'end': 10425.064, 'text': 'So this is how you can use slice function and negative values with indexes in Python.', 'start': 10418.521, 'duration': 6.543}, {'end': 10428.766, 'text': "In this video, I'm going to show you how to use loops in Python.", 'start': 10425.444, 'duration': 3.322}, {'end': 10431.808, 'text': 'And we will start with the while loop.', 'start': 10429.586, 'duration': 2.222}, {'end': 10445.702, 'text': 'So first of all, what is a loop? So a loop allows us to repeat over some block of code again and again until and unless some condition is met.', 'start': 10432.689, 'duration': 13.013}, {'end': 10449.245, 'text': "Now let's see how to use while loop in Python.", 'start': 10446.583, 'duration': 2.662}, {'end': 10458.37, 'text': "So let's say I'm going to declare a variable called i and I'm going to initialize it with the value 0 and to use a while loop.", 'start': 10450.006, 'duration': 8.364}, {'end': 10461.892, 'text': 'you use this keyword and then you provide some condition.', 'start': 10458.37, 'duration': 3.522}, {'end': 10471.637, 'text': "So let's say I want to check whether the value inside the i variable is less than 5 or not.", 'start': 10462.672, 'duration': 8.965}, {'end': 10476.439, 'text': 'And as in the case of if also we have seen,', 'start': 10473.198, 'duration': 3.241}, {'end': 10489.225, 'text': 'we provide after the condition this colon symbol and then in the next line we write the code which we want to perform again and again until this,', 'start': 10476.439, 'duration': 12.786}, {'end': 10492.626, 'text': 'while loop condition is true.', 'start': 10489.225, 'duration': 3.401}, {'end': 10504.551, 'text': "so let's say we want to just print something and we will print that the value of i is and then we will print the value of i.", 'start': 10492.626, 'duration': 11.925}, {'end': 10509.874, 'text': 'like this also, I want to change the value of i with every step.', 'start': 10504.551, 'duration': 5.323}, {'end': 10517.1, 'text': 'So I will change the value of i using this expression which is i plus equals 1.', 'start': 10510.074, 'duration': 7.026}, {'end': 10526.287, 'text': 'This essentially means that we want to just add 1 every time whenever this code is executed.', 'start': 10517.1, 'duration': 9.187}, {'end': 10533.452, 'text': 'Also we can say that we want to perform this operation i is equal to i plus 1.', 'start': 10526.747, 'duration': 6.705}, {'end': 10536.334, 'text': 'So this statement is similar to this statement.', 'start': 10533.452, 'duration': 2.882}, {'end': 10538.216, 'text': 'Let me provide some spaces here.', 'start': 10536.515, 'duration': 1.701}, {'end': 10539.236, 'text': 'now in here.', 'start': 10538.596, 'duration': 0.64}, {'end': 10549.94, 'text': 'also, you will observe that I have provided some indentation here, and indentation means that these two lines of code is the part of while loop.', 'start': 10539.236, 'duration': 10.704}, {'end': 10554.961, 'text': 'okay, so when I want to write something outside the while loop,', 'start': 10549.94, 'duration': 5.021}, {'end': 10563.124, 'text': "I will start from here with no indentation and let's say I want to just print that we are finished.", 'start': 10554.961, 'duration': 8.163}], 'summary': 'Using negative indexes and while loops in python to manipulate strings and iterate through code blocks.', 'duration': 359.273, 'max_score': 10203.851, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc10203851.jpg'}, {'end': 10379.298, 'src': 'embed', 'start': 10350.419, 'weight': 2, 'content': [{'end': 10356.562, 'text': 'okay, because our index in reverse starts from minus one, minus two, minus three,', 'start': 10350.419, 'duration': 6.143}, {'end': 10365.169, 'text': 'and we we are skipping the minus 3 option because we have seen that we just take the end minus 1 right.', 'start': 10356.562, 'duration': 8.607}, {'end': 10374.177, 'text': 'So minus 1 minus 2 and these will be given to us in the reverse order because we have used minus 1 here.', 'start': 10365.689, 'duration': 8.488}, {'end': 10379.298, 'text': 'now you can also give, for example, minus 3 as the start value.', 'start': 10374.477, 'duration': 4.821}], 'summary': 'Explaining reverse indexing in a sequence.', 'duration': 28.879, 'max_score': 10350.419, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc10350419.jpg'}, {'end': 11051.716, 'src': 'embed', 'start': 11020.143, 'weight': 3, 'content': [{'end': 11028.005, 'text': 'do you want to execute this code infinitely or do you want at some time that this condition will be false?', 'start': 11020.143, 'duration': 7.862}, {'end': 11031.786, 'text': 'so this is how you can use while loops in python.', 'start': 11028.005, 'duration': 3.781}, {'end': 11036.047, 'text': 'in this video we are going to see how to use for loops in python.', 'start': 11031.786, 'duration': 4.261}, {'end': 11038.188, 'text': 'so, first of all, what are for loops?', 'start': 11036.047, 'duration': 2.141}, {'end': 11051.716, 'text': 'so a for loop is used to iterate over a sequence, and that sequence can be a list or a tuple, or a dictionary, or a set or a string.', 'start': 11039.108, 'duration': 12.608}], 'summary': 'Explains usage of while and for loops in python.', 'duration': 31.573, 'max_score': 11020.143, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc11020143.jpg'}, {'end': 11385.803, 'src': 'embed', 'start': 11365.894, 'weight': 6, 'content': [{'end': 11378.081, 'text': 'so there is a function called range here and in here you can provide a number and this range is going to return the number, starting from 0 to 5.', 'start': 11365.894, 'duration': 12.187}, {'end': 11385.803, 'text': 'so whatever number you write here, the range will be returned from 0 until that number, except whatever number you write here.', 'start': 11378.081, 'duration': 7.722}], 'summary': 'The range function returns numbers from 0 to a specified value, excluding the input number.', 'duration': 19.909, 'max_score': 11365.894, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc11365894.jpg'}, {'end': 11484.708, 'src': 'embed', 'start': 11451.398, 'weight': 4, 'content': [{'end': 11464.301, 'text': 'Every third value, right? If you write here 2, then we will increment in the step of 2.', 'start': 11451.398, 'duration': 12.903}, {'end': 11469.003, 'text': 'so this is how you can use range function with your for loop.', 'start': 11464.301, 'duration': 4.702}, {'end': 11474.744, 'text': 'also, as I said in the last video, you can use else statement with your loops.', 'start': 11469.003, 'duration': 5.741}, {'end': 11484.708, 'text': 'so I can also write else here and then after the colon in the next line, I can print something or I can execute some statement.', 'start': 11474.744, 'duration': 9.964}], 'summary': 'Using range function with for loop, increment by 2; else statement can be used with loops.', 'duration': 33.31, 'max_score': 11451.398, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc11451398.jpg'}, {'end': 11584.997, 'src': 'embed', 'start': 11558.729, 'weight': 5, 'content': [{'end': 11571.293, 'text': "so here I'm going to give a condition inside my for loop and I'm going to just evaluate whether x is equal to 3 or not, and if x is equal to 3,", 'start': 11558.729, 'duration': 12.564}, {'end': 11575.054, 'text': "I'm going to use this break keyword in a same way.", 'start': 11571.293, 'duration': 3.761}, {'end': 11584.997, 'text': "I'm going to use this if condition inside my while loop also, but instead, this time I'm going to evaluate i is equal to 3 and if i is equal to 3,", 'start': 11575.054, 'duration': 9.943}], 'summary': 'Using conditionals in for and while loops to break at x=3 or i=3.', 'duration': 26.268, 'max_score': 11558.729, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc11558729.jpg'}, {'end': 11779.451, 'src': 'embed', 'start': 11745.222, 'weight': 7, 'content': [{'end': 11756.825, 'text': 'whatever code comes after this continue keyword will be skipped and your program execution goes once again to a for loop for the next value.', 'start': 11745.222, 'duration': 11.603}, {'end': 11762.826, 'text': 'so you can see in case where x is equal to 2 and continue is called,', 'start': 11756.825, 'duration': 6.001}, {'end': 11771.128, 'text': 'this statement is not executed because as soon as we execute continue in our loop,', 'start': 11762.826, 'duration': 8.302}, {'end': 11779.451, 'text': 'Then that iteration is skipped and all the code after the continue will not be executed.', 'start': 11771.708, 'duration': 7.743}], 'summary': "Using 'continue' in a loop skips iteration and subsequent code execution.", 'duration': 34.229, 'max_score': 11745.222, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc11745222.jpg'}], 'start': 9440.017, 'title': 'Python collection data manipulation, slicing, loop syntax, and keywords', 'summary': "Covers accessing, adding, removing, updating, and manipulating elements in dictionaries, as well as using the slice function for lists, tuples, and strings in python. it explains the use of negative indexes, while loops, for loops, 'in' operator, range function, and the else statement. additionally, it demonstrates the use of break and continue keywords in loops.", 'chapters': [{'end': 10079.126, 'start': 9440.017, 'title': 'Python collection data manipulation', 'summary': 'Covers accessing, adding, removing, updating, and manipulating elements in dictionaries, as well as using the slice function for lists, tuples, and strings in python, with examples and explanations of different notation methods and their results.', 'duration': 639.109, 'highlights': ['The chapter covers accessing, adding, removing, updating, and manipulating elements in dictionaries', 'Using the slice function for lists, tuples, and strings in Python', 'Examples and explanations of different notation methods and their results']}, {'end': 10789.486, 'start': 10079.126, 'title': 'Python slicing and negative indexes', 'summary': 'Explains how to use the slice functionality in python with step values to extract specific elements from lists and strings, as well as the use of negative indexes to access elements from the end of collections. it also provides examples of while loops in python, demonstrating how to use them to repeat a block of code until a condition is met.', 'duration': 710.36, 'highlights': ['Explanation of slice functionality with step values', 'Demonstration of using negative indexes to access elements from the end of collections', 'Examples of while loops in Python']}, {'end': 11484.708, 'start': 10789.946, 'title': 'Python loops and for loop syntax', 'summary': "Demonstrates the usage of while loops and for loops in python, showcasing the syntax and functionality of each. it also illustrates the use of the 'in' operator, range function, and the else statement with loops.", 'duration': 694.762, 'highlights': ['The chapter demonstrates the usage of while loops and for loops in Python, showcasing the syntax and functionality of each.', "It also illustrates the use of the 'in' operator, range function, and the else statement with loops.", "The 'in' operator is used to check whether a value is present in a sequence, and the range function generates a sequence of numbers from 0 to the specified value with an optional step parameter."]}, {'end': 12126.925, 'start': 11484.708, 'title': 'Using break and continue keywords with python loops', 'summary': 'Demonstrates the use of break and continue keywords in for and while loops, showcasing how break immediately terminates the loop and continue skips the current iteration, with examples of their application and impact on loop execution.', 'duration': 642.217, 'highlights': ['The break keyword immediately terminates the for loop when the condition x is equal to 3 is met, resulting in the loop printing only 0, 1, 2 out of the expected 0 to 5.', 'The while loop, upon encountering the condition i equal to 3, immediately terminates due to the break keyword, resulting in values from 0 to 2 being printed instead of the expected 0 to 5.', "The continue keyword skips the current iteration in both for and while loops, as demonstrated by the exclusion of the value 2 from the printed output in the for loop and the impact on the while loop's execution."]}], 'duration': 2686.908, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc9440017.jpg', 'highlights': ['Covers accessing, adding, removing, updating, and manipulating elements in dictionaries', 'Using the slice function for lists, tuples, and strings in Python', 'Demonstration of using negative indexes to access elements from the end of collections', 'The chapter demonstrates the usage of while loops and for loops in Python, showcasing the syntax and functionality of each', "Illustrates the use of the 'in' operator, range function, and the else statement with loops", 'The break keyword immediately terminates the for loop when the condition x is equal to 3 is met', "The 'in' operator is used to check whether a value is present in a sequence, and the range function generates a sequence of numbers from 0 to the specified value with an optional step parameter", 'The continue keyword skips the current iteration in both for and while loops']}, {'end': 13113.867, 'segs': [{'end': 12207.255, 'src': 'embed', 'start': 12180.757, 'weight': 4, 'content': [{'end': 12192.925, 'text': "So this function sum is doing one single task which is to add two values whether it's a string or it's a number or it's a float value.", 'start': 12180.757, 'duration': 12.168}, {'end': 12197.968, 'text': 'Now, you may also observe that when I provide, for example,', 'start': 12193.085, 'duration': 4.883}, {'end': 12204.913, 'text': 'as a first argument I will provide a string and as a second argument I will provide a number here.', 'start': 12197.968, 'duration': 6.945}, {'end': 12207.255, 'text': "Will this work? Let's see.", 'start': 12205.493, 'duration': 1.762}], 'summary': "The function 'sum' adds two values, whether string, number, or float.", 'duration': 26.498, 'max_score': 12180.757, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc12180757.jpg'}, {'end': 12600.701, 'src': 'embed', 'start': 12575.802, 'weight': 0, 'content': [{'end': 12587.152, 'text': "So the first benefit is function makes your code simpler, because if you don't use function to execute this kind of code,", 'start': 12575.802, 'duration': 11.35}, {'end': 12595.499, 'text': 'then you need to write this code again and again whenever you want to use this functionality at different places.', 'start': 12587.152, 'duration': 8.347}, {'end': 12600.701, 'text': 'The second advantage is function makes your code reusable.', 'start': 12595.899, 'duration': 4.802}], 'summary': 'Functions simplify code and make it reusable.', 'duration': 24.899, 'max_score': 12575.802, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc12575802.jpg'}, {'end': 12776.517, 'src': 'embed', 'start': 12741.698, 'weight': 2, 'content': [{'end': 12743.62, 'text': 'the default values are taken.', 'start': 12741.698, 'duration': 1.922}, {'end': 12753.546, 'text': 'So the default values are used when you want to make sure that every argument in your function should have some value.', 'start': 12743.94, 'duration': 9.606}, {'end': 12760.669, 'text': "Now let's say I just provide a name here and don't provide the age.", 'start': 12754.306, 'duration': 6.363}, {'end': 12762.23, 'text': "And let's run the program.", 'start': 12761.029, 'duration': 1.201}, {'end': 12770.334, 'text': 'And now you can see the name is overwritten by the argument what we have provided here.', 'start': 12763.09, 'duration': 7.244}, {'end': 12776.517, 'text': 'So default value will be this one if no argument is provided.', 'start': 12770.354, 'duration': 6.163}], 'summary': 'Default values ensure every function argument has a value. name is overwritten if no age argument is provided.', 'duration': 34.819, 'max_score': 12741.698, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc12741698.jpg'}, {'end': 12865.536, 'src': 'embed', 'start': 12835.128, 'weight': 3, 'content': [{'end': 12840.251, 'text': 'Now in Python, you can use asterisks in front of your argument.', 'start': 12835.128, 'duration': 5.123}, {'end': 12846.094, 'text': 'And this means that you can provide multiple arguments when you use this kind of notation.', 'start': 12840.651, 'duration': 5.443}, {'end': 12855.965, 'text': "So let's just provide, for example, we already provided the name and age here and let's provide different marks scored by the students.", 'start': 12846.934, 'duration': 9.031}, {'end': 12865.536, 'text': 'So I can provide 95 for first subject, then 70 for second subject, then 80 for next subject, then 50 for next subject.', 'start': 12856.005, 'duration': 9.531}], 'summary': 'Python allows using asterisks to provide multiple arguments, e.g. 95, 70, 80, 50.', 'duration': 30.408, 'max_score': 12835.128, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc12835128.jpg'}], 'start': 12126.925, 'title': 'Python functions and benefits', 'summary': 'Discusses the concept of functions in python, including the advantages of code simplification, reusability, and faster development, with examples of default values and variable length arguments, emphasizing the benefits of using functions in python.', 'chapters': [{'end': 12548.024, 'start': 12126.925, 'title': 'Python function sum example', 'summary': "Demonstrates a python function 'sum' which adds two values, whether it's a string or number, and includes handling type mismatch errors, returning values from a function, and using print function for display.", 'duration': 421.099, 'highlights': ["The sum function adds two values, whether it's a string or a number, and concatenates two strings, demonstrated by providing different types of arguments and running the program.", 'Type mismatch error is handled by checking the type of both arguments and using a return keyword to print a message and avoid executing further statements if the types do not match.', 'Demonstrates the usage of the return keyword to return the addition of two arguments from the sum function, and explains that after return is executed, the subsequent statements will not be executed.', 'Shows how to save the return value of the sum function in a variable and then use the variable to print the value, or directly use the print function to display the result.']}, {'end': 12834.307, 'start': 12548.024, 'title': 'Python functions and benefits', 'summary': 'Discusses the concept of functions in python, including the advantages of code simplification, reusability, and faster development, with examples of default values and variable length arguments, emphasizing the benefits of using functions in python.', 'duration': 286.283, 'highlights': ['The first benefit of using functions is that it makes the code simpler, reducing the need for repetitive code and facilitating execution across different places.', 'The second advantage is the reusability of code, as the same code can be used for various operations, resulting in faster development.', 'Default values for function arguments provide a way to ensure that every argument has a value, and can be overridden when specific values are provided during function calls.', 'The chapter also covers the concept of variable length arguments, allowing the provision of a list of scores as an additional argument for the function.']}, {'end': 13113.867, 'start': 12835.128, 'title': 'Python asterisk usage', 'summary': 'Discusses the usage of asterisks in python for handling variable-length arguments, demonstrating how to use single asterisks for tuple and double asterisks for dictionary, with an emphasis on providing multiple arguments and iterating through the values.', 'duration': 278.739, 'highlights': ['You can use single asterisks for tuple and double asterisks for dictionary in Python.', 'Demonstration of providing multiple arguments and iterating through the values using asterisks.', 'Suggestion to use the variable length argument as the last argument of the function for clarity.']}], 'duration': 986.942, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc12126925.jpg', 'highlights': ['The first benefit of using functions is that it makes the code simpler, reducing the need for repetitive code and facilitating execution across different places.', 'The second advantage is the reusability of code, as the same code can be used for various operations, resulting in faster development.', 'Default values for function arguments provide a way to ensure that every argument has a value, and can be overridden when specific values are provided during function calls.', 'Demonstration of providing multiple arguments and iterating through the values using asterisks.', "The sum function adds two values, whether it's a string or a number, and concatenates two strings, demonstrated by providing different types of arguments and running the program."]}, {'end': 14292.479, 'segs': [{'end': 13571.924, 'src': 'embed', 'start': 13549.129, 'weight': 0, 'content': [{'end': 13557.554, 'text': 'Now these objects, for example, a cab object and the passenger object can exchange the data between them also.', 'start': 13549.129, 'duration': 8.425}, {'end': 13566.56, 'text': 'So data is interchangeable between, for example, the passenger object and a cab object.', 'start': 13558.095, 'duration': 8.465}, {'end': 13571.924, 'text': "So let's rewind once again what we have learned about object oriented programming.", 'start': 13566.8, 'duration': 5.124}], 'summary': 'Objects can exchange data in object-oriented programming.', 'duration': 22.795, 'max_score': 13549.129, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc13549129.jpg'}, {'end': 13660.244, 'src': 'embed', 'start': 13633.436, 'weight': 1, 'content': [{'end': 13638.598, 'text': 'And these functions, which you define inside a class, are called methods.', 'start': 13633.436, 'duration': 5.162}, {'end': 13646.24, 'text': 'And what are some of the key differences between procedural programming language and object-oriented programming language?', 'start': 13638.838, 'duration': 7.402}, {'end': 13650.081, 'text': 'The first is the unit in procedural programming language is function.', 'start': 13646.5, 'duration': 3.581}, {'end': 13655.382, 'text': 'And on the other hand, in object-oriented programming, the unit is class.', 'start': 13650.721, 'duration': 4.661}, {'end': 13660.244, 'text': 'The second is the procedural programming concentrate on creating functions.', 'start': 13655.682, 'duration': 4.562}], 'summary': 'Procedural: unit is function, oop: unit is class', 'duration': 26.808, 'max_score': 13633.436, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc13633436.jpg'}, {'end': 14104.28, 'src': 'embed', 'start': 14074.588, 'weight': 4, 'content': [{'end': 14086.034, 'text': 'so before the speed was 200 and the new speed is 300 for the object Ford, and before the color was red and the new color is blue for this object Ford.', 'start': 14074.588, 'duration': 11.446}, {'end': 14091.896, 'text': 'Now, if you have followed the last video, this speed and color is the data.', 'start': 14086.354, 'duration': 5.542}, {'end': 14096.858, 'text': 'So speed and color are the variables which holds some data inside them.', 'start': 14091.996, 'duration': 4.862}, {'end': 14104.28, 'text': "But still we haven't added any behavior or methods to our class car.", 'start': 14097.398, 'duration': 6.882}], 'summary': "Ford object's speed increased from 200 to 300, and color changed from red to blue.", 'duration': 29.692, 'max_score': 14074.588, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14074588.jpg'}], 'start': 13113.867, 'title': 'Object-oriented programming in python', 'summary': 'Explains the difference between procedural and object-oriented programming, emphasizing the use of functions and data structure in procedural programming and the emphasis on classes in object-oriented programming. it also covers the concept of classes, objects, attributes, and methods in object-oriented programming, as well as creating and using classes in python with specific examples.', 'chapters': [{'end': 13394.836, 'start': 13113.867, 'title': 'Procedural vs object-oriented programming', 'summary': 'Explains the difference between procedural and object-oriented programming, highlighting the use of functions and data structure in procedural programming and the emphasis on classes in object-oriented programming.', 'duration': 280.969, 'highlights': ['Procedural programming languages like C or Pascal focus on functions as the basic unit, involving data structure, algorithm design, and code translation.', 'Object-oriented programming languages like C++ or Java emphasize the creation of classes, allowing the creation of different objects for entities like cab, cab driver, and passenger.']}, {'end': 13687.206, 'start': 13395.356, 'title': 'Object-oriented programming basics', 'summary': 'Explains the concept of classes, objects, attributes, and methods in object-oriented programming, emphasizing the interchangeability of data between objects and the differences from procedural programming.', 'duration': 291.85, 'highlights': ['Classes are blueprints containing data and methods, allowing the creation of objects with unique data and methods.', 'Objects combine data and methods, enabling interchangeability of data between objects.', 'Attributes hold data, and methods are functions defined inside a class.', 'Key differences between procedural and object-oriented programming include the unit of focus and the relationship between data and methods.']}, {'end': 14292.479, 'start': 13687.426, 'title': 'Introduction to classes in python', 'summary': 'Discusses how to create and use classes in python, including creating instances of classes, adding attributes to objects, and modifying attributes, along with examples of creating the car class and the rectangle class.', 'duration': 605.053, 'highlights': ['The chapter discusses how to create and use classes in Python', 'Creating instances of classes', 'Adding attributes to objects', 'Modifying attributes']}], 'duration': 1178.612, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc13113867.jpg', 'highlights': ['Object-oriented programming emphasizes classes and allows creation of different objects (2)', 'Procedural programming focuses on functions and data structure (1)', 'Classes in object-oriented programming are blueprints containing data and methods (2)', 'Key differences between procedural and object-oriented programming include unit of focus and data-method relationship (2)', 'Chapter covers creating and using classes in Python, including creating instances and modifying attributes (3)']}, {'end': 15863.145, 'segs': [{'end': 14349.502, 'src': 'embed', 'start': 14322.131, 'weight': 0, 'content': [{'end': 14325.432, 'text': 'And we have used this special keyword pass there.', 'start': 14322.131, 'duration': 3.301}, {'end': 14330.134, 'text': 'and pass we were using to create an empty class.', 'start': 14326.172, 'duration': 3.962}, {'end': 14337.857, 'text': "Now I'm going to remove this pass and I'm going to add a method called init here.", 'start': 14330.874, 'duration': 6.983}, {'end': 14349.502, 'text': "So I'm going to just write def and then underscore underscore init and then press enter and you can see this init method is created here.", 'start': 14337.937, 'duration': 11.565}], 'summary': "Used 'pass' keyword to create empty class, then added 'init' method.", 'duration': 27.371, 'max_score': 14322.131, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14322131.jpg'}, {'end': 14478.516, 'src': 'embed', 'start': 14445.839, 'weight': 4, 'content': [{'end': 14451.541, 'text': 'Whatever we were printing for example speed or color of the car will be printed after that.', 'start': 14445.839, 'duration': 5.702}, {'end': 14458.183, 'text': 'Now one important thing to notice here is I said init serves as a constructor.', 'start': 14451.861, 'duration': 6.322}, {'end': 14460.484, 'text': "It's not a constructor.", 'start': 14458.643, 'duration': 1.841}, {'end': 14467.726, 'text': "Although it would be tempting to call this init method as a constructor actually it's not a constructor.", 'start': 14460.844, 'duration': 6.882}, {'end': 14478.516, 'text': 'But it behaves like a constructor, because init is the closest thing we are going to get in Python to a constructor,', 'start': 14468.346, 'duration': 10.17}], 'summary': 'In python, the init method behaves like a constructor despite not being one.', 'duration': 32.677, 'max_score': 14445.839, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14445839.jpg'}, {'end': 14593.418, 'src': 'embed', 'start': 14570.885, 'weight': 3, 'content': [{'end': 14583.413, 'text': 'to print the value of speed and color I can use once again print and then first of all I am going to print the speed and then I am going to print the color attribute.', 'start': 14570.885, 'duration': 12.528}, {'end': 14589.656, 'text': 'and as soon as you do this and when you try to run this program, it will give you an error.', 'start': 14584.073, 'duration': 5.583}, {'end': 14593.418, 'text': 'so let me run the program and it will give me the error.', 'start': 14589.656, 'duration': 3.762}], 'summary': 'Printing speed and color attributes causes program error.', 'duration': 22.533, 'max_score': 14570.885, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14570885.jpg'}, {'end': 14730.841, 'src': 'embed', 'start': 14705.686, 'weight': 5, 'content': [{'end': 14711.832, 'text': 'So, let me just uncomment this code and let us run this code and it will give us an error.', 'start': 14705.686, 'duration': 6.146}, {'end': 14717.117, 'text': 'You can see this says that car object has no attribute called speed.', 'start': 14712.052, 'duration': 5.065}, {'end': 14719.177, 'text': 'So what is the error??', 'start': 14718.017, 'duration': 1.16}, {'end': 14730.841, 'text': "Because we have provided these attribute speed and color, but we haven't assigned these values to any attribute inside this car class.", 'start': 14719.698, 'duration': 11.143}], 'summary': 'Error due to attribute speed and color not assigned in car class.', 'duration': 25.155, 'max_score': 14705.686, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14705686.jpg'}, {'end': 14818.972, 'src': 'embed', 'start': 14790.235, 'weight': 1, 'content': [{'end': 14792.939, 'text': 'So self.color is equal to color.', 'start': 14790.235, 'duration': 2.704}, {'end': 14796.383, 'text': "Let me remove this semicolon because it's not required.", 'start': 14793.419, 'duration': 2.964}, {'end': 14803.172, 'text': 'And now when I run this code, you will see that there is no error now.', 'start': 14797.104, 'duration': 6.068}, {'end': 14810.501, 'text': 'So, because we have now used the self keyword to set the attributes of speed and color,', 'start': 14803.312, 'duration': 7.189}, {'end': 14817.269, 'text': 'so we can easily access the values of the speed and color using any object of the car class.', 'start': 14810.501, 'duration': 6.768}, {'end': 14818.972, 'text': 'So let me once again minimize this.', 'start': 14817.47, 'duration': 1.502}], 'summary': 'Using self keyword to set attributes of speed and color in the car class allows easy access to their values.', 'duration': 28.737, 'max_score': 14790.235, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14790235.jpg'}, {'end': 15009.217, 'src': 'embed', 'start': 14979.06, 'weight': 7, 'content': [{'end': 14989.344, 'text': "let me provide these values let's say 20 and 60 for the first rectangle and let's say 50 and 40 for the second rectangle.", 'start': 14979.06, 'duration': 10.284}, {'end': 14995.708, 'text': 'And when we run this code, let me just change the file here and then run the code.', 'start': 14989.944, 'duration': 5.764}, {'end': 14999.711, 'text': 'And you will see it will print the area once again here.', 'start': 14996.328, 'duration': 3.383}, {'end': 15009.217, 'text': 'So this init method is used to initialize your attributes or whatever you want to initialize at the start of your class.', 'start': 14999.951, 'duration': 9.266}], 'summary': 'The code calculates the area of two rectangles with dimensions 20x60 and 50x40 using an init method for attribute initialization.', 'duration': 30.157, 'max_score': 14979.06, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14979060.jpg'}, {'end': 15140.931, 'src': 'embed', 'start': 15109.375, 'weight': 8, 'content': [{'end': 15117.101, 'text': "So here I'm going to give this pass keyword, which means that this init method is an empty method.", 'start': 15109.375, 'duration': 7.726}, {'end': 15120.044, 'text': 'And let me create a second init method.', 'start': 15117.602, 'duration': 2.442}, {'end': 15126.546, 'text': "and this time I want to add one more parameter here, let's say name.", 'start': 15120.704, 'duration': 5.842}, {'end': 15132.748, 'text': "So we have provided two init methods here and let's see what happens.", 'start': 15127.806, 'duration': 4.942}, {'end': 15140.931, 'text': "So this is the instantiation of class where I haven't given any argument to this instantiation.", 'start': 15133.428, 'duration': 7.503}], 'summary': 'Demonstrating the use of pass keyword and creating two init methods with different parameters in a class.', 'duration': 31.556, 'max_score': 15109.375, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc15109375.jpg'}, {'end': 15313.903, 'src': 'embed', 'start': 15286.135, 'weight': 9, 'content': [{'end': 15295.079, 'text': 'So the answer is in my previous video, in which I have shown you how to provide default value to your arguments.', 'start': 15286.135, 'duration': 8.944}, {'end': 15299.762, 'text': "So let's say I provide a default value to my argument here.", 'start': 15295.52, 'duration': 4.242}, {'end': 15306.04, 'text': 'Now I will create two instances of the same class.', 'start': 15300.638, 'duration': 5.402}, {'end': 15310.562, 'text': 'One takes no argument and other takes one argument.', 'start': 15306.62, 'duration': 3.942}, {'end': 15313.903, 'text': 'And when I run this code, no error appears here.', 'start': 15311.002, 'duration': 2.901}], 'summary': 'Demonstrated providing default argument value, creating instances, and avoiding errors.', 'duration': 27.768, 'max_score': 15286.135, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc15286135.jpg'}, {'end': 15507.366, 'src': 'embed', 'start': 15478.309, 'weight': 2, 'content': [{'end': 15485.654, 'text': "So it's not necessary that all the attribute values you need to provide from this argument list.", 'start': 15478.309, 'duration': 7.345}, {'end': 15490.738, 'text': 'You can provide any default or static value here which is not coming as an argument.', 'start': 15485.854, 'duration': 4.884}, {'end': 15495.74, 'text': 'So I hope that clarifies some more details about this init method.', 'start': 15491.058, 'duration': 4.682}, {'end': 15499.842, 'text': 'In this video, we will learn how to use encapsulation in Python.', 'start': 15496.081, 'duration': 3.761}, {'end': 15507.366, 'text': 'Encapsulation is one of the most important principle in object oriented programming.', 'start': 15500.643, 'duration': 6.723}], 'summary': 'Encapsulation is crucial in oop; not all attribute values need to be provided in argument list.', 'duration': 29.057, 'max_score': 15478.309, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc15478309.jpg'}], 'start': 14292.479, 'title': 'Python classes and encapsulation', 'summary': 'Covers python class init methods and the self keyword, with examples on creating and initializing attributes for multiple instances. additionally, it explains encapsulation in python for data protection and private attribute usage.', 'chapters': [{'end': 14677.334, 'start': 14292.479, 'title': 'Python class and init method', 'summary': 'Covers the usage of init method in python to create a class, initialize attributes, and instantiate multiple instances, with an example of creating a car class and initializing speed and color attributes for multiple instances.', 'duration': 384.855, 'highlights': ['The init method is used as a constructor to initialize attributes or functions, and it is the first method called when creating an instance of a class.', 'The initiation of attributes using init method requires providing the required positional arguments, such as speed and color, when creating instances of the class.', 'The usage of init method in Python is not a true constructor, but it behaves like one, as it is the closest equivalent to a constructor in Python.']}, {'end': 14920.755, 'start': 14677.714, 'title': 'Understanding the self keyword in python', 'summary': "Discusses the usage of the 'self' keyword in python, explaining its significance in initializing object attributes and accessing them, along with practical demonstrations and conventions for its usage.", 'duration': 243.041, 'highlights': ["The 'self' keyword is essential in Python classes, serving as the first parameter of every method and indicating the current object, simplifying the initialization and access of object attributes.", "Using the 'self' keyword, we can easily assign the values of attributes like speed and color to the current object, enabling convenient access to these values using any object of the car class.", "The convention is to use the 'self' keyword as the first argument of every method inside a class, simplifying the indication of the current object and ensuring consistency in code structure."]}, {'end': 15140.931, 'start': 14920.755, 'title': 'Python class init method', 'summary': 'Discusses the use of the init method for initializing attributes in python classes, while also highlighting the importance of the self keyword and the implications of not using it, and the limitation of having multiple init methods in a class.', 'duration': 220.176, 'highlights': ['The init method is used to initialize attributes in Python classes, and it allows for the direct initialization of attributes using the self keyword, eliminating the need for separate initialization statements. This method streamlines the attribute initialization process, enhancing code readability and efficiency.', "The significance of the self keyword is emphasized, as it is automatically passed when initializing a class in Python, and its absence can result in errors, as demonstrated by the 'init takes zero arguments but given one' error.", 'The limitation of having multiple init methods within a class is demonstrated, showcasing that defining multiple init methods can lead to ambiguity and potential errors during class instantiation.']}, {'end': 15367.756, 'start': 15141.451, 'title': 'Python class init methods', 'summary': 'Explains the concept of python class init methods, highlighting that only the last init method defined in a class will be valid, and provides solutions for creating instances with different argument requirements through default values or using tuple parameters.', 'duration': 226.305, 'highlights': ['Only the last init method defined in a Python class will be considered as the main init method and all other init methods will be overwritten.', 'Providing default values to init method parameters allows creating instances with different argument requirements without errors.', 'Using tuple parameters in the init method allows providing multiple parameters and creating valid instances with different argument requirements.']}, {'end': 15863.145, 'start': 15367.756, 'title': 'Encapsulation in python', 'summary': 'Covers the concept of encapsulation in python, demonstrating how to use encapsulation to protect data, create setter and getter methods, and make attributes private using underscores and double underscores.', 'duration': 495.389, 'highlights': ['Encapsulation is one of the most important principles in object oriented programming.', 'Demonstration of using setter and getter methods for encapsulation: set_speed and get_speed methods are created to set and retrieve the speed attribute, showcasing the implementation of encapsulation.', 'Making attributes private using underscores and double underscores: The use of underscores and double underscores to create private attributes is explained, with examples of how it restricts access to attributes.']}], 'duration': 1570.666, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc14292479.jpg', 'highlights': ['The init method is used as a constructor to initialize attributes or functions, and it is the first method called when creating an instance of a class.', "The 'self' keyword is essential in Python classes, serving as the first parameter of every method and indicating the current object, simplifying the initialization and access of object attributes.", 'Encapsulation is one of the most important principles in object oriented programming.', 'The initiation of attributes using init method requires providing the required positional arguments, such as speed and color, when creating instances of the class.', 'The usage of init method in Python is not a true constructor, but it behaves like one, as it is the closest equivalent to a constructor in Python.', "Using the 'self' keyword, we can easily assign the values of attributes like speed and color to the current object, enabling convenient access to these values using any object of the car class.", "The convention is to use the 'self' keyword as the first argument of every method inside a class, simplifying the indication of the current object and ensuring consistency in code structure.", 'The init method is used to initialize attributes in Python classes, and it allows for the direct initialization of attributes using the self keyword, eliminating the need for separate initialization statements. This method streamlines the attribute initialization process, enhancing code readability and efficiency.', 'Only the last init method defined in a Python class will be considered as the main init method and all other init methods will be overwritten.', 'Providing default values to init method parameters allows creating instances with different argument requirements without errors.']}, {'end': 17239.238, 'segs': [{'end': 15890.395, 'src': 'embed', 'start': 15863.205, 'weight': 0, 'content': [{'end': 15866.965, 'text': 'There is no keywords like private in Python.', 'start': 15863.205, 'duration': 3.76}, {'end': 15876.307, 'text': "That's why Python uses this kind of convention in which whenever you use double underscores, it makes your data private.", 'start': 15867.425, 'duration': 8.882}, {'end': 15880.408, 'text': "When you use single underscore, that also means that it's a private variable.", 'start': 15876.447, 'duration': 3.961}, {'end': 15882.81, 'text': 'But this is only a convention.', 'start': 15880.848, 'duration': 1.962}, {'end': 15890.395, 'text': 'Nothing stops you to change the value of underscore b or accessing the value of underscore b.', 'start': 15883.31, 'duration': 7.085}], 'summary': "Python uses double underscores to make data private, but it's a convention and can still be accessed or changed.", 'duration': 27.19, 'max_score': 15863.205, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc15863205.jpg'}, {'end': 16047.145, 'src': 'embed', 'start': 16016.475, 'weight': 2, 'content': [{'end': 16029.138, 'text': "so let's create the setter and get a method for the color, And now we can access the value of color using the get color method right?", 'start': 16016.475, 'duration': 12.663}, {'end': 16038.142, 'text': "So instead of this get speed, we can just write four dot get color and it's going to give us the value of color.", 'start': 16029.658, 'duration': 8.484}, {'end': 16047.145, 'text': 'And now you can see that there is no error and the speed here is 300, which we have set using the set speed method.', 'start': 16038.742, 'duration': 8.403}], 'summary': 'Setter and getter methods allow access to color and speed values, with speed set to 300.', 'duration': 30.67, 'max_score': 16016.475, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc16016475.jpg'}, {'end': 16572.53, 'src': 'embed', 'start': 16541.453, 'weight': 3, 'content': [{'end': 16549.655, 'text': 'So I hope this video will clarify some more doubts about the private member variables and private methods in Python.', 'start': 16541.453, 'duration': 8.202}, {'end': 16552.937, 'text': 'In this video we will talk about Python inheritance.', 'start': 16549.956, 'duration': 2.981}, {'end': 16557.439, 'text': 'So, first of all, what is inheritance in Python??', 'start': 16553.738, 'duration': 3.701}, {'end': 16569.088, 'text': 'so classes in python can be extended, creating new classes, which retains the characteristics of a base class,', 'start': 16558.36, 'duration': 10.728}, {'end': 16572.53, 'text': 'and this process is known as inheritance.', 'start': 16569.088, 'duration': 3.442}], 'summary': 'Video clarifies doubts on private member vars and methods in python, also explains python inheritance.', 'duration': 31.077, 'max_score': 16541.453, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc16541453.jpg'}, {'end': 16978.347, 'src': 'embed', 'start': 16946.674, 'weight': 1, 'content': [{'end': 16951.136, 'text': "And let's say this triangle class also have this method which is area.", 'start': 16946.674, 'duration': 4.462}, {'end': 16960.98, 'text': 'Now what is the area of a triangle? The area of the triangle is the multiplication of width and height divided by 2.', 'start': 16951.736, 'duration': 9.244}, {'end': 16965.222, 'text': 'So we are going to divide the multiplication of width and height by 2.', 'start': 16960.98, 'duration': 4.242}, {'end': 16967.383, 'text': 'This is the area of the triangle.', 'start': 16965.222, 'duration': 2.161}, {'end': 16978.347, 'text': 'So now we have defined three different classes and we are saying that polygon is the superclass and rectangle and triangle is our subclasses.', 'start': 16967.743, 'duration': 10.604}], 'summary': 'Defined classes: polygon (superclass), rectangle, triangle (subclasses)', 'duration': 31.673, 'max_score': 16946.674, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc16946674.jpg'}], 'start': 15863.205, 'title': 'Python oop concepts', 'summary': 'Covers python private variables, encapsulation, and inheritance basics, emphasizing the use of double underscores for privacy, getter and setter methods, and practical examples of superclass and subclass relationships, showcasing inheritance and encapsulation in python.', 'chapters': [{'end': 16047.145, 'start': 15863.205, 'title': 'Python private variables', 'summary': 'Discusses creating private variables in python using double underscores, demonstrating how they restrict access to variables and the need for getter and setter methods, emphasizing the importance of using the convention for privacy.', 'duration': 183.94, 'highlights': ['Using double underscores in Python makes data private, restricting access to variables and enforcing privacy (e.g., changing the value of underscore b or accessing the value of underscore b).', 'Demonstrates the impact of using double underscores to make variables private, preventing access and modification through direct access (e.g., accessing the value using this ford object, which is underscore underscore speed).', 'Emphasizes the significance of adhering to the convention for privacy, illustrating the need for getter and setter methods to access private variables and avoid errors (e.g., accessing the value of color using the get color method to avoid errors).']}, {'end': 16445.028, 'start': 16047.746, 'title': 'Encapsulation in python', 'summary': 'Explains encapsulation in python, demonstrating how to declare private member variables using double underscores, restrict data access outside the class, and utilize private and public member variables and methods.', 'duration': 397.282, 'highlights': ['Encapsulation in Python', 'Private member variables', 'Private methods']}, {'end': 16967.383, 'start': 16445.149, 'title': 'Python inheritance basics', 'summary': "Explains the concept of inheritance in python, showcasing how new classes can inherit behaviors and methods from a base class, and the process of using private methods within a class. it also demonstrates a practical example of creating a superclass 'polygon' and its subclasses 'rectangle' and 'triangle'.", 'duration': 522.234, 'highlights': ['Inheritance in Python allows new classes to inherit behaviors and methods from a base class, creating a superclass and a subclass.', "Demonstrates the usage of private methods within a class by using the 'self' keyword to call private methods inside the class.", "Creation of a superclass 'polygon' and its subclasses 'rectangle' and 'triangle', showcasing the definition of common attributes and methods."]}, {'end': 17239.238, 'start': 16967.743, 'title': 'Inheritance in python classes', 'summary': 'Explains how to inherit properties from a superclass to subclasses in python, demonstrating the use of getter methods to access private member variables, and calculating the area of a rectangle and triangle using inherited methods.', 'duration': 271.495, 'highlights': ['Inheriting properties from superclass to subclasses', 'Using getter methods to access private member variables', 'Calculating the area of a rectangle and triangle using inherited methods']}], 'duration': 1376.033, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc15863205.jpg', 'highlights': ['Using double underscores in Python makes data private, restricting access to variables and enforcing privacy (e.g., changing the value of underscore b or accessing the value of underscore b).', "Creation of a superclass 'polygon' and its subclasses 'rectangle' and 'triangle', showcasing the definition of common attributes and methods.", 'Emphasizes the significance of adhering to the convention for privacy, illustrating the need for getter and setter methods to access private variables and avoid errors (e.g., accessing the value of color using the get color method to avoid errors).', 'Inheritance in Python allows new classes to inherit behaviors and methods from a base class, creating a superclass and a subclass.']}, {'end': 20572.044, 'segs': [{'end': 17963.966, 'src': 'heatmap', 'start': 17247.985, 'weight': 0.738, 'content': [{'end': 17251.709, 'text': 'And these getter methods are the public members.', 'start': 17247.985, 'duration': 3.724}, {'end': 17258.675, 'text': "Why they are public? Because we haven't used the double underscore in front of these two methods.", 'start': 17252.229, 'duration': 6.446}, {'end': 17266.662, 'text': 'And these two methods now we can use in place of these private member variables.', 'start': 17259.515, 'duration': 7.147}, {'end': 17274.567, 'text': 'which we were trying to inherit in the subclass using the superclass.', 'start': 17267.282, 'duration': 7.285}, {'end': 17281.071, 'text': 'So instead of underscore underscore width, we can write self dot get width.', 'start': 17274.987, 'duration': 6.084}, {'end': 17287.275, 'text': 'And also here, instead of underscore underscore height, we can use get height.', 'start': 17281.551, 'duration': 5.724}, {'end': 17290.377, 'text': 'Similarly, we will do the same for the triangle class.', 'start': 17287.515, 'duration': 2.862}, {'end': 17297.543, 'text': 'So get width and the get height dot get height.', 'start': 17290.397, 'duration': 7.146}, {'end': 17301.246, 'text': "Now let's run the program again and let's see what happens.", 'start': 17298.083, 'duration': 3.163}, {'end': 17309.072, 'text': 'And now when I run the code, it gives me the area of rectangle using this print line statement.', 'start': 17302.166, 'duration': 6.906}, {'end': 17316.037, 'text': "And then it's going to give me the area of triangle, which is exactly the half using this line of statement.", 'start': 17309.712, 'duration': 6.325}, {'end': 17321.481, 'text': "So let me once again minimize this and let's recap what we have learned.", 'start': 17316.337, 'duration': 5.144}, {'end': 17326.926, 'text': 'So we have created a superclass and two subclasses.', 'start': 17322.382, 'duration': 4.544}, {'end': 17332.07, 'text': 'Superclass is polygon and subclasses are rectangle and triangle.', 'start': 17327.466, 'duration': 4.604}, {'end': 17339.256, 'text': 'And in order to inherit from the superclass, you just use parentheses and the name of your superclass.', 'start': 17332.55, 'duration': 6.706}, {'end': 17345.501, 'text': 'And that means in our example, rectangle is inheriting from the polygon class.', 'start': 17339.536, 'duration': 5.965}, {'end': 17358.928, 'text': 'Next what we have learned is all the public member variables or the methods are accessible from the subclass from the superclass.', 'start': 17346.501, 'duration': 12.427}, {'end': 17369.134, 'text': 'So set value method and get value method is accessible because they are public methods but underscore underscore width.', 'start': 17359.529, 'duration': 9.605}, {'end': 17375.377, 'text': 'and underscore underscore height are not accessible because they are the private member variables.', 'start': 17369.654, 'duration': 5.723}, {'end': 17381.561, 'text': 'So you cannot inherit the private member variables into your subclasses.', 'start': 17375.597, 'duration': 5.964}, {'end': 17394.865, 'text': 'Now we have seen this example in which we have created two instance of the classes one is rectangle objects from the rectangle class and the other is triangle object from the triangle class.', 'start': 17381.821, 'duration': 13.044}, {'end': 17397.366, 'text': 'and first of all we have used the set method,', 'start': 17394.865, 'duration': 2.501}, {'end': 17407.328, 'text': "which is coming from the polygon class it's not the part of the rectangle or the triangle class to set the values of width and height,", 'start': 17397.366, 'duration': 9.962}, {'end': 17415.01, 'text': 'and then we have just called the area method from these two classes in order to give us the area.', 'start': 17407.328, 'duration': 7.682}, {'end': 17418.931, 'text': 'So this set method is used to set the value.', 'start': 17415.49, 'duration': 3.441}, {'end': 17433.153, 'text': 'So it has set the value of width and height and using this get method get width and get height this value is returned and this value is returned into the subclasses,', 'start': 17418.951, 'duration': 14.202}, {'end': 17441.975, 'text': 'and then the multiplication of these two values gives us the area here, and the multiplication of these values, divided by two,', 'start': 17433.153, 'duration': 8.822}, {'end': 17444.135, 'text': 'gives the area of the triangle here.', 'start': 17441.975, 'duration': 2.16}, {'end': 17448.016, 'text': 'So this is how you can use inheritance in Python.', 'start': 17444.335, 'duration': 3.681}, {'end': 17451.898, 'text': 'Hey guys, welcome to the next video on Python tutorial for beginners.', 'start': 17448.917, 'duration': 2.981}, {'end': 17456.919, 'text': 'In this video, we will discuss how to create modules in Python.', 'start': 17452.478, 'duration': 4.441}, {'end': 17464.282, 'text': 'Now in the previous videos, I have already discussed briefly about built-in modules.', 'start': 17457.82, 'duration': 6.462}, {'end': 17467.123, 'text': 'and how to import a built-in module.', 'start': 17464.922, 'duration': 2.201}, {'end': 17474.767, 'text': 'you use a import keyword and then you use the name of the built-in module in python.', 'start': 17467.123, 'duration': 7.644}, {'end': 17479.73, 'text': 'built-in means this module is already present in python.', 'start': 17474.767, 'duration': 4.963}, {'end': 17485.353, 'text': 'so we can use these built-in module in order to perform some functionality.', 'start': 17479.73, 'duration': 5.623}, {'end': 17490.856, 'text': 'so, for example, this math module helps us to perform some mathematical operations.', 'start': 17485.353, 'duration': 5.503}, {'end': 17494.359, 'text': 'Now, first of all, what is a module?', 'start': 17491.696, 'duration': 2.663}, {'end': 17501.846, 'text': 'So it turns out that a module is nothing but a Python file.', 'start': 17495.3, 'duration': 6.546}, {'end': 17512.617, 'text': 'Now to prove my point, let me just hover over this math module and just press control and then hover over it.', 'start': 17502.727, 'duration': 9.89}, {'end': 17520.34, 'text': "So right now I'm pressing control and I'm hovering my mouse over this math on the PyCharm IDE.", 'start': 17513.417, 'duration': 6.923}, {'end': 17522.581, 'text': "and now I'm going to click it.", 'start': 17520.34, 'duration': 2.241}, {'end': 17527.703, 'text': 'and when I click it, you will see this module is nothing but a file.', 'start': 17522.581, 'duration': 5.122}, {'end': 17540.21, 'text': 'right and inside this module we have number of functions which we can use, for example a cos function or a tan function,', 'start': 17527.703, 'duration': 12.507}, {'end': 17545.814, 'text': 'or many different functions which we can use from this math module.', 'start': 17540.21, 'duration': 5.604}, {'end': 17549.897, 'text': 'so a module is nothing but a python file.', 'start': 17545.814, 'duration': 4.083}, {'end': 17555.7, 'text': "now, if a module is nothing but a python file, Why don't we create a module?", 'start': 17549.897, 'duration': 5.803}, {'end': 17561.301, 'text': 'And it turns out that Python allows us to create our own modules.', 'start': 17556.14, 'duration': 5.161}, {'end': 17564.282, 'text': "So let's create our own modules.", 'start': 17561.941, 'duration': 2.341}, {'end': 17567.903, 'text': 'And let me show you how you can create your own module.', 'start': 17564.442, 'duration': 3.461}, {'end': 17574.144, 'text': 'And right now, you can see in my project there is only one file, which is hello.py.', 'start': 17568.363, 'duration': 5.781}, {'end': 17576.845, 'text': "And it's empty right now.", 'start': 17574.904, 'duration': 1.941}, {'end': 17581.087, 'text': "Now to create a module, I'm going to just create a new file.", 'start': 17577.685, 'duration': 3.402}, {'end': 17584.169, 'text': 'So right click and then new Python file.', 'start': 17581.127, 'duration': 3.042}, {'end': 17590.412, 'text': "And this module, I'm going to name it as my functions and then press OK.", 'start': 17584.389, 'duration': 6.023}, {'end': 17591.773, 'text': 'And this file is created.', 'start': 17590.632, 'duration': 1.141}, {'end': 17594.314, 'text': 'So now I have two files in my project.', 'start': 17591.853, 'duration': 2.461}, {'end': 17597.976, 'text': 'One is my functions and other is hello.py.', 'start': 17594.855, 'duration': 3.121}, {'end': 17603.88, 'text': "So let's say I want to create some functions inside this my functions.py file.", 'start': 17598.217, 'duration': 5.663}, {'end': 17606.8, 'text': "So let's create some function.", 'start': 17604.54, 'duration': 2.26}, {'end': 17615.982, 'text': "I'm going to very quickly create some very basic functions which you already know in Python.", 'start': 17606.84, 'duration': 9.142}, {'end': 17621.523, 'text': "So let's say add function, which returns the addition of two numbers.", 'start': 17616.662, 'duration': 4.861}, {'end': 17625.884, 'text': "And also let's create, let's say, multiply functions.", 'start': 17621.963, 'duration': 3.921}, {'end': 17631.365, 'text': 'So multiply, and this is going to just give the product of two numbers.', 'start': 17625.984, 'duration': 5.381}, {'end': 17636.491, 'text': "So let's say this is our module and it has two functions.", 'start': 17632.125, 'duration': 4.366}, {'end': 17647.664, 'text': 'Now somehow I need to use these two functions from my functions.py file into this hello.py file.', 'start': 17637.231, 'duration': 10.433}, {'end': 17653.629, 'text': 'Now as you can see these two files are in the same directory, right.', 'start': 17648.405, 'duration': 5.224}, {'end': 17664.017, 'text': "So I can import this my functions file using import and then the name of the file which is my functions and that's it.", 'start': 17654.129, 'duration': 9.888}, {'end': 17675.407, 'text': 'So in order to import a module, you just write a keyword called import and then you just write the name of the file without the extension py.', 'start': 17664.457, 'duration': 10.95}, {'end': 17680.853, 'text': "okay, so you don't need to provide any extension here and then i can use this function.", 'start': 17675.407, 'duration': 5.446}, {'end': 17686.378, 'text': "so let's say i want to print my function, which is the file name.", 'start': 17680.853, 'duration': 5.525}, {'end': 17691.003, 'text': 'so whatever file name you give here, you need to use the file name here.', 'start': 17686.378, 'duration': 4.625}, {'end': 17699.37, 'text': 'dot. you will see all the functions in the file are now visible in the other file, which is hello dot py.', 'start': 17691.784, 'duration': 7.586}, {'end': 17705.635, 'text': "so let's use this add function and i'm going to just give two parameters here.", 'start': 17699.37, 'duration': 6.265}, {'end': 17716.603, 'text': "and also let's use the multiply function from the my functions file, so the file name and the method name or the function name.", 'start': 17705.635, 'duration': 10.968}, {'end': 17720.766, 'text': "and let's give two parameters here also, and that's it.", 'start': 17716.603, 'duration': 4.163}, {'end': 17729.451, 'text': "so it's that simple to create your own modules and import them into other files in python.", 'start': 17720.766, 'duration': 8.685}, {'end': 17738.757, 'text': 'now, when i run this program is going to give me the addition and the product of these two argument which i have provided here.', 'start': 17729.451, 'duration': 9.306}, {'end': 17746.88, 'text': "now let's say, your my functions file is in some other directory.", 'start': 17739.858, 'duration': 7.022}, {'end': 17748.501, 'text': 'so let me create a directory.', 'start': 17746.88, 'duration': 1.621}, {'end': 17756.164, 'text': "so i'm going to right click here and then i'm going to create a directory and i'm going to name it as dir and then click ok.", 'start': 17748.501, 'duration': 7.663}, {'end': 17764.432, 'text': "and now i'm going to move this, my functions dot py file, into the new directory.", 'start': 17757.384, 'duration': 7.048}, {'end': 17772.782, 'text': "so i'm going to just right click and cut from here this file and i'm going to just paste this file into the dir directory.", 'start': 17764.432, 'duration': 8.35}, {'end': 17775.525, 'text': 'okay, so let me just click ok here.', 'start': 17772.782, 'duration': 2.743}, {'end': 17783.432, 'text': 'And as soon as I do this, you will see here, PyCharm is intelligent enough to refactor this code.', 'start': 17776.165, 'duration': 7.267}, {'end': 17787.556, 'text': 'And now it has given us the correct import.', 'start': 17783.913, 'duration': 3.643}, {'end': 17795.524, 'text': 'So if this my functions file is in some directory, then you use this type of notation.', 'start': 17787.997, 'duration': 7.527}, {'end': 17798.747, 'text': 'So you write from and then your directory name.', 'start': 17795.744, 'duration': 3.003}, {'end': 17802.83, 'text': 'and then import keyword and then your file name.', 'start': 17799.427, 'duration': 3.403}, {'end': 17806.832, 'text': 'So you can see this is the directory name and this is the file name.', 'start': 17803.03, 'duration': 3.802}, {'end': 17811.235, 'text': 'So I use from directory name, import file name.', 'start': 17807.413, 'duration': 3.822}, {'end': 17816.299, 'text': "And when I run the code once again, it's going to give me the same answer.", 'start': 17811.936, 'duration': 4.363}, {'end': 17823.706, 'text': 'Now there is one more way of writing the same notation and that is using the import.', 'start': 17817.159, 'duration': 6.547}, {'end': 17831.114, 'text': 'So use import keyword and then write the name of your directory dot the name of your file.', 'start': 17823.746, 'duration': 7.368}, {'end': 17833.176, 'text': 'So directory dot the file name.', 'start': 17831.214, 'duration': 1.962}, {'end': 17841.859, 'text': 'And then you use this name in place of your my function name.', 'start': 17833.977, 'duration': 7.882}, {'end': 17846.32, 'text': 'OK And once again, when you run the code, it runs fine.', 'start': 17842.359, 'duration': 3.961}, {'end': 17853.742, 'text': 'Now, sometimes you might feel that this is a long name and Python have the solution for it also.', 'start': 17846.62, 'duration': 7.122}, {'end': 17863.025, 'text': 'So it turns out that you can rename your file using a keyword called as.', 'start': 17854.562, 'duration': 8.463}, {'end': 17872.028, 'text': 'So after the import, so import directory name dot file name as, and then you can provide your name.', 'start': 17863.705, 'duration': 8.323}, {'end': 17882.752, 'text': 'For example, my functions, I will just name it as MF, okay? And now I can use this MF name instead of this big name.', 'start': 17872.068, 'duration': 10.684}, {'end': 17886.433, 'text': 'and this will also work fine.', 'start': 17883.892, 'duration': 2.541}, {'end': 17896.055, 'text': 'so either you can import from your file, which is inside the directory, using this notation, or you can use this notation.', 'start': 17886.433, 'duration': 9.622}, {'end': 17907.638, 'text': 'you can also write, as in front of this notation, also so, from directory name, import file name as whatever name you want to give here,', 'start': 17896.055, 'duration': 11.583}, {'end': 17913.079, 'text': 'and this you can use to call your function using this dot notation.', 'start': 17907.638, 'duration': 5.441}, {'end': 17924.608, 'text': 'Now, this was the easy stuff and I have just written here the two functions and then imported these two functions into the other file.', 'start': 17913.439, 'duration': 11.169}, {'end': 17934.196, 'text': "But what if I have multiple classes? I haven't shown you how to import files which have classes in them.", 'start': 17925.149, 'duration': 9.047}, {'end': 17939.561, 'text': "So let's see how to import the Python files which have classes inside them.", 'start': 17934.537, 'duration': 5.024}, {'end': 17953.495, 'text': "So I'm going to close these two files and in the last video i have shown you how to use inheritance in python and we have created this class polygon and two other classes,", 'start': 17939.621, 'duration': 13.874}, {'end': 17963.966, 'text': 'which is triangle and the rectangle class, and this might be right now the perfect candidate to import into some other file.', 'start': 17953.495, 'duration': 10.471}], 'summary': 'The transcript discusses inheritance in python by creating superclass and subclasses, and also explains how to create and import modules in python.', 'duration': 715.981, 'max_score': 17247.985, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc17247985.jpg'}, {'end': 17433.153, 'src': 'embed', 'start': 17407.328, 'weight': 0, 'content': [{'end': 17415.01, 'text': 'and then we have just called the area method from these two classes in order to give us the area.', 'start': 17407.328, 'duration': 7.682}, {'end': 17418.931, 'text': 'So this set method is used to set the value.', 'start': 17415.49, 'duration': 3.441}, {'end': 17433.153, 'text': 'So it has set the value of width and height and using this get method get width and get height this value is returned and this value is returned into the subclasses,', 'start': 17418.951, 'duration': 14.202}], 'summary': "Classes' methods set and get values for area calculation.", 'duration': 25.825, 'max_score': 17407.328, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc17407328.jpg'}, {'end': 19018.385, 'src': 'heatmap', 'start': 18300.65, 'weight': 0.752, 'content': [{'end': 18305.634, 'text': "And this method I'm going to define a private variable called color.", 'start': 18300.65, 'duration': 4.984}, {'end': 18309.297, 'text': "And I'm going to initialize it with the value none.", 'start': 18306.054, 'duration': 3.243}, {'end': 18313.3, 'text': "And then I'm going to define the setter and getter for this color attribute.", 'start': 18309.617, 'duration': 3.683}, {'end': 18314.501, 'text': "So let's define those.", 'start': 18313.32, 'duration': 1.181}, {'end': 18328.453, 'text': 'So now we have defined the setter and getter for this color attribute.', 'start': 18324.352, 'duration': 4.101}, {'end': 18338.077, 'text': 'Now, if you remember what I told you about inheritance, and that is, whenever you want to do inheritance between a superclass and the subclass,', 'start': 18328.754, 'duration': 9.323}, {'end': 18343.219, 'text': 'there is a relationship between the subclass and the superclass.', 'start': 18338.077, 'duration': 5.142}, {'end': 18346.22, 'text': 'So rectangle is a shape.', 'start': 18344.039, 'duration': 2.181}, {'end': 18348.801, 'text': 'And triangle is also a shape.', 'start': 18346.94, 'duration': 1.861}, {'end': 18357.843, 'text': 'So that means we can also use this shape class as the superclass in rectangle and the triangle classes.', 'start': 18349.221, 'duration': 8.622}, {'end': 18366.165, 'text': "So let's use the shape class into the rectangle and triangle class as the superclass.", 'start': 18358.483, 'duration': 7.682}, {'end': 18373.147, 'text': "So first of all, I'm going to import this shape class from the shape file.", 'start': 18366.705, 'duration': 6.442}, {'end': 18374.467, 'text': "So let's import this.", 'start': 18373.227, 'duration': 1.24}, {'end': 18379.389, 'text': 'same I will do in the triangle class also.', 'start': 18375.607, 'duration': 3.782}, {'end': 18384.191, 'text': 'and now how to inherit from multiple classes into our subclasses.', 'start': 18379.389, 'duration': 4.802}, {'end': 18395.455, 'text': 'so we have already inherited from the polygon class and in order to add one more class here you just need a comma separator and the name of your class.', 'start': 18384.191, 'duration': 11.264}, {'end': 18398.837, 'text': 'so this is how you inherit from multiple classes.', 'start': 18395.455, 'duration': 3.382}, {'end': 18405.82, 'text': 'you just use the parenthesis and then the name of your classes separated by the comma.', 'start': 18398.837, 'duration': 6.983}, {'end': 18414.585, 'text': 'That means the triangle class is inheriting from the polygon class as well as the shape class.', 'start': 18406.441, 'duration': 8.144}, {'end': 18418.127, 'text': 'The same we will do in the rectangle class.', 'start': 18415.185, 'duration': 2.942}, {'end': 18422.489, 'text': 'I will just provide the comma here and then I will just write shape here.', 'start': 18418.187, 'duration': 4.302}, {'end': 18425.591, 'text': 'And now I will go to the main.py file.', 'start': 18422.729, 'duration': 2.862}, {'end': 18435.857, 'text': 'And once you do the multiple inheritance, that means all the public methods of the shape class is available in the subclasses,', 'start': 18426.011, 'duration': 9.846}, {'end': 18438.858, 'text': 'which are triangle and the rectangle.', 'start': 18435.857, 'duration': 3.001}, {'end': 18442.16, 'text': 'So I can use this kind of notation.', 'start': 18439.239, 'duration': 2.921}, {'end': 18448.584, 'text': "First of all, I'm going to use rectangle class to call the method called setColor.", 'start': 18442.22, 'duration': 6.364}, {'end': 18455.268, 'text': "so I'm going to set color from here, and let's say the rectangle color is red,", 'start': 18448.584, 'duration': 6.684}, {'end': 18465.314, 'text': "and then I'm going to use the triangle object to call the setColor method once again, and the color I want to provide here is, let's say, blue.", 'start': 18455.268, 'duration': 10.046}, {'end': 18477.884, 'text': 'okay, and in order to get those two color values, we can once again write print The instance name, which is rectangle dot, get color,', 'start': 18465.314, 'duration': 12.57}, {'end': 18481.487, 'text': 'and same we will do for the triangle object also.', 'start': 18477.884, 'duration': 3.603}, {'end': 18487.854, 'text': "So print triangle dot get color and that's it.", 'start': 18481.587, 'duration': 6.267}, {'end': 18498.999, 'text': 'So now all the public method of the shape class is also available in our rectangle and the triangle classes.', 'start': 18488.394, 'duration': 10.605}, {'end': 18504.402, 'text': 'And we can use all the public methods of this shape class into the subclasses.', 'start': 18499.179, 'duration': 5.223}, {'end': 18507.283, 'text': "And let's run the code and let's see what happens.", 'start': 18504.882, 'duration': 2.401}, {'end': 18515.447, 'text': 'So the code is running and you can see it prints red and blue using these two statements.', 'start': 18508.023, 'duration': 7.424}, {'end': 18519.448, 'text': 'So this is how you can do multiple inheritance in Python.', 'start': 18516.087, 'duration': 3.361}, {'end': 18527.249, 'text': "In this video, I'm going to show you how you can use a built-in function called super in your Python classes.", 'start': 18519.788, 'duration': 7.461}, {'end': 18529.05, 'text': "So let's get started.", 'start': 18528.129, 'duration': 0.921}, {'end': 18532.11, 'text': 'So to start with, I have two classes here.', 'start': 18529.73, 'duration': 2.38}, {'end': 18535.891, 'text': 'One is the parent class and other is the child class.', 'start': 18532.37, 'duration': 3.521}, {'end': 18545.293, 'text': 'And here, parent class acts like a super class and the child class acts like a subclass, which is inheriting from the parent class.', 'start': 18536.451, 'duration': 8.842}, {'end': 18553.238, 'text': 'Now both these classes have this init function and you already know what does this init function do.', 'start': 18546.093, 'duration': 7.145}, {'end': 18559.363, 'text': 'It is the first function which is called when an instance of a class is created.', 'start': 18553.479, 'duration': 5.884}, {'end': 18562.925, 'text': 'And here I am just creating the object from the child class.', 'start': 18559.643, 'duration': 3.282}, {'end': 18565.748, 'text': 'Now, what do you think will happen??', 'start': 18563.826, 'duration': 1.922}, {'end': 18569.27, 'text': 'will this constructor will be called?', 'start': 18566.528, 'duration': 2.742}, {'end': 18575.954, 'text': 'or this constructor will be called because we are inheriting from the parent class into the child class.', 'start': 18569.27, 'duration': 6.684}, {'end': 18576.854, 'text': "so let's find out.", 'start': 18575.954, 'duration': 0.9}, {'end': 18581.137, 'text': "so i'm going to run this code and it prints child in it.", 'start': 18576.854, 'duration': 4.283}, {'end': 18589.922, 'text': 'that means this statement under the child class init method is executed and this method is not executed.', 'start': 18581.137, 'duration': 8.785}, {'end': 18597.784, 'text': 'Now, in some cases you might want to pass some parameters also into your superclass.', 'start': 18590.302, 'duration': 7.482}, {'end': 18601.185, 'text': "For example, I'm just going to give this example.", 'start': 18597.844, 'duration': 3.341}, {'end': 18609.207, 'text': "Let's say I want to pass an argument called name here and then I will just print the value of name.", 'start': 18601.245, 'duration': 7.962}, {'end': 18616.111, 'text': 'How can I call this init function using this child class instance?', 'start': 18609.887, 'duration': 6.224}, {'end': 18626.917, 'text': 'So it turns out that there is a function called super in Python that allows us to refer to the super class implicitly.', 'start': 18616.351, 'duration': 10.566}, {'end': 18639.303, 'text': 'now this super function is a built-in function which returns a proxy object that allows you to refer to your super class.', 'start': 18627.757, 'duration': 11.546}, {'end': 18641.804, 'text': "so let's try to use this super function.", 'start': 18639.303, 'duration': 2.501}, {'end': 18648.128, 'text': 'so you just use the keyword super and then give these parentheses, because this is a function,', 'start': 18641.804, 'duration': 6.324}, {'end': 18653.13, 'text': 'and then this super function will return the proxy object of the super class.', 'start': 18648.128, 'duration': 5.002}, {'end': 18659.995, 'text': 'that means i can use this dot operator to call the init method from the super class.', 'start': 18653.13, 'duration': 6.865}, {'end': 18671.485, 'text': 'so this notation means super.init means we are calling the init method from the parent class and that means we can pass the name from here.', 'start': 18659.995, 'duration': 11.49}, {'end': 18672.826, 'text': "so let's just pass this name.", 'start': 18671.485, 'duration': 1.341}, {'end': 18681.613, 'text': "i'm going to just write max here and now i'm going to run this code And now you will see that child init is printed.", 'start': 18672.826, 'duration': 8.787}, {'end': 18686.877, 'text': 'using this statement first of all and then using the super function,', 'start': 18681.613, 'duration': 5.264}, {'end': 18696.905, 'text': 'the init method of the parent class is called and then this name is passed here and it prints parent init and the name,', 'start': 18686.877, 'duration': 10.028}, {'end': 18698.787, 'text': 'whatever name we have provided here.', 'start': 18696.905, 'duration': 1.882}, {'end': 18703.81, 'text': 'So this super function allows us to refer to the super class.', 'start': 18699.227, 'duration': 4.583}, {'end': 18708.553, 'text': 'Now let me show you one more thing, which is called the method resolution order,', 'start': 18704.09, 'duration': 4.463}, {'end': 18714.437, 'text': 'and you can find this method resolution order by using your class name.', 'start': 18708.553, 'duration': 5.884}, {'end': 18718.1, 'text': 'so child class name dot underscore underscore.', 'start': 18714.437, 'duration': 3.663}, {'end': 18721.461, 'text': 'So just write underscore underscore.', 'start': 18719.821, 'duration': 1.64}, {'end': 18723.162, 'text': 'MRO underscore underscore.', 'start': 18721.461, 'duration': 1.701}, {'end': 18726.704, 'text': "And this statement I'm going to use inside the print function.", 'start': 18723.342, 'duration': 3.362}, {'end': 18729.746, 'text': 'So we can see the result, what it returns.', 'start': 18727.164, 'duration': 2.582}, {'end': 18731.467, 'text': "So I'm going to run the code now.", 'start': 18729.806, 'duration': 1.661}, {'end': 18734.969, 'text': 'And you can see it returns this kind of order.', 'start': 18732.247, 'duration': 2.722}, {'end': 18740.372, 'text': 'So as the name suggests, MRO stands for method resolution order.', 'start': 18735.409, 'duration': 4.963}, {'end': 18750.178, 'text': 'And this is the order in which the methods are called inside your child class or the parent class.', 'start': 18741.152, 'duration': 9.026}, {'end': 18761.446, 'text': 'and this order means that all the method in the child class will be executed first and then all the method in the parent class will be executed.', 'start': 18750.178, 'duration': 11.268}, {'end': 18769.652, 'text': 'Now there are some rules based upon which this order is calculated, and these rules are.', 'start': 18762.206, 'duration': 7.446}, {'end': 18781.862, 'text': 'the first rule is the method inside your subclass are always called first and then, whatever the method inside the base class, they will be called.', 'start': 18769.652, 'duration': 12.21}, {'end': 18785.424, 'text': 'and the second rule is related to multiple inheritance.', 'start': 18781.862, 'duration': 3.562}, {'end': 18790.288, 'text': "so let me just create the second parent class and I'm going to name it as parent2,", 'start': 18785.424, 'duration': 4.864}, {'end': 18801.152, 'text': "and here also i'm going to just write parent2 here and let me inherit from the parent2 also in the child class right,", 'start': 18791.409, 'duration': 9.743}, {'end': 18806.053, 'text': "and let's run the code once again and now you will see this order.", 'start': 18801.152, 'duration': 4.901}, {'end': 18813.255, 'text': 'so once again, child is printed and then the parent and then parent2 and then the object.', 'start': 18806.053, 'duration': 7.202}, {'end': 18823.085, 'text': 'So the second thing on which the MRO depends upon is the order in which you inherit from the parent class or the superclass.', 'start': 18813.755, 'duration': 9.33}, {'end': 18830.533, 'text': 'So in our example, we were inheriting from the parent class first of all and then parent 2.', 'start': 18823.345, 'duration': 7.188}, {'end': 18834.657, 'text': 'and in the same order, this MRO also will be decided.', 'start': 18830.533, 'duration': 4.124}, {'end': 18842.364, 'text': 'so all the method in the child class will be executed first and then all the methods inside the parent class,', 'start': 18834.657, 'duration': 7.707}, {'end': 18849.57, 'text': 'whatever you use first here will be executed and then whatever superclass you write after that,', 'start': 18842.364, 'duration': 7.206}, {'end': 18856.176, 'text': 'those method inside the class or superclass will be executed next and then at last.', 'start': 18849.57, 'duration': 6.606}, {'end': 18857.477, 'text': 'this is the base object.', 'start': 18856.176, 'duration': 1.301}, {'end': 18860.759, 'text': "Now let's try to just reverse this order.", 'start': 18857.717, 'duration': 3.042}, {'end': 18863.301, 'text': "And once again, let's run the code.", 'start': 18861.54, 'duration': 1.761}, {'end': 18866.923, 'text': 'And you will see that this order will be reversed.', 'start': 18863.921, 'duration': 3.002}, {'end': 18878.951, 'text': 'So the method resolution order will tell you which class method will be executed first, and then the order of all the methods from the superclasses.', 'start': 18867.303, 'duration': 11.648}, {'end': 18883.974, 'text': 'Now one more interesting thing which you will observe here is this output.', 'start': 18879.852, 'duration': 4.122}, {'end': 18893.905, 'text': 'So I said that this super function is used to refer to the super class and now we have two super classes.', 'start': 18884.975, 'duration': 8.93}, {'end': 18906.698, 'text': 'that means multiple inheritance and you will see here that only one output is printed, which is from the init method inside the parent 2,', 'start': 18893.905, 'duration': 12.793}, {'end': 18914.285, 'text': 'and this statement is not printed, which is inside the init method, inside the parent class.', 'start': 18906.698, 'duration': 7.587}, {'end': 18916.527, 'text': 'so how to solve this problem?', 'start': 18914.285, 'duration': 2.242}, {'end': 18928.019, 'text': 'so if you have multiple inheritance, Then you need to manually call these init function using the class name.', 'start': 18916.527, 'duration': 11.492}, {'end': 18932.304, 'text': "So let's say I want to call the init function first of all from the parent2 class.", 'start': 18928.18, 'duration': 4.124}, {'end': 18934.026, 'text': 'I will use parent2.', 'start': 18932.765, 'duration': 1.261}, {'end': 18943.771, 'text': 'dot init and then you need to give also the self as the first parameter and the second, which is the name.', 'start': 18934.967, 'duration': 8.804}, {'end': 18944.652, 'text': 'in the same way.', 'start': 18943.771, 'duration': 0.881}, {'end': 18954.936, 'text': 'you use the second class, which is parent dot init function, and then first parameter is the self and then you can pass any other name,', 'start': 18944.652, 'duration': 10.284}, {'end': 18955.917, 'text': 'for example tom, here.', 'start': 18954.936, 'duration': 0.981}, {'end': 18965.862, 'text': 'And let me run the code and you will see it calls first of all parent2 init function and we have passed max here as the name,', 'start': 18957.137, 'duration': 8.725}, {'end': 18972.385, 'text': 'and then it calls the parent1 init function with the name tom, which is printed here also.', 'start': 18965.862, 'duration': 6.523}, {'end': 18976.561, 'text': 'So this is how you can use super function in Python.', 'start': 18972.659, 'duration': 3.902}, {'end': 18983.585, 'text': "In this video, I'm going to show you what is composition and how to use class composition in Python.", 'start': 18976.761, 'duration': 6.824}, {'end': 18987.466, 'text': 'So to start with, I have two classes here.', 'start': 18984.265, 'duration': 3.201}, {'end': 18991.909, 'text': 'One is an employee class and other is the salary class.', 'start': 18987.887, 'duration': 4.022}, {'end': 18995.651, 'text': 'Now, in the salary class, I have this init method,', 'start': 18992.589, 'duration': 3.062}, {'end': 19003.056, 'text': 'which takes two argument pay and bonus and it sets these two arguments to the member variables of this class.', 'start': 18995.651, 'duration': 7.405}, {'end': 19008.459, 'text': 'Also I have a method called annual salary which is used to calculate the salary.', 'start': 19003.696, 'duration': 4.763}, {'end': 19018.385, 'text': 'Now in the employee class I have this constructor which takes four arguments which is name, age, pay and bonus.', 'start': 19009.3, 'duration': 9.085}], 'summary': 'The transcript covers inheritance, multiple inheritance, super function, method resolution order, and class composition in python.', 'duration': 717.735, 'max_score': 18300.65, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc18300650.jpg'}, {'end': 19063.5, 'src': 'embed', 'start': 19034.019, 'weight': 4, 'content': [{'end': 19041.465, 'text': "But somehow I want to delegate the responsibility of calculating the employee's salary to the salary class,", 'start': 19034.019, 'duration': 7.446}, {'end': 19045.268, 'text': 'because calculating salary is in itself is a big task.', 'start': 19041.465, 'duration': 3.803}, {'end': 19045.809, 'text': 'I have just.', 'start': 19045.348, 'duration': 0.461}, {'end': 19052.853, 'text': 'We have simplified this class in the form of just calculating the annual salary,', 'start': 19046.069, 'duration': 6.784}, {'end': 19063.5, 'text': 'but the employee can have his own taxes or he has taken some leaves or many factors affects the salary of an employee.', 'start': 19052.853, 'duration': 10.647}], 'summary': "Delegating salary calculation to salary class for employee's annual salary with consideration of taxes, leaves, and other factors.", 'duration': 29.481, 'max_score': 19034.019, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc19034019.jpg'}, {'end': 19317.855, 'src': 'embed', 'start': 19261.037, 'weight': 1, 'content': [{'end': 19268.161, 'text': 'now, one interesting thing which you will notice here is we are not instantiating salary here.', 'start': 19261.037, 'duration': 7.124}, {'end': 19273.866, 'text': 'we are just instantiating the salary inside an employee class.', 'start': 19268.161, 'duration': 5.705}, {'end': 19283.074, 'text': 'so as soon as you delete an instance of an employee, the salary class instance will be automatically deleted.', 'start': 19273.866, 'duration': 9.208}, {'end': 19291.321, 'text': "so whenever you want to delegate some responsibility of one class to the another class, it's called composition.", 'start': 19283.074, 'duration': 8.247}, {'end': 19298.026, 'text': 'one more example of composition can be book class and a chapter class.', 'start': 19291.321, 'duration': 6.705}, {'end': 19303.268, 'text': 'so a chapter is not a book and book is not a chapter.', 'start': 19298.026, 'duration': 5.242}, {'end': 19309.651, 'text': 'but we can delegate some responsibility from a book class to the chapter class.', 'start': 19303.268, 'duration': 6.383}, {'end': 19312.632, 'text': 'so this is how you can use composition in Python.', 'start': 19309.651, 'duration': 2.981}, {'end': 19317.855, 'text': 'in the last video, we have seen how to use composition between classes in Python.', 'start': 19312.632, 'duration': 5.223}], 'summary': 'Composition in python allows delegating class responsibilities, e.g., salary and employee instances.', 'duration': 56.818, 'max_score': 19261.037, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc19261037.jpg'}, {'end': 19838.482, 'src': 'embed', 'start': 19809.401, 'weight': 3, 'content': [{'end': 19820.667, 'text': 'The second thing is I want to make sure that both these methods which are there inside the shape class are implemented inside the square class.', 'start': 19809.401, 'duration': 11.266}, {'end': 19831.476, 'text': 'So I want to make sure that whoever is using this shape class, he or she must implement these two methods inside the subclass.', 'start': 19821.068, 'duration': 10.408}, {'end': 19838.482, 'text': 'So how can I achieve these two things? Now it turns out that abstract classes are just made for that.', 'start': 19831.836, 'duration': 6.646}], 'summary': 'Ensure implementation of methods in subclass using abstract classes.', 'duration': 29.081, 'max_score': 19809.401, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc19809401.jpg'}], 'start': 17239.258, 'title': 'Python modules, inheritance, and composition', 'summary': 'Covers creating modules, inheritance, and composition in python, demonstrating superclass, subclasses, importing functions and classes, multiple inheritance, class composition, class aggregation, and creating abstract classes. it includes creating custom modules, importing functions and classes, using multiple inheritance and class composition, and creating abstract classes using the abc module, providing a comprehensive understanding of these concepts in python.', 'chapters': [{'end': 17691.003, 'start': 17239.258, 'title': 'Creating modules in python', 'summary': 'Explains the concept of inheritance in python, demonstrating how to create a superclass and two subclasses, and it also discusses the process of creating modules in python, demonstrating the creation of custom modules and importing them to another file.', 'duration': 451.745, 'highlights': ['The chapter explains the concept of inheritance in Python', 'The chapter discusses the process of creating modules in Python', 'The public member variables or the methods are accessible from the subclass from the superclass']}, {'end': 18343.219, 'start': 17691.784, 'title': 'Creating modules in python: importing functions and classes', 'summary': "Demonstrates the process of creating modules in python, importing functions and classes, and the concept of multiple inheritance. it covers creating and importing functions, moving files to new directories, using 'from' and 'import' keywords, renaming files using 'as', importing classes with inheritance, and demonstrates multiple inheritance in python.", 'duration': 651.435, 'highlights': ['The chapter demonstrates the process of creating modules in Python, importing functions and classes, and the concept of multiple inheritance.', "Demonstrates creating and importing functions, moving files to new directories, and using 'from' and 'import' keywords.", "Explains renaming files using 'as' and importing classes with inheritance.", 'Demonstrates multiple inheritance in Python using the example of creating a new Python file and defining a class called shape with a private variable called color.']}, {'end': 19261.037, 'start': 18344.039, 'title': 'Python class composition & multiple inheritance', 'summary': 'Discusses multiple inheritance and class composition in python, showcasing the process of inheriting from multiple classes and using a built-in function called super. it also demonstrates class composition by delegating responsibilities between the employee and salary classes, resulting in the calculation of the total salary.', 'duration': 916.998, 'highlights': ['The chapter discusses multiple inheritance and class composition in Python, showcasing the process of inheriting from multiple classes.', 'It also demonstrates class composition by delegating responsibilities between the employee and salary classes, resulting in the calculation of the total salary.', 'The chapter also explains the usage of a built-in function called super in Python classes.']}, {'end': 19838.482, 'start': 19261.037, 'title': 'Class aggregation in python', 'summary': 'Explains the concept of class aggregation in python, demonstrating how to pass an instance of a class to another class, and highlighting the properties and differences between composition and aggregation, using specific examples and code demonstrations.', 'duration': 577.445, 'highlights': ['The chapter introduces the concept of class aggregation in Python and demonstrates how to pass an instance of a class to another class.', "The chapter highlights the properties of aggregation, including the keyword 'has a' to define the relationship between associated classes, unidirectional association, and the independence of objects.", "The chapter explains the differences between composition and aggregation, including the use of 'part of' and 'has a' relationships, the dependency of objects, and the unidirectional association."]}, {'end': 20572.044, 'start': 19838.862, 'title': 'Creating abstract class in python', 'summary': 'Explains how to create an abstract class in python using the built-in module abc, requiring inheritance and a decorator to make methods abstract, and demonstrates handling abstract methods in a subclass, highlighting the inability to instantiate an abstract class and the need to implement all abstract methods in the subclass.', 'duration': 733.182, 'highlights': ['The chapter explains how to create an abstract class in Python using the built-in module abc, requiring inheritance and a decorator to make methods abstract.', 'The chapter demonstrates handling abstract methods in a subclass, highlighting the inability to instantiate an abstract class and the need to implement all abstract methods in the subclass.', 'Explanation of exceptions in Python, including zero division error, type error, name error, and attribute error.']}], 'duration': 3332.786, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc17239258.jpg', 'highlights': ['The chapter explains the concept of inheritance in Python', 'The chapter discusses multiple inheritance and class composition in Python', 'The chapter introduces the concept of class aggregation in Python', 'The chapter explains how to create an abstract class in Python using the built-in module abc', 'The chapter demonstrates class composition by delegating responsibilities between the employee and salary classes']}, {'end': 22236.211, 'segs': [{'end': 20658.298, 'src': 'embed', 'start': 20627.513, 'weight': 6, 'content': [{'end': 20630.454, 'text': 'so this error comes from this line, line 5..', 'start': 20627.513, 'duration': 2.941}, {'end': 20638.096, 'text': 'So when you click on this line, it shows us that this error is coming from this line, which is the division of these two numbers.', 'start': 20630.454, 'duration': 7.642}, {'end': 20647.466, 'text': 'and as soon as this exception occurs, all the code which we want to execute after that will not be executed.', 'start': 20638.516, 'duration': 8.95}, {'end': 20651.571, 'text': "so we were printing this result here, but it's not printed.", 'start': 20647.466, 'duration': 4.105}, {'end': 20653.413, 'text': 'let me print something else here.', 'start': 20651.571, 'duration': 1.842}, {'end': 20658.298, 'text': "so i'm going to just say end, and once again, i'm going to run the program.", 'start': 20653.413, 'duration': 4.885}], 'summary': 'Error at line 5 stops code execution and prevents result printing.', 'duration': 30.785, 'max_score': 20627.513, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc20627513.jpg'}, {'end': 21034.339, 'src': 'embed', 'start': 21004.471, 'weight': 1, 'content': [{'end': 21010.533, 'text': 'So you need to either use the base class of the exception, which is this one exception.', 'start': 21004.471, 'duration': 6.062}, {'end': 21020.055, 'text': 'When you run the code and when you write these input, it will be handled and you can see this time type error is caught.', 'start': 21011.113, 'duration': 8.942}, {'end': 21028.317, 'text': "It's not a zero division error, but the type error which comes because the type which we have provided here is string.", 'start': 21020.455, 'duration': 7.862}, {'end': 21034.339, 'text': 'and we are dividing string by a float value which throws this error.', 'start': 21029.017, 'duration': 5.322}], 'summary': 'Using the base class exception handles type error when dividing string by a float value.', 'duration': 29.868, 'max_score': 21004.471, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc21004471.jpg'}, {'end': 21087.355, 'src': 'embed', 'start': 21062.127, 'weight': 0, 'content': [{'end': 21067.429, 'text': "so i'm going to just write type error and here zero division error.", 'start': 21062.127, 'duration': 5.302}, {'end': 21074.632, 'text': 'so we know from where this error is coming, and when i run the code once again and when i give the inputs,', 'start': 21067.429, 'duration': 7.203}, {'end': 21080.953, 'text': 'you will see that this error is coming from this line of code.', 'start': 21075.532, 'duration': 5.421}, {'end': 21087.355, 'text': 'So this accept statement is catching your exception, which is type error.', 'start': 21081.073, 'duration': 6.282}], 'summary': 'Identified type error and zero division error in the code, pinpointing the line of code where the error occurs.', 'duration': 25.228, 'max_score': 21062.127, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc21062127.jpg'}, {'end': 21289.681, 'src': 'embed', 'start': 21265.565, 'weight': 2, 'content': [{'end': 21275.888, 'text': "which is going to throw the exception, and i'm going to press enter and you can see zero division error is thrown, which is caught here,", 'start': 21265.565, 'duration': 10.323}, {'end': 21277.729, 'text': 'and this statement is printed first,', 'start': 21275.888, 'duration': 1.841}, {'end': 21286.798, 'text': 'And then this finally keyword is printed using this statement and at the end these two lines of code are executed.', 'start': 21278.389, 'duration': 8.409}, {'end': 21289.681, 'text': "So once again let's talk about the else statement.", 'start': 21287.058, 'duration': 2.623}], 'summary': 'Exception caught, zero division error thrown, finally keyword printed, else statement discussed.', 'duration': 24.116, 'max_score': 21265.565, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc21265565.jpg'}, {'end': 21527.338, 'src': 'embed', 'start': 21499.246, 'weight': 9, 'content': [{'end': 21503.312, 'text': "So let's get started and let's see this raise statement with an example.", 'start': 21499.246, 'duration': 4.066}, {'end': 21513.234, 'text': 'So, to start with, I have created a class called CoffeeCup, which have a init method which takes one argument, which is the temperature,', 'start': 21503.992, 'duration': 9.242}, {'end': 21518.476, 'text': 'and I am just initializing the value of temperature using this init method.', 'start': 21513.234, 'duration': 5.242}, {'end': 21523.777, 'text': 'and this CoffeeCup class also have one more method, which is called DrinkCoffee.', 'start': 21518.476, 'duration': 5.301}, {'end': 21527.338, 'text': 'And inside this DrinkCoffee method, I have some conditions.', 'start': 21524.097, 'duration': 3.241}], 'summary': 'Transcript: introducing coffeecup class with init and drinkcoffee methods.', 'duration': 28.092, 'max_score': 21499.246, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc21499246.jpg'}, {'end': 21583.931, 'src': 'embed', 'start': 21556.604, 'weight': 8, 'content': [{'end': 21560.847, 'text': "and I'm just calling this method drink coffee from this object.", 'start': 21556.604, 'duration': 4.243}, {'end': 21563.229, 'text': "so let's run the code and let's see what happens.", 'start': 21560.847, 'duration': 2.382}, {'end': 21569.455, 'text': 'so because this 75 is neither satisfying this condition nor this condition.', 'start': 21563.229, 'duration': 6.226}, {'end': 21574.399, 'text': 'so the answer which is printed here is coffee okay to drink.', 'start': 21569.455, 'duration': 4.944}, {'end': 21583.931, 'text': 'Now, when I provide, for example, 101 temperature value here, and when I run the code once again, it will say coffee too hot.', 'start': 21574.719, 'duration': 9.212}], 'summary': 'Using a temperature method to determine if coffee is okay to drink, with example outcomes provided.', 'duration': 27.327, 'max_score': 21556.604, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc21556604.jpg'}, {'end': 21864.453, 'src': 'embed', 'start': 21838.7, 'weight': 3, 'content': [{'end': 21847.485, 'text': 'and we have seen how to raise an exception using the base class, which is exception, or the subclasses of this exception class,', 'start': 21838.7, 'duration': 8.785}, {'end': 21853.328, 'text': 'for example the value error or any other error, which is the subclass of this exception.', 'start': 21847.485, 'duration': 5.843}, {'end': 21862.652, 'text': "Now in this video, I'm going to show you how you can create your custom exception classes and use them to raise exception in Python.", 'start': 21854.128, 'duration': 8.524}, {'end': 21864.453, 'text': "So let's get started.", 'start': 21863.373, 'duration': 1.08}], 'summary': 'Learn to create and use custom exception classes in python.', 'duration': 25.753, 'max_score': 21838.7, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc21838700.jpg'}, {'end': 22119.514, 'src': 'embed', 'start': 22091.886, 'weight': 4, 'content': [{'end': 22103.07, 'text': 'you can just create an init method which takes this message and pass it to the init method of your superclass, which is the exception class.', 'start': 22091.886, 'duration': 11.184}, {'end': 22111.572, 'text': 'so this is how you can create your own custom exception classes and use them to raise the exception in python.', 'start': 22103.07, 'duration': 8.502}, {'end': 22119.514, 'text': 'in this video we will talk about this special keyword, which is underscore underscore name, underscore underscore,', 'start': 22111.572, 'duration': 7.942}], 'summary': 'Creating custom exception classes in python using init method and special keyword __name__.', 'duration': 27.628, 'max_score': 22091.886, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc22091886.jpg'}, {'end': 22214.6, 'src': 'embed', 'start': 22183.993, 'weight': 5, 'content': [{'end': 22186.235, 'text': 'so nothing special about this code.', 'start': 22183.993, 'duration': 2.242}, {'end': 22195.244, 'text': "now what I'm going to do next is I'm going to import this file, which is my math dot py file, into the test dot py,", 'start': 22186.235, 'duration': 9.009}, {'end': 22202.37, 'text': "and now I'm going to just use print and and then I'm going to use this module name, which is MyMath,", 'start': 22195.244, 'duration': 7.126}, {'end': 22214.6, 'text': "to call this function which is there inside this MyMath.py file, and then I'm going to provide two values here once again into this add function.", 'start': 22202.37, 'duration': 12.23}], 'summary': 'Imported mymath.py file into test.py and called add function with two values.', 'duration': 30.607, 'max_score': 22183.993, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc22183993.jpg'}], 'start': 20572.044, 'title': 'Python exception handling', 'summary': "Covers handling exceptions in python, including try-except blocks for zero division error, specific exceptions, else and finally statements, and raising exceptions. it also demonstrates raising custom exceptions, creating custom exception classes, and utilizing special keywords like '__name__'.", 'chapters': [{'end': 20972.302, 'start': 20572.044, 'title': 'Handling python exceptions', 'summary': 'Demonstrates handling exceptions in python by using try-except blocks to handle the zero division error and other exceptions, showcasing the importance of exception handling in maintaining program flow and error handling as well as the usage of the base exception class and specific exception classes.', 'duration': 400.258, 'highlights': ['The chapter demonstrates how to handle exceptions in Python using try-except blocks to handle the zero division error and other exceptions.', 'The example illustrates the impact of unhandled exceptions on program flow, as Python stops the execution of subsequent code when an exception occurs.', 'The chapter demonstrates the usage of specific exception classes such as the zero division error, showcasing how to handle specific exceptions in Python.', 'The chapter also covers the usage of the base exception class, showing how it can be used to handle multiple types of exceptions by catching the generic exception class.']}, {'end': 21523.777, 'start': 20973.203, 'title': 'Python exception handling', 'summary': 'Discusses exception handling in python, covering catching specific exceptions, using else and finally statements, and raising exceptions using the raise keyword. it also emphasizes the importance of using finally statement for actions that must be executed, regardless of errors.', 'duration': 550.574, 'highlights': ['The chapter discusses the importance of catching specific exceptions rather than using the base class exception, with the example of catching zero division and type error exceptions.', 'The chapter demonstrates the usage of else and finally statements, highlighting that the else statement is executed when no exceptions occur, while the finally statement is guaranteed to be executed regardless of exceptions.', 'The speaker emphasizes the use of the finally statement for actions that must be executed, such as closing files or reconnecting to a database, regardless of errors.', 'The chapter explains the usage of the raise keyword to force a specific exception to occur, with an example using the CoffeeCup class.']}, {'end': 21896.099, 'start': 21524.097, 'title': 'Raising custom exceptions in python', 'summary': "Demonstrates creating a method to check the temperature of coffee, using conditions to print if it's too hot, too cold, or okay, and how to raise exceptions with the base class 'exception' or its subclasses, such as 'value error', with optional arguments for custom messages.", 'duration': 372.002, 'highlights': ["The method 'drinkCoffee' checks the temperature of coffee and prints if it's too hot, too cold, or okay, with an example of 75 degrees resulting in 'coffee okay to drink'.", "Demonstrates using the 'raise' keyword and the 'exception' class to throw an exception when the coffee is too hot or too cold, leading to the program's execution stopping.", "Shows how to use the 'help' method to see all subclasses under the 'exception' class in Python, including 'base exception' and 'exception' class.", "Illustrates creating a custom exception class 'coffee too hot exception' that inherits from the 'exception' class and provides a custom message using the 'init' method."]}, {'end': 22236.211, 'start': 21896.099, 'title': 'Creating custom exception class & using special keywords', 'summary': "Explains the process of creating custom exception classes in python, demonstrating how to inherit from the exception base class, and utilizing the special keyword '__name__' by showcasing its use and significance. it also includes a demonstration of importing a module and utilizing a simple function to calculate the sum of two numbers.", 'duration': 340.112, 'highlights': ['Creating custom exception classes by inheriting from the exception base class', 'Demonstrating the process of raising custom exceptions with explanatory messages', "Explaining the significance of the special keyword '__name__'", 'Demonstrating the process of importing a module and utilizing a simple function to calculate the sum of two numbers']}], 'duration': 1664.167, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc20572044.jpg', 'highlights': ['The chapter demonstrates how to handle exceptions in Python using try-except blocks to handle the zero division error and other exceptions.', 'The chapter discusses the importance of catching specific exceptions rather than using the base class exception, with the example of catching zero division and type error exceptions.', 'The chapter demonstrates the usage of else and finally statements, highlighting that the else statement is executed when no exceptions occur, while the finally statement is guaranteed to be executed regardless of exceptions.', "Illustrates creating a custom exception class 'coffee too hot exception' that inherits from the 'exception' class and provides a custom message using the 'init' method.", "Explaining the significance of the special keyword '__name__'", 'Demonstrating the process of importing a module and utilizing a simple function to calculate the sum of two numbers', 'The example illustrates the impact of unhandled exceptions on program flow, as Python stops the execution of subsequent code when an exception occurs.', 'The chapter also covers the usage of the base exception class, showing how it can be used to handle multiple types of exceptions by catching the generic exception class.', 'The chapter explains the usage of the raise keyword to force a specific exception to occur, with an example using the CoffeeCup class.', "The method 'drinkCoffee' checks the temperature of coffee and prints if it's too hot, too cold, or okay, with an example of 75 degrees resulting in 'coffee okay to drink'."]}, {'end': 24611.905, 'segs': [{'end': 23197.057, 'src': 'embed', 'start': 23165.715, 'weight': 4, 'content': [{'end': 23176.962, 'text': 'And this notation is, you use a keyword width and then you call open function and you can provide the same type of arguments here.', 'start': 23165.715, 'duration': 11.247}, {'end': 23180.704, 'text': 'For example, demo.text and append.', 'start': 23177.042, 'duration': 3.662}, {'end': 23190.892, 'text': 'and then you use as keyword and then you write the name of the file handler, for example fh, as you have done here,', 'start': 23181.444, 'duration': 9.448}, {'end': 23197.057, 'text': 'and then you provide this colon and inside this with statement, you work with your code, for example.', 'start': 23190.892, 'duration': 6.165}], 'summary': "Using 'with' statement, open function with keyword arguments for file handling.", 'duration': 31.342, 'max_score': 23165.715, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc23165715.jpg'}, {'end': 23329.733, 'src': 'embed', 'start': 23279.146, 'weight': 0, 'content': [{'end': 23289.033, 'text': 'and the important thing to note here is on Windows, you always need to use the double backslashes in order to provide the file path.', 'start': 23279.146, 'duration': 9.887}, {'end': 23294.237, 'text': 'So use these double backslashes to provide the file path.', 'start': 23290.194, 'duration': 4.043}, {'end': 23303.563, 'text': 'So see, inside the C directory I have this files folder and inside the file folder right now you can see this is empty.', 'start': 23294.517, 'duration': 9.046}, {'end': 23311.128, 'text': "and now, when I run this code, let me just change the mode to W, which is for write mode, and I'm going to run the code.", 'start': 23303.563, 'duration': 7.565}, {'end': 23315.949, 'text': 'As soon as I run the code, this demo.txt file is created here.', 'start': 23311.828, 'duration': 4.121}, {'end': 23324.892, 'text': 'You can also see the content of the file on the right side, which is this is line 1 up to this is line number 10.', 'start': 23316.529, 'duration': 8.363}, {'end': 23329.733, 'text': 'This is how you can create a text file and write into it using Python.', 'start': 23324.892, 'duration': 4.841}], 'summary': 'Using double backslashes, a text file is created and written into using python.', 'duration': 50.587, 'max_score': 23279.146, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc23279146.jpg'}, {'end': 24233.946, 'src': 'embed', 'start': 24202.782, 'weight': 2, 'content': [{'end': 24207.785, 'text': 'In the fourth statement, we have provided the string and then the integer and then float values.', 'start': 24202.782, 'duration': 5.003}, {'end': 24212.048, 'text': 'And then we have provided the two Boolean values, false and true.', 'start': 24208.165, 'duration': 3.883}, {'end': 24218.393, 'text': 'And at last, we have provided this none keyword to this dumps function.', 'start': 24212.589, 'duration': 5.804}, {'end': 24221.315, 'text': "So let's run the code and let's see what happens.", 'start': 24219.133, 'duration': 2.182}, {'end': 24224.157, 'text': 'So everything runs fine.', 'start': 24221.916, 'duration': 2.241}, {'end': 24233.946, 'text': 'So that means you can convert from this JSON.DUMS function, a dictionary or a list, or a tuple, or a string, or a decimal,', 'start': 24224.518, 'duration': 9.428}], 'summary': 'Demonstrated conversion of different data types to json using json.dumps function.', 'duration': 31.164, 'max_score': 24202.782, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc24202782.jpg'}], 'start': 22236.211, 'title': 'File handling in python', 'summary': 'Covers python file handling basics, working with files, various file handling modes, reading and handling json, and using json.dumps function, demonstrating usage of print statement, file creation and writing, file modes, reading specific characters or lines, and converting data types to json.', 'chapters': [{'end': 22645.723, 'start': 22236.211, 'title': 'Python file handling basics', 'summary': "Covers the usage of 'print' statement, conditions for executing code, and creating and writing to a text file in python, demonstrating the values of '__name__' variable and the 'open' function in different conditions.", 'duration': 409.512, 'highlights': ["The usage of 'print' statement and the values of '__name__' variable in different conditions are explained, demonstrating the use of '__name__' as the module name or as '__main__'.", "The demonstration of creating and writing to a text file in Python using the 'open' function with various modes such as 'R', 'W', and 'A' is provided, showcasing the practical usage of file handling in Python.", "The explanation of the conditions for executing code in Python, including the usage of '__name__' as a special built-in keyword and its value as the module name or '__main__', is detailed, providing a fundamental understanding of Python programming concepts."]}, {'end': 23026.693, 'start': 22645.723, 'title': 'Working with file in python', 'summary': 'Explains how to create, write to, and append text to a file in python, including using a file handler, write function, close method, wmode and amode, and a for loop to print 10 lines to the file.', 'duration': 380.97, 'highlights': ['Using file handler to work with the file and call methods on the file handler returned by the open function.', 'Explaining the write function to write any text to the file.', 'Importance of using the close function to close the file and free up system resources.', "Explaining the WMODE, responsible for creating the file if it doesn't exist and overwriting the file if it already exists.", 'Using the A mode to append text to the file and avoid overwriting the existing content.', 'Using a for loop to print 10 lines into the file, with an explanation of the range and the use of modulo symbol.']}, {'end': 23526.802, 'start': 23027.233, 'title': 'File handling in python', 'summary': "Covers the various modes for file handling in python, including append, read, write, and read-write modes, with examples of creating, writing, and reading text files, and the usage of 'with' statement, demonstrating the creation of a new file, reading from a file, and handling exceptions. the chapter also explains the usage of open function with different modes for file handling, such as 'w plus' mode, and the importance of using double backslashes in file paths in windows.", 'duration': 499.569, 'highlights': ['The chapter covers the various modes for file handling in Python, including append, read, write, and read-write modes, with examples of creating, writing, and reading text files.', "The usage of 'with' statement, demonstrating the creation of a new file, reading from a file, and handling exceptions.", "The chapter also explains the usage of open function with different modes for file handling, such as 'W plus' mode.", 'The importance of using double backslashes in file paths in Windows.']}, {'end': 24202.482, 'start': 23527.122, 'title': 'Reading and handling json in python', 'summary': "Explains how to read and manipulate text files in python, including reading specific characters or lines, and using functions like readline and readlines, as well as employing for loops to iterate over lines and count characters and words. it also introduces json and demonstrates how to convert python values to json using the json package's dumps method, which accepts various data types as arguments.", 'duration': 675.36, 'highlights': ['The chapter explains how to read and manipulate text files in Python, including reading specific characters or lines, and using functions like readLine and readLines, as well as employing for loops to iterate over lines and count characters and words.', "It also introduces JSON and demonstrates how to convert Python values to JSON using the json package's dumps method, which accepts various data types as arguments."]}, {'end': 24611.905, 'start': 24202.782, 'title': 'Using json.dumps in python', 'summary': 'Explains how to use the json.dumps function in python to convert various data types into valid json values, providing examples of converting dictionaries, lists, tuples, strings, decimals, floats, and boolean values. it also demonstrates the optional parameters such as indent, separators, and sort keys, and how to save and read json values to and from a file.', 'duration': 409.123, 'highlights': ['The chapter demonstrates the use of JSON.DUMPS to convert various data types into valid JSON values, including dictionaries, lists, tuples, strings, decimals, floats, and boolean values.', 'It provides examples of using optional parameters such as indent, separators, and sort keys to customize the JSON output.', "The chapter shows how to save JSON values into a JSON file using the JSON.DUMPS function and the 'with' statement in Python.", "It explains how to read JSON values from a file using the 'read' mode in Python."]}], 'duration': 2375.694, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc22236211.jpg', 'highlights': ['The chapter covers the various modes for file handling in Python, including append, read, write, and read-write modes, with examples of creating, writing, and reading text files.', 'The chapter explains how to read and manipulate text files in Python, including reading specific characters or lines, and using functions like readLine and readLines, as well as employing for loops to iterate over lines and count characters and words.', 'The chapter demonstrates the use of JSON.DUMPS to convert various data types into valid JSON values, including dictionaries, lists, tuples, strings, decimals, floats, and boolean values.', "The demonstration of creating and writing to a text file in Python using the 'open' function with various modes such as 'R', 'W', and 'A' is provided, showcasing the practical usage of file handling in Python.", "The usage of 'with' statement, demonstrating the creation of a new file, reading from a file, and handling exceptions."]}, {'end': 25839.706, 'segs': [{'end': 24999.313, 'src': 'heatmap', 'start': 24641.354, 'weight': 0.702, 'content': [{'end': 24643.977, 'text': 'So let me create a variable once again.', 'start': 24641.354, 'duration': 2.623}, {'end': 24644.618, 'text': 'So JSON.', 'start': 24643.997, 'duration': 0.621}, {'end': 24653.97, 'text': 'value is the variable name and then i can use this json keyword which we have imported dot loads function.', 'start': 24645.439, 'duration': 8.531}, {'end': 24660.839, 'text': 'so just use the loads function and then pass the string as an argument of this loads function.', 'start': 24653.97, 'duration': 6.869}, {'end': 24666.365, 'text': 'So this loads function takes a string and converts it into a JSON value.', 'start': 24661.4, 'duration': 4.965}, {'end': 24670.989, 'text': "So now let's print the type of the JSON value.", 'start': 24666.465, 'duration': 4.524}, {'end': 24677.495, 'text': "So I'm going to just write print type and then we use the JSON value argument here.", 'start': 24671.029, 'duration': 6.466}, {'end': 24683.756, 'text': 'and then once again run the code and you will see now the JSON value data type is the dictionary.', 'start': 24678.115, 'duration': 5.641}, {'end': 24688.798, 'text': "so because now it's a dictionary, we can parse some values from it.", 'start': 24683.756, 'duration': 5.042}, {'end': 24694.679, 'text': "so let's say from this JSON value dictionary we want to get the name.", 'start': 24688.798, 'duration': 5.881}, {'end': 24698.54, 'text': 'so name here we have stored is max.', 'start': 24694.679, 'duration': 3.861}, {'end': 24703.842, 'text': 'so we can just give the key here name and then run the code.', 'start': 24698.54, 'duration': 5.302}, {'end': 24709.185, 'text': "it's going to give us the value associated with the name, which is max.", 'start': 24703.842, 'duration': 5.343}, {'end': 24718.55, 'text': 'so this json.loads function we use to convert from a json or a string value into a python dictionary.', 'start': 24709.185, 'duration': 9.365}, {'end': 24721.991, 'text': 'so this is how you can handle json values in python.', 'start': 24718.55, 'duration': 3.441}, {'end': 24728.855, 'text': "in this video i'm going to show you what are iterators in python and how to use iterators in python.", 'start': 24721.991, 'duration': 6.864}, {'end': 24736.244, 'text': "And at the end I'm also going to show you how you can create your custom iterator class in Python.", 'start': 24729.515, 'duration': 6.729}, {'end': 24746.116, 'text': "So let's get started and let's see first of all, what is an iterator? But before that, we need to understand what is iteration.", 'start': 24737.145, 'duration': 8.971}, {'end': 24753.762, 'text': 'So what is iteration? An act of going over a collection is called iteration.', 'start': 24746.777, 'duration': 6.985}, {'end': 24756.924, 'text': 'Now what kind of collections we are talking about?', 'start': 24754.402, 'duration': 2.522}, {'end': 24765.569, 'text': 'We have already seen some kind of collections, like lists, tuples, dictionaries, sets and other kind of collections.', 'start': 24757.324, 'duration': 8.245}, {'end': 24773.254, 'text': 'and till now what we have seen is we can use a for loop to iterate over a collection.', 'start': 24766.349, 'duration': 6.905}, {'end': 24780.579, 'text': "so till now what we have learned is, for example, i'm going to declare a collection, which is list in this case,", 'start': 24773.254, 'duration': 7.325}, {'end': 24784.922, 'text': "and i'm going to just add some values inside the list.", 'start': 24780.579, 'duration': 4.343}, {'end': 24790.086, 'text': 'and once i declare the list, i can iterate over this list using a for loop.', 'start': 24784.922, 'duration': 5.164}, {'end': 24801.716, 'text': "so let's say for i in the collection name And then you can just write print here to print each and every value of this collection A.", 'start': 24790.086, 'duration': 11.63}, {'end': 24811.125, 'text': 'So this for loop iterate over each and every element in the collection and then print the value using this print statement.', 'start': 24801.716, 'duration': 9.409}, {'end': 24814.409, 'text': "now let's talk about the iterators.", 'start': 24811.425, 'duration': 2.984}, {'end': 24816.692, 'text': 'so what is an iterator?', 'start': 24814.409, 'duration': 2.283}, {'end': 24823.601, 'text': 'iterator is an object which can be used to iterate over a collection.', 'start': 24816.692, 'duration': 6.909}, {'end': 24837.534, 'text': 'now, this iterator object has two special methods First is ,iter, and second is ,next,.', 'start': 24823.601, 'duration': 13.933}, {'end': 24840.657, 'text': 'So iterators have these two special methods.', 'start': 24837.875, 'duration': 2.782}, {'end': 24846.602, 'text': 'One is iter and this iter method is going to get you the iterator.', 'start': 24841.177, 'duration': 5.425}, {'end': 24853.768, 'text': 'And the next method is going to give you the next value using this iterator.', 'start': 24847.202, 'duration': 6.566}, {'end': 24861.351, 'text': 'Now collections like lists or dictionary or tuple are all iteratable collections.', 'start': 24854.068, 'duration': 7.283}, {'end': 24864.392, 'text': 'That means we can iterate over them.', 'start': 24861.551, 'duration': 2.841}, {'end': 24874.857, 'text': 'And all these collection objects have a special method called iter which is used to get the iterator from these collections.', 'start': 24864.653, 'duration': 10.204}, {'end': 24879.478, 'text': 'So let me show you, first of all, these two methods inside our collection.', 'start': 24875.137, 'duration': 4.341}, {'end': 24890.561, 'text': 'So when you use dir inbuilt function and give any collection as an argument here, and when I press Enter, you will see a list of functions here.', 'start': 24879.958, 'duration': 10.603}, {'end': 24898.744, 'text': 'And when I scroll a little bit right here, you will see a special function which is iter.', 'start': 24891.122, 'duration': 7.622}, {'end': 24911.83, 'text': 'So all these collections like lists or dictionary or tuple, have this iter method and we can call this iter method to get the object of the iterator.', 'start': 24898.984, 'duration': 12.846}, {'end': 24922.817, 'text': 'And we can call this ,iter method using a special method called iter without underscore in front and back of it.', 'start': 24912.151, 'duration': 10.666}, {'end': 24925.94, 'text': "so let me just show you what i'm saying.", 'start': 24923.397, 'duration': 2.543}, {'end': 24936.971, 'text': "so i'm going to declare a variable, it, which stands for iterator, and then i'm going to use a special method called iter without underscore,", 'start': 24925.94, 'duration': 11.031}, {'end': 24942.596, 'text': 'and this iter method is used to get the iterator.', 'start': 24936.971, 'duration': 5.625}, {'end': 24947.299, 'text': 'so i can just pass my collection here as an argument,', 'start': 24942.596, 'duration': 4.703}, {'end': 24957.526, 'text': 'and this iterator method is going to give me the iterator object of this collection which i was talking about, which is underscore, underscore,', 'start': 24947.299, 'duration': 10.227}, {'end': 24959.527, 'text': 'iter underscore, underscore.', 'start': 24957.526, 'duration': 2.001}, {'end': 24961.568, 'text': 'so let me just press enter.', 'start': 24959.527, 'duration': 2.041}, {'end': 24969.814, 'text': 'and now we have the iterator object and this iterator object we can use to call all the values in the collection.', 'start': 24961.568, 'duration': 8.246}, {'end': 24977.979, 'text': "So let's once again print the values of our A list, and this has these six values.", 'start': 24970.314, 'duration': 7.665}, {'end': 24984.743, 'text': 'and now I can use a special method called next here to get the first value of this collection.', 'start': 24977.979, 'duration': 6.764}, {'end': 24993.349, 'text': "So I'm going to just pass the IT, which is the iterator which we have got from this iter method,", 'start': 24985.144, 'duration': 8.205}, {'end': 24999.313, 'text': 'and then press enter and you will see it will print the first value of your list.', 'start': 24993.349, 'duration': 5.964}], 'summary': 'Using json.loads to convert string to json in python and understanding iterators and iterator methods in python', 'duration': 357.959, 'max_score': 24641.354, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc24641354.jpg'}, {'end': 24698.54, 'src': 'embed', 'start': 24671.029, 'weight': 0, 'content': [{'end': 24677.495, 'text': "So I'm going to just write print type and then we use the JSON value argument here.", 'start': 24671.029, 'duration': 6.466}, {'end': 24683.756, 'text': 'and then once again run the code and you will see now the JSON value data type is the dictionary.', 'start': 24678.115, 'duration': 5.641}, {'end': 24688.798, 'text': "so because now it's a dictionary, we can parse some values from it.", 'start': 24683.756, 'duration': 5.042}, {'end': 24694.679, 'text': "so let's say from this JSON value dictionary we want to get the name.", 'start': 24688.798, 'duration': 5.881}, {'end': 24698.54, 'text': 'so name here we have stored is max.', 'start': 24694.679, 'duration': 3.861}], 'summary': "Using json value argument, converted to dictionary data type, extracted 'name' as 'max'.", 'duration': 27.511, 'max_score': 24671.029, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc24671029.jpg'}, {'end': 24853.768, 'src': 'embed', 'start': 24784.922, 'weight': 1, 'content': [{'end': 24790.086, 'text': 'and once i declare the list, i can iterate over this list using a for loop.', 'start': 24784.922, 'duration': 5.164}, {'end': 24801.716, 'text': "so let's say for i in the collection name And then you can just write print here to print each and every value of this collection A.", 'start': 24790.086, 'duration': 11.63}, {'end': 24811.125, 'text': 'So this for loop iterate over each and every element in the collection and then print the value using this print statement.', 'start': 24801.716, 'duration': 9.409}, {'end': 24814.409, 'text': "now let's talk about the iterators.", 'start': 24811.425, 'duration': 2.984}, {'end': 24816.692, 'text': 'so what is an iterator?', 'start': 24814.409, 'duration': 2.283}, {'end': 24823.601, 'text': 'iterator is an object which can be used to iterate over a collection.', 'start': 24816.692, 'duration': 6.909}, {'end': 24837.534, 'text': 'now, this iterator object has two special methods First is ,iter, and second is ,next,.', 'start': 24823.601, 'duration': 13.933}, {'end': 24840.657, 'text': 'So iterators have these two special methods.', 'start': 24837.875, 'duration': 2.782}, {'end': 24846.602, 'text': 'One is iter and this iter method is going to get you the iterator.', 'start': 24841.177, 'duration': 5.425}, {'end': 24853.768, 'text': 'And the next method is going to give you the next value using this iterator.', 'start': 24847.202, 'duration': 6.566}], 'summary': 'Iterate through a collection using for loop and iterator methods iter and next.', 'duration': 68.846, 'max_score': 24784.922, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc24784922.jpg'}, {'end': 25103.512, 'src': 'embed', 'start': 25074.727, 'weight': 4, 'content': [{'end': 25084.815, 'text': 'Now, many a times in your programming development career, you will have to write a class in order to iterate over some kind of collection.', 'start': 25074.727, 'duration': 10.088}, {'end': 25088.959, 'text': 'So let me show you how you can create your custom iterator class.', 'start': 25085.115, 'duration': 3.844}, {'end': 25097.686, 'text': 'So let me minimize this Python console in the PyCharm IDE and I will just comment these two methods.', 'start': 25089.399, 'duration': 8.287}, {'end': 25103.512, 'text': 'So as I said, an iterator always have these two special methods.', 'start': 25098.266, 'duration': 5.246}], 'summary': 'Learn to create custom iterator class in python.', 'duration': 28.785, 'max_score': 25074.727, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc25074727.jpg'}, {'end': 25498.816, 'src': 'embed', 'start': 25471.799, 'weight': 5, 'content': [{'end': 25481.461, 'text': 'So as soon as this index becomes is equal to the length, which means the iterator has been exhausted, we can also write double equals to here.', 'start': 25471.799, 'duration': 9.662}, {'end': 25488.042, 'text': 'As soon as the value of index becomes the length of the list, we can throw this exception.', 'start': 25481.841, 'duration': 6.201}, {'end': 25494.71, 'text': "So let's run this code once again and you can see we have used this next method seven times.", 'start': 25488.442, 'duration': 6.268}, {'end': 25498.816, 'text': "So at the last print statement it's going to give us the error.", 'start': 25494.991, 'duration': 3.825}], 'summary': 'Code iterates through list, uses next method 7 times, then throws error.', 'duration': 27.017, 'max_score': 25471.799, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc25471799.jpg'}, {'end': 25606.796, 'src': 'embed', 'start': 25575.071, 'weight': 6, 'content': [{'end': 25579.852, 'text': 'So in this way, you can create your own iterator class in Python.', 'start': 25575.071, 'duration': 4.781}, {'end': 25584.777, 'text': 'in the last video, we have seen how to use iterators in python.', 'start': 25580.592, 'duration': 4.185}, {'end': 25589.903, 'text': 'now, in this video, we are going to learn how to use generators in python.', 'start': 25584.777, 'duration': 5.126}, {'end': 25592.586, 'text': 'so, first of all, what are generators?', 'start': 25589.903, 'duration': 2.683}, {'end': 25597.271, 'text': 'so generators are the simple way of creating iterators.', 'start': 25592.586, 'duration': 4.685}, {'end': 25606.796, 'text': 'Now, simply put, a generator is a function that returns the iterator object on which we can iterate upon.', 'start': 25598.012, 'duration': 8.784}], 'summary': 'Learn to create iterator class and use generators in python.', 'duration': 31.725, 'max_score': 25575.071, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc25575071.jpg'}, {'end': 25811.587, 'src': 'embed', 'start': 25788.892, 'weight': 7, 'content': [{'end': 25798.578, 'text': "let's use the next function fourth time, because now, in the fourth time, your iterator is already exhausted and let's see what happens.", 'start': 25788.892, 'duration': 9.686}, {'end': 25809.185, 'text': "So you will see, it's going to give you this exception which says stop iteration, which we have already seen in the case of iterators also,", 'start': 25799.178, 'duration': 10.007}, {'end': 25811.587, 'text': 'which I have shown you in the last video.', 'start': 25809.185, 'duration': 2.402}], 'summary': 'Using the next function the fourth time gives a stop iteration exception.', 'duration': 22.695, 'max_score': 25788.892, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc25788892.jpg'}], 'start': 24611.905, 'title': 'Working with json values, iterators, and generators in python', 'summary': 'Covers handling json values in python using json.loads, and explains iterators, custom iterators, and generators. it also explains creating custom iterator classes, exhaustion of iterators, and the usage of generators compared to iterators.', 'chapters': [{'end': 25028.401, 'start': 24611.905, 'title': 'Handling json values and iterators in python', 'summary': 'Covers how to handle json values in python using the json.loads function to convert from a json string to a python dictionary, and also explains the concept of iterators in python, including how to use the iter and next methods to iterate over collections.', 'duration': 416.496, 'highlights': ['The json.loads function is used to convert from a JSON or a string value into a Python dictionary, showcasing the process of converting a string into a JSON value and demonstrating the resulting data type as a dictionary.', 'Iterators in Python are explained, including their role as objects used to iterate over collections, the special methods iter and next that iterators have, and the fact that collections like lists, dictionaries, and tuples are all iterable collections.', 'The iter method is used to get the iterator from collections like lists, dictionaries, or tuples, and it is confirmed by using the dir inbuilt function to display the list of functions and identify the special iter function.', 'The next method is utilized to retrieve the first value of the collection using the iterator object, followed by subsequent calls to next to iterate over the list and obtain the values one by one, demonstrating the process of iterating over a collection using iterators.']}, {'end': 25205.623, 'start': 25028.401, 'title': 'Understanding custom iterators in python', 'summary': 'Explains the concept of iterators in python, including the exhaustion of iterators, the usage of for loops with iteratable objects, and the creation of custom iterator classes, highlighting the implementation of the init, iter, and next methods.', 'duration': 177.222, 'highlights': ['The chapter explains the concept of iterators in Python', 'the creation of custom iterator classes, highlighting the implementation of the init, iter, and next methods', 'the exhaustion of iterators', 'the usage of for loops with iteratable objects']}, {'end': 25597.271, 'start': 25206.044, 'title': 'Creating custom iterator in python', 'summary': 'Explains the process of creating a custom iterator class in python, demonstrating how to use the next method to iterate over a list and raise a stop iteration exception when the iterator is exhausted, as well as how to use a for loop to iterate over the elements of the list. it also introduces the concept of generators as a simple way of creating iterators.', 'duration': 391.227, 'highlights': ['The next method is used to iterate over the list, and a stop iteration exception is raised when the iterator is exhausted, as demonstrated by iterating over the list using the next method and observing the stop iteration exception when the iterator is exhausted.', 'A for loop is used to iterate over the elements of the list, printing each element, showcasing how to utilize a for loop to iterate over the elements of the list provided as an argument to the list iterator class.', 'Introduction of generators as a simple way of creating iterators, explaining that generators are a way of creating iterators.']}, {'end': 25839.706, 'start': 25598.012, 'title': 'Understanding generators in python', 'summary': 'Explains the concept of generators in python, illustrating how to create a generator function, demonstrating the use of the yield keyword and the next function, and highlighting the simplicity of generators compared to iterators.', 'duration': 241.694, 'highlights': ['Generators are a simple way of creating iterators', 'Generators use the yield keyword to return values and pause the function', "Generators automatically handle 'StopIteration' exception"]}], 'duration': 1227.801, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc24611905.jpg', 'highlights': ['The json.loads function converts JSON or string into a Python dictionary', 'Iterators in Python are objects used to iterate over collections', 'The iter method retrieves the iterator from collections like lists, dictionaries, or tuples', 'The next method is used to retrieve the first value of the collection using the iterator object', 'The creation of custom iterator classes involves implementing the init, iter, and next methods', 'The exhaustion of iterators is demonstrated by raising a StopIteration exception', 'Generators are a simple way of creating iterators using the yield keyword', "Generators automatically handle the 'StopIteration' exception"]}, {'end': 28530.504, 'segs': [{'end': 26483.379, 'src': 'embed', 'start': 26456.723, 'weight': 0, 'content': [{'end': 26464.63, 'text': "so let's say you want to perform the same functionality, which is to iterate over the list of these numbers.", 'start': 26456.723, 'duration': 7.907}, {'end': 26467.913, 'text': "and let's say this list is big enough.", 'start': 26464.63, 'duration': 3.283}, {'end': 26470.795, 'text': "let's say this list length is 1 million.", 'start': 26467.913, 'duration': 2.882}, {'end': 26480.378, 'text': 'Then, if you are using the normal function, the normal function has to store all the 1 million values inside that list variable.', 'start': 26471.756, 'duration': 8.622}, {'end': 26483.379, 'text': "And that's not very memory efficient.", 'start': 26480.798, 'duration': 2.581}], 'summary': 'Iterating over a list of 1 million numbers is not memory efficient.', 'duration': 26.656, 'max_score': 26456.723, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc26456723.jpg'}, {'end': 26569.108, 'src': 'embed', 'start': 26534.433, 'weight': 1, 'content': [{'end': 26540.098, 'text': "In this video, I'm going to show you how you can pass the command line arguments to your Python script.", 'start': 26534.433, 'duration': 5.665}, {'end': 26550.141, 'text': 'So to start with, I have a script called myparser.py and in order to pass the command line arguments to this .', 'start': 26540.738, 'duration': 9.403}, {'end': 26558.184, 'text': 'py file, first of all, we need to import a built-in module which is called argParseModule.', 'start': 26550.141, 'duration': 8.043}, {'end': 26569.108, 'text': 'Now using this argParseModule, we can parse the parameters which is parsed using the command line to this script.', 'start': 26558.644, 'duration': 10.464}], 'summary': 'Learn how to use argparsemodule to pass command line arguments to python script.', 'duration': 34.675, 'max_score': 26534.433, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc26534433.jpg'}, {'end': 26824.624, 'src': 'embed', 'start': 26798.494, 'weight': 3, 'content': [{'end': 26805.636, 'text': "so i'm going to once again run this python file And you can see the description is printed here now.", 'start': 26798.494, 'duration': 7.142}, {'end': 26808.097, 'text': 'Now how to pass the command line arguments.', 'start': 26805.776, 'duration': 2.321}, {'end': 26813.679, 'text': 'So you can pass two kinds of arguments as the command line arguments.', 'start': 26808.837, 'duration': 4.842}, {'end': 26820.061, 'text': 'One are called positional arguments and other are called optional arguments.', 'start': 26814.319, 'duration': 5.742}, {'end': 26824.624, 'text': 'so first of all we will see how to pass the positional arguments.', 'start': 26820.661, 'duration': 3.963}], 'summary': 'Demonstrating passing command line arguments in python file, including positional and optional arguments.', 'duration': 26.13, 'max_score': 26798.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc26798494.jpg'}, {'end': 28016.873, 'src': 'embed', 'start': 27987.921, 'weight': 4, 'content': [{'end': 27992.523, 'text': 'But we can also pass the functions as an argument.', 'start': 27987.921, 'duration': 4.602}, {'end': 27999.346, 'text': 'And in addition, you can also return a function from a function.', 'start': 27992.823, 'duration': 6.523}, {'end': 28006.108, 'text': 'So instead of this multiplication, you can create a function and return from a function.', 'start': 27999.766, 'duration': 6.342}, {'end': 28010.75, 'text': "And that's where these lambda functions are useful.", 'start': 28006.689, 'duration': 4.061}, {'end': 28016.873, 'text': 'So let me give you some examples of where you can use lambda functions.', 'start': 28011.351, 'duration': 5.522}], 'summary': 'Lambda functions allow passing and returning functions, providing flexibility and versatility.', 'duration': 28.952, 'max_score': 27987.921, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc27987921.jpg'}, {'end': 28339.773, 'src': 'embed', 'start': 28318.701, 'weight': 2, 'content': [{'end': 28330.064, 'text': "So I'm going to just convert the answer or the result into a list and then I'm going to just pass this b variable as an argument of this list and then we are just printing the result.", 'start': 28318.701, 'duration': 11.363}, {'end': 28332.105, 'text': "So let's run the code and let's see what happens.", 'start': 28330.084, 'duration': 2.021}, {'end': 28339.773, 'text': 'So you can see we get the list which adds the value of these two lists and creates a new list.', 'start': 28332.825, 'duration': 6.948}], 'summary': 'Code converts answer to list, adds values, creates new list', 'duration': 21.072, 'max_score': 28318.701, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc28318701.jpg'}], 'start': 25839.706, 'title': 'Python functions and command line parsing', 'summary': 'Covers python generators and iterators, highlighting memory efficiency and stream processing, parsing command line arguments using the argparse module, working with positional parameters, specifying argument types, and utilizing lambda functions with optional parameters, map, and filter functions.', 'chapters': [{'end': 26558.184, 'start': 25839.706, 'title': 'Python generators and iterators', 'summary': 'Explains how generators in python simplify the implementation of iterators, showcasing examples and advantages, such as memory efficiency and stream processing.', 'duration': 718.478, 'highlights': ['Generators in Python simplify the implementation of iterators by automatically implementing methods like iter and next.', "The 'yield' keyword saves the status of the function and returns the value associated with it, allowing for easy resumption when using the next method.", 'Generators are more memory efficient than normal functions, making them suitable for working with large datasets and streaming data.']}, {'end': 26846.159, 'start': 26558.644, 'title': 'Parsing command line arguments', 'summary': 'Provides a detailed guide on parsing command line arguments using the argparsemodule, including initializing the parser, adding parameters, and running the script with examples of using the special help parameter and passing command line arguments.', 'duration': 287.515, 'highlights': ['The chapter explains how to initialize the parser using the argParseModule and the argument parser class.', 'It outlines the process of adding parameters to be parsed using the addArgument method.', 'It demonstrates running the script using the special help parameter and provides examples of passing command line arguments.']}, {'end': 27300.509, 'start': 26846.159, 'title': 'Parsing command line arguments in python', 'summary': 'Demonstrates how to parse and work with command line arguments in python, including defining and parsing positional parameters, specifying argument types, and performing mathematical operations based on the provided arguments.', 'duration': 454.35, 'highlights': ['Defining and parsing positional parameters', 'Specifying argument types using the type keyword', 'Performing mathematical operations based on the provided arguments']}, {'end': 28046.564, 'start': 27300.509, 'title': 'Python lambda functions and optional parameters', 'summary': 'Explains how to use lambda functions in python, converting normal functions to lambda functions, using optional parameters, and providing command line arguments with examples, and also demonstrates using lambda functions with functions like map, reduce, and filter.', 'duration': 746.055, 'highlights': ['The chapter explains how to use lambda functions in Python.', 'Using optional parameters with examples is described.', 'Demonstrates using lambda functions with functions like map, reduce, and filter.']}, {'end': 28530.504, 'start': 28047.204, 'title': 'Python map and filter functions', 'summary': 'Explains how to use the map function for iterating through a list and applying a lambda function to double the elements, and demonstrates using the filter function to extract even and greater than 5 values from a list.', 'duration': 483.3, 'highlights': ['Using the map function to double elements in a list using a lambda function', 'Applying the map function to add corresponding elements of two lists', 'Utilizing the filter function to extract even values from a list', 'Demonstrating the filter function to filter out values greater than 5 from a list']}], 'duration': 2690.798, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc25839706.jpg', 'highlights': ['Generators are more memory efficient than normal functions, suitable for large datasets and streaming data.', 'Using the argparse module to parse command line arguments and add parameters.', 'Utilizing lambda functions with optional parameters, map, and filter functions.', 'Defining and parsing positional parameters, specifying argument types, and performing mathematical operations.', 'Demonstrating the use of map and filter functions with lambda functions for specific operations.']}, {'end': 30368.032, 'segs': [{'end': 28661.01, 'src': 'embed', 'start': 28630.516, 'weight': 0, 'content': [{'end': 28642.483, 'text': "so 7 plus y is going to give us whatever result and once again it's going to apply the result and then going to add the next number to the result.", 'start': 28630.516, 'duration': 11.967}, {'end': 28647.045, 'text': "so let's see what result we get using this reduce function.", 'start': 28642.483, 'duration': 4.562}, {'end': 28654.928, 'text': "so I'm going to once again use print and then we can directly print the value of the reduce function, which is e.", 'start': 28647.045, 'duration': 7.883}, {'end': 28661.01, 'text': "so let's run this code once again and you will see this result, which is 37.", 'start': 28654.928, 'duration': 6.082}], 'summary': 'Using the reduce function resulted in a final value of 37.', 'duration': 30.494, 'max_score': 28630.516, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc28630516.jpg'}, {'end': 28703.823, 'src': 'embed', 'start': 28681.286, 'weight': 1, 'content': [{'end': 28693.456, 'text': 'which is 2 and 5, and then apply this code or statement to these two elements, which is 2 plus 5, and we will get 7 as the result.', 'start': 28681.286, 'duration': 12.17}, {'end': 28703.823, 'text': "now, once again, it's going to take 7 as the first argument, which is the sum of these two numbers, and 8 as the second argument, which is y here,", 'start': 28693.456, 'duration': 10.367}], 'summary': 'Applying a code to 2 and 5 yields a result of 7, used as the first argument along with 8 in a subsequent step.', 'duration': 22.537, 'max_score': 28681.286, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc28681286.jpg'}, {'end': 29229.646, 'src': 'embed', 'start': 29172.55, 'weight': 4, 'content': [{'end': 29180.718, 'text': 'so even if we deleted the outer function and we cannot call the outer function, But before deleting,', 'start': 29172.55, 'duration': 8.168}, {'end': 29185.38, 'text': 'we have created a variable which contains the value of inner function.', 'start': 29180.718, 'duration': 4.662}, {'end': 29189.962, 'text': "And now I'm just calling the inner function with these parentheses.", 'start': 29185.86, 'duration': 4.102}, {'end': 29191.522, 'text': "And let's see what happens.", 'start': 29190.402, 'duration': 1.12}, {'end': 29195.604, 'text': "So I'm going to just run this code and it's going to print hello.", 'start': 29191.962, 'duration': 3.642}, {'end': 29199.506, 'text': 'even after we have deleted the outer function.', 'start': 29196.304, 'duration': 3.202}, {'end': 29210.011, 'text': 'So this means that this variable a is storing some kind of state of inner function even if the outer function is deleted.', 'start': 29199.886, 'duration': 10.125}, {'end': 29213.573, 'text': 'And that is the magic of the closures.', 'start': 29210.492, 'duration': 3.081}, {'end': 29220.637, 'text': 'So a closure function is able to remember the values which are declared outside the function also.', 'start': 29213.933, 'duration': 6.704}, {'end': 29222.558, 'text': 'So this is our closure function.', 'start': 29220.917, 'duration': 1.641}, {'end': 29229.646, 'text': "and it's able to remember the value which are declared, which is text outside the function.", 'start': 29223.138, 'duration': 6.508}], 'summary': 'Closures in javascript store state even after outer function deletion.', 'duration': 57.096, 'max_score': 29172.55, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc29172550.jpg'}, {'end': 29494.948, 'src': 'embed', 'start': 29464.035, 'weight': 2, 'content': [{'end': 29470.419, 'text': "So let's run the code once again, and now you will see here the cube of the numbers are printed,", 'start': 29464.035, 'duration': 6.384}, {'end': 29475.162, 'text': 'whatever numbers we are passing as an argument of this cube function.', 'start': 29470.419, 'duration': 4.743}, {'end': 29483.185, 'text': 'So in a way, this cube or the square variable is holding the status of the inner function.', 'start': 29475.362, 'duration': 7.823}, {'end': 29487.086, 'text': "And that's something we have also seen in the case of classes.", 'start': 29483.525, 'duration': 3.561}, {'end': 29494.948, 'text': 'The classes are able to remember the state of the variables and the methods which are declared inside the classes.', 'start': 29487.266, 'duration': 7.682}], 'summary': 'The cube function prints the cube of input numbers, demonstrating the status of inner functions and classes.', 'duration': 30.913, 'max_score': 29464.035, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc29464035.jpg'}, {'end': 29746.952, 'src': 'embed', 'start': 29719.242, 'weight': 3, 'content': [{'end': 29727.964, 'text': 'So in order to print something before and after this string hello world we can print something here also.', 'start': 29719.242, 'duration': 8.722}, {'end': 29736.947, 'text': "So here we can just write, let's say, we want to print x and we want to print this x 20 times.", 'start': 29728.364, 'duration': 8.583}, {'end': 29737.648, 'text': "let's say so.", 'start': 29736.947, 'duration': 0.701}, {'end': 29746.952, 'text': "we can just write this kind of notation and after the execution of function i want to print, let's say, y 20 times.", 'start': 29737.648, 'duration': 9.304}], 'summary': "Printing 'x' 20 times before and 'y' 20 times after the string 'hello world'.", 'duration': 27.71, 'max_score': 29719.242, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc29719242.jpg'}], 'start': 28530.924, 'title': 'Python functions and closures', 'summary': 'Covers the usage of lambda functions with map, filter, and reduce in python, nested functions and closures, closures in javascript, python closures, and decorators, as well as the implementation of decorators in python with real-world examples.', 'chapters': [{'end': 28758.098, 'start': 28530.924, 'title': "Using lambda functions with python's map, filter, and reduce", 'summary': 'Explains the usage of filter and reduce functions with lambda functions in python, demonstrating how to use filter to obtain 4 values including 5, and how to use the reduce function to obtain the sum of all elements within a list, resulting in the value 37.', 'duration': 227.174, 'highlights': ['The filter function is used to obtain 4 values including 5 by applying the lambda function to the iterable collection.', 'The reduce function is utilized to obtain the sum of all elements within a list, resulting in the value 37 by applying the lambda function to the iterable collection.', 'Nested functions and closures in Python are introduced, showcasing the ability to define a function inside another function.']}, {'end': 29068.032, 'start': 28758.638, 'title': 'Nested functions and closures in python', 'summary': "Demonstrates nested functions in python, where an outer function encloses an inner function and the concept of closures, where a function's return value depends on variables outside the function, with examples showcasing nested functions and closures.", 'duration': 309.394, 'highlights': ['The chapter demonstrates nested functions in Python, where an outer function encloses an inner function.', "The concept of closures is explained, where a function's return value depends on variables outside the function, with examples showcasing nested functions and closures.", 'The closure function object remembers the value in the enclosing scope, even if they are not present in the memory.']}, {'end': 29385.722, 'start': 29068.032, 'title': 'Understanding closures in javascript', 'summary': 'Explains closures in javascript, showcasing examples and their ability to remember values from the enclosing scope even after the outer function is deleted, with a demonstration of a nth power function to calculate squares of numbers.', 'duration': 317.69, 'highlights': ['Closures in JavaScript allow inner functions to remember the values in the enclosing scope, even if the outer function is deleted, demonstrated by the ability to call the inner function and still access the stored state, showcasing the magic of closures.', "The example of a nth power function demonstrates the concept of closures, where the outer scope's exponent value is accessed by the inner function, showcasing the ability to return the power of a given number without needing parentheses, as highlighted by the calculation of the square of a number."]}, {'end': 29746.952, 'start': 29385.742, 'title': 'Python closures and decorators', 'summary': 'Explains the concept of closures in python, demonstrating how they remember the state of variables and can be used in place of classes, before delving into decorators, which modify the behavior of a function without changing its source code, and their practical implementation using a decorator function.', 'duration': 361.21, 'highlights': ['Closures in Python remember the state of variables and can be used in place of classes, sometimes being more efficient than normal functions.', 'Decorators in Python modify the behavior of a function without changing its source code, demonstrated through the implementation of a decorator function.']}, {'end': 29903.588, 'start': 29746.952, 'title': 'Python decorators: wrapping and modifying functions', 'summary': "Explains how to use decorators in python to wrap and modify the behavior of a function without changing its code, demonstrating two ways of implementing decorators and their impact on the function's output.", 'duration': 156.636, 'highlights': ["Python decorators wrap functions and modify their behavior without altering the function's code, as demonstrated by using a simple form of decorator to call the say hello function.", "The decorator function takes the function as an argument and returns the inner function, allowing for the modification of the function's behavior.", "Python provides an alternative notation for applying decorators above the function, using the @ symbol followed by the decorator's name, which simplifies the process of using decorators in Python."]}, {'end': 30368.032, 'start': 29903.888, 'title': 'Multiple decorators with functions', 'summary': 'Explores the usage of multiple decorators with functions, demonstrating the ability to change the behavior of a function without altering its code, showcasing the order of decorator usage, and providing real-world examples of using decorators to modify function behavior and output.', 'duration': 464.144, 'highlights': ['The order of the decorators affects the wrapping of the function, as demonstrated by the sequence of decorator usage resulting in different outputs.', "Decorators can modify the behavior of functions without changing their actual code, exemplified by altering the behavior of the 'divide' function without modifying the function itself.", 'A real-world example of using decorators is showcased by modifying a function to calculate the sum of numbers from 1 to a given input, demonstrating the practical application of decorators in function modification.']}], 'duration': 1837.108, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc28530924.jpg', 'highlights': ['The reduce function obtains the sum of all elements within a list, resulting in the value 37 by applying the lambda function to the iterable collection.', 'The filter function is used to obtain 4 values including 5 by applying the lambda function to the iterable collection.', 'Closures in Python remember the state of variables and can be used in place of classes, sometimes being more efficient than normal functions.', "Python decorators wrap functions and modify their behavior without altering the function's code, as demonstrated by using a simple form of decorator to call the say hello function.", 'Closures in JavaScript allow inner functions to remember the values in the enclosing scope, even if the outer function is deleted, demonstrated by the ability to call the inner function and still access the stored state, showcasing the magic of closures.', "The example of a nth power function demonstrates the concept of closures, where the outer scope's exponent value is accessed by the inner function, showcasing the ability to return the power of a given number without needing parentheses, as highlighted by the calculation of the square of a number."]}, {'end': 32183.07, 'segs': [{'end': 30634.378, 'src': 'embed', 'start': 30604.141, 'weight': 0, 'content': [{'end': 30613.865, 'text': 'also, after the function execution is completed, we are going to measure the current time once again And then we are going to just say end time,', 'start': 30604.141, 'duration': 9.724}, {'end': 30623.671, 'text': "which is stored in the end variable minus the start time, and it's going to give us the time elapsed in the execution of this function.", 'start': 30613.865, 'duration': 9.806}, {'end': 30634.378, 'text': 'And at last because this function or the other function can also return some value at last we are going to return the result which we have calculated.', 'start': 30624.172, 'duration': 10.206}], 'summary': 'Measure execution time and return result after function completion.', 'duration': 30.237, 'max_score': 30604.141, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc30604141.jpg'}, {'end': 30874.787, 'src': 'embed', 'start': 30848.295, 'weight': 2, 'content': [{'end': 30854.72, 'text': 'So the same operator asterisk is functioning differently with different kind of data.', 'start': 30848.295, 'duration': 6.425}, {'end': 30867.044, 'text': 'or in other words, we can say that this asterisk operator or this plus operator are overloaded for different kind of objects.', 'start': 30855.18, 'duration': 11.864}, {'end': 30874.787, 'text': "so whenever this plus operator is used with two numbers, it's going to give us the sum of these two numbers,", 'start': 30867.044, 'duration': 7.743}], 'summary': 'Asterisk and plus operators are overloaded for different objects.', 'duration': 26.492, 'max_score': 30848.295, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc30848295.jpg'}, {'end': 31040.94, 'src': 'embed', 'start': 30954.439, 'weight': 7, 'content': [{'end': 30964.483, 'text': "so let's try this and it's going to give us this error which says unsupported operand type for plus number and number.", 'start': 30954.439, 'duration': 10.044}, {'end': 30969.685, 'text': "so, because python doesn't know how to use this plus operator with your class objects,", 'start': 30964.483, 'duration': 5.202}, {'end': 30978.094, 'text': "it's going to give us this error which is unsupported operand type and whatever is the operator you are using.", 'start': 30970.365, 'duration': 7.729}, {'end': 30988.406, 'text': 'So it turns out that we can overload these kind of operators in Python by implementing some inbuilt methods in our class.', 'start': 30978.394, 'duration': 10.012}, {'end': 30997.03, 'text': 'So we already know that whenever we want to implement a constructor in Python, we use this init method.', 'start': 30988.846, 'duration': 8.184}, {'end': 31004.933, 'text': "So I'm going to create a very simple class and I'm going to name it as A and this will be a blank class.", 'start': 30997.39, 'duration': 7.543}, {'end': 31007.915, 'text': 'So this is a very simple class in Python.', 'start': 31005.473, 'duration': 2.442}, {'end': 31016.682, 'text': "And when I use a dir function, which is a built-in function with this class, let's see what happens.", 'start': 31008.475, 'duration': 8.207}, {'end': 31023.387, 'text': "So I'm going to just press enter and it's going to print some methods here, which are inbuilt method.", 'start': 31016.842, 'duration': 6.545}, {'end': 31026.009, 'text': 'So here, not all methods are visible.', 'start': 31023.707, 'duration': 2.302}, {'end': 31040.94, 'text': "So I'm going to assign this value of dir a to a variable a and then we will see in the right hand side in this inspector here and this is the a variable,", 'start': 31026.389, 'duration': 14.551}], 'summary': 'Python supports operator overloading using inbuilt methods in classes.', 'duration': 86.501, 'max_score': 30954.439, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc30954439.jpg'}, {'end': 31151.65, 'src': 'embed', 'start': 31124.681, 'weight': 9, 'content': [{'end': 31130.742, 'text': 'So in the first object, I have given the radius two and in the second object, I have given the radius three.', 'start': 31124.681, 'duration': 6.061}, {'end': 31140.184, 'text': 'And from the theory, which we have learned till now, we already know that this expression will not work with these two objects.', 'start': 31131.022, 'duration': 9.162}, {'end': 31146.265, 'text': "So when I run this code, it's going to give me the error, which says unsupported operand error.", 'start': 31140.204, 'duration': 6.061}, {'end': 31151.65, 'text': 'So now we are going to overload this plus operator in this circle class.', 'start': 31146.525, 'duration': 5.125}], 'summary': 'The code tries to use the plus operator with circles of radius 2 and 3, resulting in an unsupported operand error.', 'duration': 26.969, 'max_score': 31124.681, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc31124681.jpg'}, {'end': 31225.671, 'src': 'embed', 'start': 31195.059, 'weight': 3, 'content': [{'end': 31205.403, 'text': 'and here i have given the method name which you need to implement in your class in order to overload this operator in Python.', 'start': 31195.059, 'duration': 10.344}, {'end': 31210.265, 'text': 'So there is this list which you can use with all these operators.', 'start': 31205.423, 'duration': 4.842}, {'end': 31214.546, 'text': 'So you can overload the mathematical operators in Python.', 'start': 31210.345, 'duration': 4.201}, {'end': 31218.588, 'text': 'You can also overload the bitwise operators in Python.', 'start': 31214.947, 'duration': 3.641}, {'end': 31225.671, 'text': 'like and or or bitwise right shift or bitwise left shift,', 'start': 31219.008, 'duration': 6.663}], 'summary': 'Implement method to overload operators in python for mathematical and bitwise operations.', 'duration': 30.612, 'max_score': 31195.059, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc31195059.jpg'}, {'end': 31331.085, 'src': 'embed', 'start': 31303.025, 'weight': 10, 'content': [{'end': 31308.688, 'text': "So let's use this circle object and then dot and then underscore underscore radius.", 'start': 31303.025, 'duration': 5.663}, {'end': 31314.732, 'text': 'So, basically, I am adding the radius of the two objects.', 'start': 31309.088, 'duration': 5.644}, {'end': 31320.376, 'text': 'one is this circle object and other is the radius of the self, which is the current class.', 'start': 31314.732, 'duration': 5.644}, {'end': 31331.085, 'text': 'so as soon as you implement this method, add using these two arguments, then this operation is going to work in python.', 'start': 31320.376, 'duration': 10.709}], 'summary': 'The method adds the radius of a circle object and a given value to work in python.', 'duration': 28.06, 'max_score': 31303.025, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc31303025.jpg'}, {'end': 31408.625, 'src': 'embed', 'start': 31356.404, 'weight': 1, 'content': [{'end': 31368.833, 'text': "So I'm going to just use the print method and then I'm going to use the C3 object and I'm going to call a getRadius method from this object.", 'start': 31356.404, 'duration': 12.429}, {'end': 31372.256, 'text': "And let's print the radius of C1 and C2 also.", 'start': 31369.273, 'duration': 2.983}, {'end': 31377.099, 'text': "So here I'm going to just write C1 and here I'm going to just write C2.", 'start': 31372.616, 'duration': 4.483}, {'end': 31381.203, 'text': 'So we are printing the radius of all these three objects.', 'start': 31377.56, 'duration': 3.643}, {'end': 31383.464, 'text': "And I'm going to run the program now.", 'start': 31381.683, 'duration': 1.781}, {'end': 31390.51, 'text': 'And you can see here the radius of the first object is 2 because we have provided 2 as an argument here.', 'start': 31384.025, 'duration': 6.485}, {'end': 31395.033, 'text': 'The second is 3 because we have provided 3 as an argument here.', 'start': 31390.97, 'duration': 4.063}, {'end': 31406.503, 'text': 'And because we have created this third object using the overloading of this plus operator, where we were just adding the radius of both the objects.', 'start': 31395.554, 'duration': 10.949}, {'end': 31408.625, 'text': "that's why we got 5 here.", 'start': 31406.503, 'duration': 2.122}], 'summary': 'Program prints the radius of three objects: c1 (2), c2 (3), and c3 (5).', 'duration': 52.221, 'max_score': 31356.404, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc31356404.jpg'}, {'end': 31471.79, 'src': 'embed', 'start': 31441.65, 'weight': 5, 'content': [{'end': 31450.276, 'text': 'So for the less than operator we use this LT method and for the greater than operator we use this method called GT.', 'start': 31441.65, 'duration': 8.626}, {'end': 31456.5, 'text': "So let's implement these two methods inside our classes.", 'start': 31451.937, 'duration': 4.563}, {'end': 31466.967, 'text': 'So I am going to just copy this add method two times, and first of all I am going to replace this by lt, which is less than, and.', 'start': 31456.9, 'duration': 10.067}, {'end': 31471.79, 'text': 'the second method I am going to replace by gt, which is greater than.', 'start': 31466.967, 'duration': 4.823}], 'summary': 'Implement lt and gt methods for less than and greater than operators in classes.', 'duration': 30.14, 'max_score': 31441.65, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc31441650.jpg'}, {'end': 31988.163, 'src': 'embed', 'start': 31959.201, 'weight': 13, 'content': [{'end': 31970.451, 'text': 'but we will use the debugger to find out what is the problem and how to solve this problem, so that whenever we enter two numbers,', 'start': 31959.201, 'duration': 11.25}, {'end': 31976.396, 'text': "it's going to give us the proper sum of these two numbers and not the other answer.", 'start': 31970.451, 'duration': 5.945}, {'end': 31982.079, 'text': 'Now in order to start the debugging on your Python script, you can provide this command.', 'start': 31976.676, 'duration': 5.403}, {'end': 31988.163, 'text': 'So you can give python-m pdb and the name of your script.', 'start': 31982.119, 'duration': 6.044}], 'summary': 'Debug python script to ensure proper sum of two numbers.', 'duration': 28.962, 'max_score': 31959.201, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc31959201.jpg'}], 'start': 30368.032, 'title': 'Python operator overloading', 'summary': 'Covers creating a generic timing decorator function, operator overloading, and overloading operators in python with examples and explanations, yielding 5 as the sum of two radii and boolean values for less than and greater than comparisons, along with debugging techniques using pdb command line tool.', 'chapters': [{'end': 30978.094, 'start': 30368.032, 'title': 'Python decorators and operator overloading', 'summary': 'Covers creating a generic timing decorator function to measure the execution time of any function, as well as explaining operator overloading in python and the possibility of overloading operators with custom classes.', 'duration': 610.062, 'highlights': ['Creating a generic timing decorator function', 'Operator overloading in Python', 'Possibility of overloading operators with custom classes']}, {'end': 31302.985, 'start': 30978.394, 'title': 'Overloading operators in python', 'summary': 'Discusses overloading operators in python, including implementing inbuilt methods in a class, using the dir function to inspect inbuilt methods, and overloading the plus operator by implementing the add method in a class, with examples and explanation of associated methods for overloading other operators.', 'duration': 324.591, 'highlights': ['The chapter discusses overloading operators in Python, including implementing inbuilt methods in a class, using the dir function to inspect inbuilt methods, and overloading the plus operator by implementing the add method in a class, with examples and explanation of associated methods for overloading other operators.', 'The init method is used in Python to implement a constructor in a class.', 'The dir function is used to inspect inbuilt methods within a class, revealing various inbuilt methods that can be implemented, such as str, le, and ne methods.', 'The chapter provides an example of overloading the plus operator in a class by implementing the add method, showcasing the simplicity of defining the method and explaining the use of associated methods for overloading other operators.', 'The transcript introduces the use of the math module to calculate the area of a circle and the concept of overloading the plus operator by implementing the add method in a class.']}, {'end': 31525.567, 'start': 31303.025, 'title': 'Python operator overloading', 'summary': 'Demonstrates operator overloading in python, showcasing how the add, less than, and greater than methods are implemented to enable operations and comparisons between objects, resulting in the successful addition of object radii and comparison of circle radii, yielding 5 as the sum of two radii and boolean values for less than and greater than comparisons.', 'duration': 222.542, 'highlights': ['The chapter demonstrates how to overload the plus operator using the add method in Python, resulting in the successful addition of object radii.', 'The chapter illustrates the implementation of less than and greater than methods to compare circle radii, yielding boolean values for the comparisons.', 'The chapter presents an example where the sum of radii from two circle objects results in 5, showcasing the successful operator overloading and addition operation.']}, {'end': 32183.07, 'start': 31526.407, 'title': 'Python operator overloading and debugging with pdb', 'summary': 'Demonstrates how to overload operators in python, showcasing the use of built-in methods to achieve true and false results, and also illustrates how to use the pdb command line tool for debugging python scripts.', 'duration': 656.663, 'highlights': ['Python Operator Overloading', 'Implementation of Special Methods', 'Debugging with PDB']}], 'duration': 1815.038, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc30368032.jpg', 'highlights': ['Creating a generic timing decorator function', 'Operator overloading in Python', 'Possibility of overloading operators with custom classes', 'The chapter discusses overloading operators in Python, including implementing inbuilt methods in a class, using the dir function to inspect inbuilt methods, and overloading the plus operator by implementing the add method in a class, with examples and explanation of associated methods for overloading other operators.', 'The chapter demonstrates how to overload the plus operator using the add method in Python, resulting in the successful addition of object radii.', 'The chapter illustrates the implementation of less than and greater than methods to compare circle radii, yielding boolean values for the comparisons.', 'The chapter presents an example where the sum of radii from two circle objects results in 5, showcasing the successful operator overloading and addition operation.', 'The init method is used in Python to implement a constructor in a class.', 'The dir function is used to inspect inbuilt methods within a class, revealing various inbuilt methods that can be implemented, such as str, le, and ne methods.', 'The chapter provides an example of overloading the plus operator in a class by implementing the add method, showcasing the simplicity of defining the method and explaining the use of associated methods for overloading other operators.', 'The transcript introduces the use of the math module to calculate the area of a circle and the concept of overloading the plus operator by implementing the add method in a class.', 'Python Operator Overloading', 'Implementation of Special Methods', 'Debugging with PDB']}, {'end': 33635.51, 'segs': [{'end': 32307.155, 'src': 'embed', 'start': 32281.075, 'weight': 5, 'content': [{'end': 32288.26, 'text': "so i'm going to just write x here, because this line is already finished and it's going to give me the value of x.", 'start': 32281.075, 'duration': 7.185}, {'end': 32293.744, 'text': "so when i press enter, it's going to print 3, which is the value of x.", 'start': 32288.26, 'duration': 5.484}, {'end': 32302.611, 'text': "once again, i'm going to press the n command or the next command, and then i'm going to provide the second number, which is 4 this time,", 'start': 32293.744, 'duration': 8.867}, {'end': 32307.155, 'text': "and i'm going to print the value of the y now.", 'start': 32303.451, 'duration': 3.704}], 'summary': 'Demonstrating the value of x and y, where x=3 and y=4.', 'duration': 26.08, 'max_score': 32281.075, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32281075.jpg'}, {'end': 32385.76, 'src': 'embed', 'start': 32358.386, 'weight': 4, 'content': [{'end': 32371.832, 'text': "So, because input function is going to return the string value and this add function is just concatenate these two string values and it's not adding the two numbers.", 'start': 32358.386, 'duration': 13.446}, {'end': 32377.974, 'text': 'So what is command is going to give you the information about the variable or the function.', 'start': 32372.152, 'duration': 5.822}, {'end': 32380.356, 'text': 'but we will continue our debugging.', 'start': 32378.334, 'duration': 2.022}, {'end': 32385.76, 'text': 'so you can see here right now we are on this line, which is this line.', 'start': 32380.356, 'duration': 5.404}], 'summary': 'Debugging process continues, inspecting variables and functions.', 'duration': 27.374, 'max_score': 32358.386, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32358386.jpg'}, {'end': 32512.277, 'src': 'embed', 'start': 32486.704, 'weight': 6, 'content': [{'end': 32492.806, 'text': "so i'm going to just use this in function in front of both the input values.", 'start': 32486.704, 'duration': 6.102}, {'end': 32497.628, 'text': 'so now we know that our script is most probably going to run fine.', 'start': 32492.806, 'duration': 4.822}, {'end': 32500.849, 'text': "so let's try to set the breakpoint at this line,", 'start': 32497.628, 'duration': 3.221}, {'end': 32508.875, 'text': 'because both the values will be available at this point and we will know the values of x and y at this point.', 'start': 32500.849, 'duration': 8.026}, {'end': 32512.277, 'text': 'So we will be able to see the type of both the values.', 'start': 32508.915, 'duration': 3.362}], 'summary': "Using 'in' function to ensure script runs fine, setting breakpoint to check values of x and y.", 'duration': 25.573, 'max_score': 32486.704, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32486704.jpg'}, {'end': 32591.106, 'src': 'embed', 'start': 32562.375, 'weight': 3, 'content': [{'end': 32564.316, 'text': 'So you can see it takes these arguments.', 'start': 32562.375, 'duration': 1.941}, {'end': 32572.043, 'text': 'So in order to set the breakpoint, you just need to write break and then the line number on which you want to set the breakpoint.', 'start': 32564.797, 'duration': 7.246}, {'end': 32576.744, 'text': "So let's say I want to set the breakpoint on the line number 9.", 'start': 32572.483, 'duration': 4.261}, {'end': 32585.005, 'text': 'So I can just write break and then 9 and then press enter, which is going to set the breakpoint on line number 9.', 'start': 32576.744, 'duration': 8.261}, {'end': 32591.106, 'text': 'Now I can give the continue command in order to continue the execution of the script.', 'start': 32585.005, 'duration': 6.101}], 'summary': "Setting breakpoints by writing 'break' followed by line number and continuing execution.", 'duration': 28.731, 'max_score': 32562.375, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32562375.jpg'}, {'end': 32641.52, 'src': 'embed', 'start': 32608.452, 'weight': 7, 'content': [{'end': 32616.998, 'text': 'so right now we are on this line, which is line number 9, and now I can give this command, which is what is x,', 'start': 32608.452, 'duration': 8.546}, {'end': 32622.703, 'text': 'and once again it says that the type of this x is string.', 'start': 32616.998, 'duration': 5.705}, {'end': 32625.265, 'text': 'so what might be the problem?', 'start': 32622.703, 'duration': 2.562}, {'end': 32632.752, 'text': "the problem is, after changing our script, we haven't restarted the pdb.", 'start': 32625.265, 'duration': 7.487}, {'end': 32641.52, 'text': "we haven't exited the pdb and restarted the pdb, so this script is not loaded after we have edited the code right.", 'start': 32632.752, 'duration': 8.768}], 'summary': 'The issue may be due to not restarting the pdb after script changes, indicated by line 9 and x being a string.', 'duration': 33.068, 'max_score': 32608.452, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32608452.jpg'}, {'end': 32822.5, 'src': 'embed', 'start': 32791.316, 'weight': 2, 'content': [{'end': 32796.659, 'text': "So I'm going to just give the value of x and y, which is 3 and 4.", 'start': 32791.316, 'duration': 5.343}, {'end': 32803.665, 'text': "and it's going to stop the execution at this line, which is just after the set trace code.", 'start': 32796.659, 'duration': 7.006}, {'end': 32811.61, 'text': "okay?. So, because we have set the breakpoint on this line using this line of code, it's going to stop at this point.", 'start': 32803.665, 'duration': 7.945}, {'end': 32822.5, 'text': "And once again, I'm going to use, for example, what is command and I want to see the value of x and it's going to show us the type of x which is int.", 'start': 32812.131, 'duration': 10.369}], 'summary': 'Debugging code to stop at line after setting breakpoint, x=3, y=4', 'duration': 31.184, 'max_score': 32791.316, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32791316.jpg'}, {'end': 32883.762, 'src': 'embed', 'start': 32854.796, 'weight': 11, 'content': [{'end': 32860.997, 'text': "so it's going to give us the warning and that's how the developer will know that he needs to remove this line.", 'start': 32854.796, 'duration': 6.201}, {'end': 32865.278, 'text': 'so he is going to remove this line after the script is working.', 'start': 32860.997, 'duration': 4.281}, {'end': 32867.078, 'text': 'fine. so this was the second way.', 'start': 32865.278, 'duration': 1.8}, {'end': 32875.76, 'text': "I'm going to quit out of the PDB once again and let me show you the last way of debugging your code with the PDB command.", 'start': 32867.078, 'duration': 8.682}, {'end': 32877.8, 'text': "so I'm going to clear the terminal.", 'start': 32875.76, 'duration': 2.04}, {'end': 32883.762, 'text': "now I'm going to just give this Python command which is going to open the Python shell,", 'start': 32878.68, 'duration': 5.082}], 'summary': 'Demonstrating three ways of debugging code with pdb command', 'duration': 28.966, 'max_score': 32854.796, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32854796.jpg'}, {'end': 33058.267, 'src': 'embed', 'start': 33031.771, 'weight': 0, 'content': [{'end': 33041.241, 'text': "Now let's run this code normally without any debugging and I am going to just give two numbers here 44 and 55.", 'start': 33031.771, 'duration': 9.47}, {'end': 33050.165, 'text': "and it's going to give me this kind of output, which is wrong, because the sum of 44 and 55 is not obviously 4455.", 'start': 33041.241, 'duration': 8.924}, {'end': 33058.267, 'text': "now, some of you might already know the problem with this code, but let's debug it with the help of the python debugger.", 'start': 33050.165, 'duration': 8.102}], 'summary': 'Debugging a code with incorrect sum output 44 and 55.', 'duration': 26.496, 'max_score': 33031.771, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33031771.jpg'}, {'end': 33419.189, 'src': 'embed', 'start': 33395.357, 'weight': 8, 'content': [{'end': 33402.14, 'text': 'and also you will be able to see the value of the sum when you just click the step over button.', 'start': 33395.357, 'duration': 6.783}, {'end': 33409.824, 'text': 'and here you will be able to see the value of sum, which is 3344, which is the concatenation of these two numbers.', 'start': 33402.14, 'duration': 7.684}, {'end': 33413.845, 'text': 'so immediately you will know that you are not adding these two numbers.', 'start': 33409.824, 'duration': 4.021}, {'end': 33419.189, 'text': 'you are just concatenating two strings, which gives you this kind of result.', 'start': 33413.845, 'duration': 5.344}], 'summary': 'The value of the sum is 3344, a concatenation of two numbers, revealing string concatenation instead of addition.', 'duration': 23.832, 'max_score': 33395.357, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33395357.jpg'}, {'end': 33552.627, 'src': 'embed', 'start': 33525.667, 'weight': 1, 'content': [{'end': 33535.394, 'text': 'Now, if you want to know more about Python package index, you can visit on a website called pypi.org, pypi.org,', 'start': 33525.667, 'duration': 9.727}, {'end': 33542.26, 'text': 'And you will be able to get more information about Python Package Index on this website.', 'start': 33536.476, 'duration': 5.784}, {'end': 33552.627, 'text': 'So what is Python Package Index? Python Package Index or PyPy is a repository of software for Python programming language.', 'start': 33542.3, 'duration': 10.327}], 'summary': 'Python package index (pypi) is a repository of software for python programming language, accessible at pypi.org.', 'duration': 26.96, 'max_score': 33525.667, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33525667.jpg'}, {'end': 33605.544, 'src': 'embed', 'start': 33581.253, 'weight': 10, 'content': [{'end': 33588.698, 'text': 'And if you want to search for any special project, you can search it using this search text box.', 'start': 33581.253, 'duration': 7.445}, {'end': 33593.761, 'text': "So let's see how we can use Python pip using command line.", 'start': 33589.118, 'duration': 4.643}, {'end': 33601.323, 'text': 'So, generally, whenever you have installed python on your windows or any other operating system,', 'start': 33594.521, 'duration': 6.802}, {'end': 33605.544, 'text': 'pip will be installed with the same installation of python.', 'start': 33601.323, 'duration': 4.221}], 'summary': 'Python pip is installed with the installation of python on windows or other operating systems.', 'duration': 24.291, 'max_score': 33581.253, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33581253.jpg'}], 'start': 32183.07, 'title': 'Python debugging with pdb and pycharm', 'summary': 'Covers python debugging with pdb, demonstrating the use of commands like continue, next, print, and step, and also highlights the use of pycharm ide for debugging, including setting breakpoints, stepping into code, and viewing variable values, along with an introduction to python pip, a tool for managing python packages.', 'chapters': [{'end': 32408.82, 'start': 32183.07, 'title': 'Debugging with python pdb', 'summary': 'Explains how to use the python pdb debugger to step through and inspect code, identifying issues such as incorrect variable types and function behavior, using commands like continue, next, print, and step.', 'duration': 225.75, 'highlights': ['The continue command is used to continue the execution of your script from the current point, allowing for input of values and execution of the program.', "Using the 'what is' command helps in inspecting the type of value stored in a variable, aiding in identifying issues such as incorrect variable types.", 'The step command allows for stepping into a function in order to inspect its behavior and functionality during the debugging process.']}, {'end': 32738.298, 'start': 32408.82, 'title': 'Debugging with pdb in python', 'summary': "Demonstrates the use of python's pdb (python debugger) to debug a script, covering setting breakpoints, stepping through functions, typecasting input values, restarting the pdb, and successfully debugging the script resulting in the expected output.", 'duration': 329.478, 'highlights': ["Using the 'step' command to step into the function and 'next' command to move to the next line allows for efficient debugging.", "The 'continue' command enables the execution of the program and restarting the PDB after correcting the code ensures the script is loaded with the correct code.", "The importance of setting breakpoints and understanding their functionality in stopping the program's execution at specific lines for inspection is demonstrated.", "The process of typecasting input values using the 'int' function is highlighted as a crucial step in ensuring the script runs correctly.", "The significance of quitting the PDB using the 'quit' command to exit and then restarting the debugging process with the corrected code is emphasized."]}, {'end': 33128.796, 'start': 32738.298, 'title': 'Using pdb for python script debugging', 'summary': 'Demonstrates three ways of using pdb for debugging python scripts, including setting breakpoints, using pdb directly at specific points, and utilizing pdb within pycharm ide. it also emphasizes the benefits of using pdb within the script for linting warnings and showcases the process of debugging in pycharm ide.', 'duration': 390.498, 'highlights': ['The chapter demonstrates three ways of using PDB for debugging Python scripts, including setting breakpoints, using PDB directly at specific points, and utilizing PDB within PyCharm IDE.', 'It also emphasizes the benefits of using PDB within the script for linting warnings.', 'It showcases the process of debugging in PyCharm IDE.']}, {'end': 33635.51, 'start': 33129.275, 'title': 'Debugging with pycharm and introduction to python pip', 'summary': 'Covers how to use pycharm for debugging python code, including setting breakpoints, stepping into code, and viewing variable values, as well as an introduction to python pip, a command line tool for managing python packages found on the python package index, which currently has over 150,000 projects available.', 'duration': 506.235, 'highlights': ['The chapter covers how to use PyCharm for debugging Python code, including setting breakpoints, stepping into code, and viewing variable values, as well as an introduction to Python pip, a command line tool for managing Python packages found on the Python Package Index, which currently has over 150,000 projects available.', 'PyCharm allows setting breakpoints at specific lines of code, stepping over code, and viewing variable values during debugging.', 'Python pip is a command line tool for installing and managing Python packages, which are found on the Python Package Index (PyPi) that currently has over 150,000 projects available.', 'The Python Package Index (PyPi) is a repository of software for Python programming language, helping users find and install software developed and shared by the Python community.', "Users can check the installed version of pip on their system using the command 'python --version'."]}], 'duration': 1452.44, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc32183070.jpg', 'highlights': ['PyCharm IDE allows setting breakpoints, stepping into code, and viewing variable values', 'Python pip is a tool for managing Python packages found on PyPi with over 150,000 projects', 'PDB demonstrates setting breakpoints, using PDB directly, and utilizing PDB within PyCharm IDE', 'Continue command allows for input of values and execution of the program during debugging', 'Step command enables stepping into a function to inspect its behavior and functionality', "Using 'what is' command helps in inspecting the type of value stored in a variable", 'Importance of setting breakpoints and understanding their functionality in stopping program execution', "Quitting PDB using 'quit' command to exit and then restarting the debugging process", "Process of typecasting input values using the 'int' function is highlighted as crucial", 'PyCharm allows setting breakpoints, stepping over code, and viewing variable values during debugging', "Users can check the installed version of pip on their system using the command 'python --version'", 'PDB within the script aids in linting warnings and debugging in PyCharm IDE']}, {'end': 35186.72, 'segs': [{'end': 33805.145, 'src': 'embed', 'start': 33754.386, 'weight': 0, 'content': [{'end': 33765.63, 'text': "I want to just search for a package called flask and I'm going to press enter and it's going to give me a big list of package which are related to flask.", 'start': 33754.386, 'duration': 11.244}, {'end': 33775.314, 'text': "So because flask is a popular package on Python package index, that's why you can see so many options for the flask package.", 'start': 33765.93, 'duration': 9.384}, {'end': 33783.038, 'text': "So I'm going to once again clear the terminal and i'm going to install this package, which is flask.", 'start': 33775.714, 'duration': 7.324}, {'end': 33785.76, 'text': 'so in order to install the package,', 'start': 33783.038, 'duration': 2.722}, {'end': 33795.526, 'text': "you give this command pip install and the name of the package and then press enter and it's going to start downloading this package.", 'start': 33785.76, 'duration': 9.766}, {'end': 33805.145, 'text': 'so now you can see this package is successfully installed on my system and you can see the version which is installed is flask 1.0..', 'start': 33795.526, 'duration': 9.619}], 'summary': "Using 'pip install flask' installs flask 1.0 successfully.", 'duration': 50.759, 'max_score': 33754.386, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33754386.jpg'}, {'end': 33875.929, 'src': 'embed', 'start': 33849.42, 'weight': 2, 'content': [{'end': 33857.47, 'text': "Now after installing a package, I'm going to verify if this package is available using the Python shell or not.", 'start': 33849.42, 'duration': 8.05}, {'end': 33863.117, 'text': "And once again, I'm going to try to import this package which is flask and then press enter.", 'start': 33857.991, 'duration': 5.126}, {'end': 33867.843, 'text': "And you will be able to see now I don't see any error.", 'start': 33863.958, 'duration': 3.885}, {'end': 33875.929, 'text': "So, if you don't see any error, this means that this package is successfully installed and in future,", 'start': 33868.443, 'duration': 7.486}], 'summary': 'Verified successful installation of flask package in python shell.', 'duration': 26.509, 'max_score': 33849.42, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33849420.jpg'}, {'end': 33925.235, 'src': 'embed', 'start': 33898.665, 'weight': 3, 'content': [{'end': 33903.788, 'text': 'which is going to print the list of all the packages which is already installed on your system.', 'start': 33898.665, 'duration': 5.123}, {'end': 33908.771, 'text': 'Now in order to uninstall any package you just need to give this command.', 'start': 33904.188, 'duration': 4.583}, {'end': 33911.932, 'text': 'pip uninstall and the name of the package.', 'start': 33909.051, 'duration': 2.881}, {'end': 33917.693, 'text': 'for example, i want to uninstall this package which we have installed, which is flask,', 'start': 33911.932, 'duration': 5.761}, {'end': 33925.235, 'text': "and i'm going to press enter and you can see it says uninstalling flask and it will ask you whether you want to proceed or not.", 'start': 33917.693, 'duration': 7.542}], 'summary': "Explains how to uninstall packages using 'pip uninstall', with example of uninstalling 'flask'.", 'duration': 26.57, 'max_score': 33898.665, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33898665.jpg'}, {'end': 33972.942, 'src': 'embed', 'start': 33942.242, 'weight': 4, 'content': [{'end': 33944.624, 'text': 'You can once again give this command pip list.', 'start': 33942.242, 'duration': 2.382}, {'end': 33950.247, 'text': 'And now you can see Flask is no more in the list of installed packages.', 'start': 33944.964, 'duration': 5.283}, {'end': 33956.211, 'text': 'So this is how you can use Python pip in order to install and manage your Python packages.', 'start': 33950.527, 'duration': 5.684}, {'end': 33963.115, 'text': 'In the last video, I have shown you how you can install and manage your packages using Python pip.', 'start': 33956.771, 'duration': 6.344}, {'end': 33972.942, 'text': "Now in this video, I'm going to show you how you can install and manage your pip packages using PyCharm IDE.", 'start': 33964.076, 'duration': 8.866}], 'summary': 'Using pip to manage python packages, flask removed, pycharm ide for management', 'duration': 30.7, 'max_score': 33942.242, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33942242.jpg'}, {'end': 34377.382, 'src': 'embed', 'start': 34348.494, 'weight': 7, 'content': [{'end': 34360.485, 'text': 'so now we have x variable inside the local scope of the function and also we have another x variable outside the function in the global scope.', 'start': 34348.494, 'duration': 11.991}, {'end': 34362.687, 'text': 'so what do you think now will happen?', 'start': 34360.485, 'duration': 2.202}, {'end': 34365.33, 'text': "so let's run the code and let's see what happens.", 'start': 34362.687, 'duration': 2.643}, {'end': 34377.382, 'text': "so you can see here it's going to print local because the variable will take the local value or local value have more priority than the global value.", 'start': 34365.33, 'duration': 12.052}], 'summary': 'Local variable has priority over global variable when printed.', 'duration': 28.888, 'max_score': 34348.494, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc34348494.jpg'}, {'end': 34441.577, 'src': 'embed', 'start': 34408.601, 'weight': 11, 'content': [{'end': 34411.342, 'text': "And let's run the code and let's see what happens.", 'start': 34408.601, 'duration': 2.741}, {'end': 34415.884, 'text': 'So this local is printed using this print statement.', 'start': 34412.022, 'duration': 3.862}, {'end': 34421.787, 'text': 'and the global is printed using the print statement which is outside the function.', 'start': 34416.304, 'duration': 5.483}, {'end': 34424.588, 'text': 'So right now things are easy to understand.', 'start': 34422.187, 'duration': 2.401}, {'end': 34433.093, 'text': 'When you declare this value x outside the function in the global scope and call the value of x using print,', 'start': 34424.968, 'duration': 8.125}, {'end': 34441.577, 'text': "then it's going to print the global and whenever you use the variable inside the function in the local scope,", 'start': 34433.093, 'duration': 8.484}], 'summary': 'Understanding scope: global vs. local variables in python.', 'duration': 32.976, 'max_score': 34408.601, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc34408601.jpg'}, {'end': 34547.113, 'src': 'embed', 'start': 34515.615, 'weight': 6, 'content': [{'end': 34522.203, 'text': 'so, right now, what we are trying to do is we are trying to mix the global and the local variables,', 'start': 34515.615, 'duration': 6.588}, {'end': 34530.454, 'text': 'and python is not able to understand whether x is a local variable or x is a global variable.', 'start': 34522.203, 'duration': 8.251}, {'end': 34543.529, 'text': 'So, to solve this problem, we need to state explicitly that this x, which we want to call using this print statement, is the global value, right?', 'start': 34530.954, 'duration': 12.575}, {'end': 34547.113, 'text': 'So x here we want to take from the global value.', 'start': 34543.569, 'duration': 3.544}], 'summary': 'Mixing global and local variables in python, clarifying global value for x.', 'duration': 31.498, 'max_score': 34515.615, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc34515615.jpg'}, {'end': 34742.316, 'src': 'embed', 'start': 34713.094, 'weight': 9, 'content': [{'end': 34718.397, 'text': "that's why here also, it has printed the value of x is equal to local.", 'start': 34713.094, 'duration': 5.303}, {'end': 34721.779, 'text': "Now let's talk about the non-local variables.", 'start': 34718.777, 'duration': 3.002}, {'end': 34730.346, 'text': 'So non-local variables behave almost similar to global variables, but they have some differences.', 'start': 34722.38, 'duration': 7.966}, {'end': 34739.534, 'text': "So let's say I will define instead of saying that this is a global variable, I'm going to say that this is a non-local variable.", 'start': 34730.907, 'duration': 8.627}, {'end': 34742.316, 'text': "And when I run the code, it's going to complain.", 'start': 34740.094, 'duration': 2.222}], 'summary': 'Non-local variables behave similarly to global variables, but with differences.', 'duration': 29.222, 'max_score': 34713.094, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc34713094.jpg'}], 'start': 33635.51, 'title': 'Managing python packages and variable scopes', 'summary': 'Covers using pip for managing python packages, with a focus on installation, uninstallation, and verification of packages, and also delves into variable scopes in python, explaining global, local, and non-local variables with examples to illustrate their behavior and usage.', 'chapters': [{'end': 33898.665, 'start': 33635.51, 'title': 'Using pip for python 3.7', 'summary': 'Introduces the usage of pip, a tool for managing python packages. it covers the commands for installing, uninstalling, and getting information about packages, along with demonstrating the installation and verification of the flask package.', 'duration': 263.155, 'highlights': ['Pip commands usage and options', 'Installing the Flask package', "Getting package information with 'pip show'", 'Verifying the installation of a package', "Listing all installed packages with 'pip list'"]}, {'end': 34187.488, 'start': 33898.665, 'title': 'Managing python packages with pip and pycharm', 'summary': 'Demonstrates how to use python pip to install and manage packages, including uninstalling packages using pip uninstall, and then shows how to install and manage pip packages using pycharm ide, with a specific example of installing opencv-python and configuring it in the ide.', 'duration': 288.823, 'highlights': ["The chapter demonstrates how to use Python pip to uninstall packages, such as uninstalling the 'flask' package, and then verifies the successful uninstallation by using 'pip list' to confirm the package removal.", "It then proceeds to show how to install and manage pip packages using PyCharm IDE, providing a detailed walkthrough of adding the 'opencv-python' package to the project interpreter in PyCharm, including searching for the package, matching the version from the Python package index, and successfully installing the package for the project.", "The process includes verifying the successful installation of the 'opencv-python' package in the PyCharm IDE, ensuring that the package is properly configured and ready for use in the project."]}, {'end': 34547.113, 'start': 34188.048, 'title': 'Managing pip packages and understanding variable scopes', 'summary': 'Demonstrates how to manage pip packages in pycharm ide, and explains the concept of global, local, and non-local variables in python, highlighting the resolution of variable scope ambiguity.', 'duration': 359.065, 'highlights': ['The chapter demonstrates the process of installing and managing pip packages in PyCharm IDE, showcasing the import of the OpenCV library and running code to verify the successful setup.', 'The explanation of global and local variable scopes in Python, including the precedence of local variables over global variables and the usage of explicit global declaration to resolve scope ambiguity.']}, {'end': 35186.72, 'start': 34547.553, 'title': 'Python global, local, and non-local variables', 'summary': 'Explains the usage and differences between global, local, and non-local variables in python, showcasing how to declare and access them within functions and nested functions, with examples demonstrating their behavior and reassignment.', 'duration': 639.167, 'highlights': ['The global keyword in Python is used to explicitly declare a variable as global, allowing it to be accessed and assigned globally, as demonstrated by reassigning the global variable x and accessing it from different scopes.', 'The non-local keyword in Python is used to declare a variable as non-local, allowing it to be accessed within nested functions, with examples showcasing how non-local variables behave and are reassigned within nested functions.', 'Local variables in Python are accessed within the scope of their declaration, with examples demonstrating how local variables are assigned and accessed within functions, and how their values differ from global and non-local variables.']}], 'duration': 1551.21, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/bZ6NL59FMoc/pics/bZ6NL59FMoc33635510.jpg', 'highlights': ['Installing the Flask package', "Getting package information with 'pip show'", "Listing all installed packages with 'pip list'", "Uninstalling the 'flask' package using pip", 'Installing and managing pip packages in PyCharm IDE', 'Importing the OpenCV library and running code in PyCharm IDE', 'Demonstrating global and local variable scopes in Python', 'Explicit global declaration to resolve scope ambiguity', 'Using the global keyword to declare a variable as global', 'Using the non-local keyword to declare a variable as non-local', 'Accessing and reassigning non-local variables within nested functions', 'Accessing and assigning local variables within functions']}], 'highlights': ['Python is versatile, used for web development, game development, machine learning, and data science.', "Python's widespread usage in educational institutes due to its ease of learning and multi-paradigm support.", 'The course covers basic Python concepts like variables, data types, operators, and control statements.', 'Python supports multiple programming paradigms, including object oriented, imperative, functional, and procedural styles.', 'The community version of PyCharm is free and open source, making it accessible for users with no cost.', 'The priority of operators in mathematical expressions is determined by their position from left to right, with the leftmost operator having the highest priority.', 'The max function in Python finds the maximum value from input numbers, resulting in the max value of 101', 'The len function can be used to determine the length of a tuple, providing a convenient way to quantify the size of the data structure.', 'Covers accessing, adding, removing, updating, and manipulating elements in dictionaries', 'The first benefit of using functions is that it makes the code simpler, reducing the need for repetitive code and facilitating execution across different places.', 'Object-oriented programming emphasizes classes and allows creation of different objects (2)', 'The init method is used as a constructor to initialize attributes or functions, and it is the first method called when creating an instance of a class.', 'The chapter covers the various modes for file handling in Python, including append, read, write, and read-write modes, with examples of creating, writing, and reading text files.', 'The json.loads function converts JSON or string into a Python dictionary', 'Generators are more memory efficient than normal functions, suitable for large datasets and streaming data.', 'The reduce function obtains the sum of all elements within a list, resulting in the value 37 by applying the lambda function to the iterable collection.', 'Closures in Python remember the state of variables and can be used in place of classes, sometimes being more efficient than normal functions.', 'The chapter discusses overloading operators in Python, including implementing inbuilt methods in a class, using the dir function to inspect inbuilt methods, and overloading the plus operator by implementing the add method in a class, with examples and explanation of associated methods for overloading other operators.', 'PyCharm IDE allows setting breakpoints, stepping into code, and viewing variable values', 'Installing the Flask package', 'Demonstrating global and local variable scopes in Python']}