title
Learn Python Programming - Python Course

description
Learn Python programming with 30 quick & easy lessons. No time wasted! 👉Subscribe for more Python tutorials like this: https://bit.ly/3fBXEm7 🔥Get the COMPLETE Python Course: http://bit.ly/35BLHHP Python Exercises for Beginners: https://programmingwithmosh.com/python/python-exercises-and-questions-for-beginners/ Python Cheat Sheet: https://programmingwithmosh.com/python/python-3-cheat-sheet/ Subscribe to my YouTube channel for more videos: https://www.youtube.com/channel/UCWv7vMbMWH4-V0ZXdmDpPBA?sub_confirmation=1 Want to learn more from me? Check out my blog and courses: Courses: https://codewithmosh.com Blog: https://programmingwithmosh.com Facebook: https://www.facebook.com/programmingwithmosh/ Twitter: https://twitter.com/moshhamedani TABLE OF CONTENT: 00:00:00 What is Python? 00:03:22 Installing Python 00:05:43 Code Editors 00:06:42 Your First Python Program 00:09:09 Python Extensions 00:12:03 Linting Python Code 00:16:19 Formatting Python Code 00:20:15 Running Python Code 00:23:16 Python Implementations 00:25:46 How Python Code is Executed 00:29:43 Variables 00:31:50 Dynamic Typing 00:34:28 Type Annotation 00:36:20 Mutable and Immutable Types 00:39:19 Strings 00:43:32 Escape Sequences 00:46:54 Formatted Strings 00:49:04 Useful String Methods 00:52:26 Numbers 00:54:37 Arithmetic Operators 00:56:26 Working with Numbers 00:59:05 Type Conversions 01:03:29 Conditional Statements 01:06:55 Logical Operators 01:10:03 Ternary Operators 01:11:22 For Loops 01:15:32 For..Else 01:18:12 While Loops 01:20:00 Functions 01:24:43 *args 01:27:12 **args 01:29:18 Scope 01:32:57 Debugging 01:36:31 VSCode Coding Tricks (Windows) 01:38:55 VSCode Coding Tricks (Mac) 01:40:45 Exercise: FizzBuzz 01:42:16 Solution

detail
{'title': 'Learn Python Programming - Python Course', 'heatmap': [{'end': 1562.656, 'start': 1491.167, 'weight': 0.978}, {'end': 1883.798, 'start': 1813.801, 'weight': 1}], 'summary': "Course 'learn python programming' covers python's popularity and demand, its cross-platform nature, vs code features, python syntax, control flow, functions, debugging in vs code, and the fizzbuzz algorithm, emphasizing simplicity and practical demonstrations.", 'chapters': [{'end': 131.591, 'segs': [{'end': 86.91, 'src': 'embed', 'start': 18.112, 'weight': 0, 'content': [{'end': 28.325, 'text': "Python is the world's fastest growing and most popular programming language, not just amongst software developers, but also amongst mathematicians,", 'start': 18.112, 'duration': 10.213}, {'end': 33.731, 'text': 'data analysts, scientists, accountants, network engineers and even kids.', 'start': 28.325, 'duration': 5.406}, {'end': 37.515, 'text': "In fact, it's the ideal programming language to learn first.", 'start': 34.412, 'duration': 3.103}, {'end': 41.418, 'text': 'But what makes Python so special? Here are six reasons.', 'start': 38.055, 'duration': 3.363}, {'end': 49.005, 'text': 'With Python, you can solve complex problems in less time with fewer lines of code than many other languages.', 'start': 42.059, 'duration': 6.946}, {'end': 58.272, 'text': "That's why huge companies like Google, Spotify, Dropbox, and Facebook have embraced this beautiful and powerful language.", 'start': 49.645, 'duration': 8.627}, {'end': 59.653, 'text': "Here's an example.", 'start': 58.852, 'duration': 0.801}, {'end': 65.077, 'text': "Let's say we want to extract the first three characters of the text, hello world.", 'start': 60.213, 'duration': 4.864}, {'end': 68.099, 'text': 'This is the code we would have to write in C sharp.', 'start': 65.798, 'duration': 2.301}, {'end': 70.841, 'text': 'This is how we would do this in JavaScript.', 'start': 68.88, 'duration': 1.961}, {'end': 73.464, 'text': "And here's how we would do it in Python.", 'start': 71.542, 'duration': 1.922}, {'end': 78.026, 'text': "See how clean and simple the language is? And that's just the beginning.", 'start': 74.244, 'duration': 3.782}, {'end': 86.91, 'text': 'Python is a multipurpose language and you can use it for a wide range of jobs, such as data analysis, AI and machine learning,', 'start': 78.586, 'duration': 8.324}], 'summary': 'Python is the fastest growing programming language, used by major companies and versatile in solving complex problems efficiently.', 'duration': 68.798, 'max_score': 18.112, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ18112.jpg'}, {'end': 131.591, 'src': 'embed', 'start': 107.76, 'weight': 2, 'content': [{'end': 118.985, 'text': 'In fact, according to Indeed.com, the average salary of a Python developer in the US was over $115, 000 in March 2018.', 'start': 107.76, 'duration': 11.225}, {'end': 123.307, 'text': 'And here are four more reasons that make Python the most desirable language.', 'start': 118.985, 'duration': 4.322}, {'end': 131.591, 'text': "Python is a high-level language, so you don't have to worry about complex tasks such as memory management as you do in C++.", 'start': 123.927, 'duration': 7.664}], 'summary': 'Python developers in the us earned over $115,000 in march 2018, making python the most desirable language due to its high-level nature and simplification of complex tasks.', 'duration': 23.831, 'max_score': 107.76, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ107760.jpg'}], 'start': 2.202, 'title': 'Python: the ideal programming language', 'summary': "Introduces python as the world's fastest growing and most popular programming language, highlighting its simplicity, versatility, and high demand in various fields, with a specific mention of the average salary of a python developer in the us being over $115,000 in march 2018.", 'chapters': [{'end': 131.591, 'start': 2.202, 'title': 'Python: the ideal programming language', 'summary': "Introduces python as the world's fastest growing and most popular programming language, highlighting its simplicity, versatility, and high demand in various fields, with a specific mention of the average salary of a python developer in the us being over $115,000 in march 2018.", 'duration': 129.389, 'highlights': ["Python is the world's fastest growing and most popular programming language, used by a wide range of professionals, including mathematicians, data analysts, scientists, accountants, network engineers, and kids.", 'With Python, you can solve complex problems in less time with fewer lines of code than many other languages, with examples comparing Python to C sharp and JavaScript.', 'Python is a multipurpose language used for data analysis, AI and machine learning, automation scripts, web, mobile, and desktop applications, software testing, and hacking, offering high-paying, long-lasting career opportunities, especially in AI and machine learning.', 'The average salary of a Python developer in the US was over $115,000 in March 2018, making Python a highly desirable language for professionals.', 'Python is a high-level language, relieving developers from complex tasks such as memory management as required in languages like C++.']}], 'duration': 129.389, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ2202.jpg', 'highlights': ["Python is the world's fastest growing and most popular programming language, used by a wide range of professionals.", 'Python is a multipurpose language used for data analysis, AI and machine learning, automation scripts, web, mobile, and desktop applications, software testing, and hacking.', 'The average salary of a Python developer in the US was over $115,000 in March 2018, making Python a highly desirable language for professionals.', 'With Python, you can solve complex problems in less time with fewer lines of code than many other languages.', 'Python is a high-level language, relieving developers from complex tasks such as memory management as required in languages like C++.']}, {'end': 758.835, 'segs': [{'end': 175.762, 'src': 'embed', 'start': 132.311, 'weight': 0, 'content': [{'end': 138.494, 'text': "It's cross-platform, which means you can build and run Python apps on Windows, Mac, and Linux.", 'start': 132.311, 'duration': 6.183}, {'end': 143.476, 'text': 'It has a huge community, so whenever you get stuck, there is someone out there to help.', 'start': 139.154, 'duration': 4.322}, {'end': 148.978, 'text': 'And it has a large ecosystem of libraries, frameworks, and tools.', 'start': 144.236, 'duration': 4.742}, {'end': 156.421, 'text': 'Whatever you want to do, it is likely that someone else has done it before, because Python has been around for over 20 years.', 'start': 149.518, 'duration': 6.903}, {'end': 159.102, 'text': 'There are two versions of Python out there.', 'start': 157.261, 'duration': 1.841}, {'end': 166.265, 'text': 'Python 2, which is the legacy version of Python, and is going to be supported until year 2020.', 'start': 159.602, 'duration': 6.663}, {'end': 168.646, 'text': 'And Python 3, which is Python for the future.', 'start': 166.265, 'duration': 2.381}, {'end': 172.301, 'text': "In this course, you're going to learn Python 3.", 'start': 169.246, 'duration': 3.055}, {'end': 175.762, 'text': "Hi, my name is Mosh Hamadani, and I'm going to be your instructor in this course.", 'start': 172.301, 'duration': 3.461}], 'summary': 'Python is cross-platform, with a large community and an extensive ecosystem of libraries and frameworks. python 3 is the focus of this course.', 'duration': 43.451, 'max_score': 132.311, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ132311.jpg'}, {'end': 255.297, 'src': 'embed', 'start': 224.629, 'weight': 3, 'content': [{'end': 229.991, 'text': "Don't worry, all the materials in this course will continue to apply with the future versions of Python.", 'start': 224.629, 'duration': 5.362}, {'end': 232.192, 'text': 'So go ahead and download Python.', 'start': 230.611, 'duration': 1.581}, {'end': 235.789, 'text': 'And then run it.', 'start': 235.069, 'duration': 0.72}, {'end': 241.292, 'text': "If you're on windows, you're going to see this checkbox here, add Python to path.", 'start': 235.809, 'duration': 5.483}, {'end': 242.892, 'text': 'This is very important.', 'start': 241.732, 'duration': 1.16}, {'end': 243.933, 'text': 'Make sure to take it.', 'start': 243.032, 'duration': 0.901}, {'end': 246.374, 'text': "Otherwise you're not going to be able to follow the course.", 'start': 244.213, 'duration': 2.161}, {'end': 248.915, 'text': 'So now go ahead and install it.', 'start': 247.294, 'duration': 1.621}, {'end': 255.297, 'text': "Now let's verify that we have installed Python properly.", 'start': 252.336, 'duration': 2.961}], 'summary': 'Python course materials apply to future versions. ensure python is added to path for proper installation.', 'duration': 30.668, 'max_score': 224.629, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ224629.jpg'}, {'end': 392.022, 'src': 'embed', 'start': 363.926, 'weight': 2, 'content': [{'end': 367.109, 'text': 'For both editors and IDEs, there are lots of options out there.', 'start': 363.926, 'duration': 3.183}, {'end': 373.274, 'text': 'The most popular editors are Visual Studio Code or VS Code, Atom, and Sublime.', 'start': 367.529, 'duration': 5.745}, {'end': 375.135, 'text': 'You can use the editor that you prefer.', 'start': 373.494, 'duration': 1.641}, {'end': 379.878, 'text': 'The most popular IDE is PyCharm, which is a JetBrains product.', 'start': 376.016, 'duration': 3.862}, {'end': 384.339, 'text': "In this course, I'm going to use VS Code because that's my favorite code editor.", 'start': 380.458, 'duration': 3.881}, {'end': 392.022, 'text': "And later, I'm going to show you how to install an extension to convert VS Code into a powerful IDE for building Python programs.", 'start': 384.839, 'duration': 7.183}], 'summary': 'Various editors and ides available, with popular choices being vs code, atom, sublime, and pycharm, which is the most popular ide. the speaker will demonstrate using vs code and extending it into a powerful ide for python programming.', 'duration': 28.096, 'max_score': 363.926, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ363926.jpg'}, {'end': 584.132, 'src': 'embed', 'start': 555.313, 'weight': 4, 'content': [{'end': 561.778, 'text': "I'm gonna show you how to convert VS Code to a powerful IDE by using an extension called Python.", 'start': 555.313, 'duration': 6.465}, {'end': 570.723, 'text': 'With this extension or plugin, we get a number of features such as linting, which basically means analyzing our code for potential errors.', 'start': 562.338, 'duration': 8.385}, {'end': 575.407, 'text': 'We also get debugging, which involves finding and fixing errors.', 'start': 571.324, 'duration': 4.083}, {'end': 577.128, 'text': "We'll look at this later in the course.", 'start': 575.807, 'duration': 1.321}, {'end': 584.132, 'text': "We also get auto completion, which basically helps us write code faster, so we don't have to type every character.", 'start': 577.728, 'duration': 6.404}], 'summary': 'Convert vs code to a powerful ide with python extension for linting, debugging, and auto completion.', 'duration': 28.819, 'max_score': 555.313, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ555313.jpg'}, {'end': 700.033, 'src': 'embed', 'start': 672.427, 'weight': 5, 'content': [{'end': 677.608, 'text': 'PyLint is one of the most popular ones that this Python extension uses by default.', 'start': 672.427, 'duration': 5.181}, {'end': 680.808, 'text': 'So we need to go ahead and install PyLint as well.', 'start': 678.048, 'duration': 2.76}, {'end': 685.129, 'text': 'Now to do this, first we need to change our Python environment.', 'start': 681.408, 'duration': 3.721}, {'end': 690.61, 'text': 'So if you look here on the bottom left corner, you can see the current Python that is used in VS Code.', 'start': 685.529, 'duration': 5.081}, {'end': 692.321, 'text': 'That is Python 2.6.', 'start': 690.91, 'duration': 1.411}, {'end': 694.411, 'text': '9 on my machine.', 'start': 692.321, 'duration': 2.09}, {'end': 696.492, 'text': 'Chances are you see a different version here.', 'start': 694.731, 'duration': 1.761}, {'end': 700.033, 'text': 'So click here In this list.', 'start': 696.992, 'duration': 3.041}], 'summary': 'Python extension in vs code uses pylint by default. change python environment to install pylint.', 'duration': 27.606, 'max_score': 672.427, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ672427.jpg'}, {'end': 764.177, 'src': 'embed', 'start': 735.919, 'weight': 6, 'content': [{'end': 740.723, 'text': 'Print, space, with no parentheses, and then hello world.', 'start': 735.919, 'duration': 4.804}, {'end': 748.988, 'text': 'Earlier I told you that print is a built-in function, and whenever you want to use or call a function, you should always use parentheses.', 'start': 741.743, 'duration': 7.245}, {'end': 755.573, 'text': "Now, to be more precise, this is actually valid Python 2 code, but because we're using Python 3 here,", 'start': 749.488, 'duration': 6.085}, {'end': 758.835, 'text': "this is invalid code from Python 3's point of view.", 'start': 755.573, 'duration': 3.262}, {'end': 764.177, 'text': 'So now when I save the changes, you can see this red underline here.', 'start': 759.515, 'duration': 4.662}], 'summary': 'Usage of print function without parentheses is invalid in python 3.', 'duration': 28.258, 'max_score': 735.919, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ735919.jpg'}], 'start': 132.311, 'title': 'Python: cross-platform, community, and ecosystem', 'summary': 'Introduces python as a cross-platform language with a vast community and ecosystem, emphasizing python 3 as the version for the future, its installation process, and recommending visual studio code as the preferred code editor. it also covers the basics of python programming, including built-in functions like print and features of vs code as a powerful ide, such as linting, debugging, auto completion, code formatting, unit testing, and code snippets.', 'chapters': [{'end': 447.121, 'start': 132.311, 'title': 'Python: cross-platform, community, and ecosystem', 'summary': 'Introduces python as a cross-platform language with a vast community and ecosystem, highlighting python 3 as the version for the future, emphasizing its installation process, and recommending visual studio code as the preferred code editor.', 'duration': 314.81, 'highlights': ['Python 3 is the version for the future, with Python 2 being the legacy version supported until 2020.', 'Python is cross-platform, allowing building and running Python apps on Windows, Mac, and Linux.', 'Emphasis on the importance of adding Python to path during installation to avoid issues in following the course.', 'Recommendation of Visual Studio Code as the preferred code editor for building Python programs.']}, {'end': 758.835, 'start': 447.741, 'title': 'Python programming basics', 'summary': 'Covers the basics of python programming, including built-in functions like print and features of vs code as a powerful ide, such as linting, debugging, auto completion, code formatting, unit testing, and code snippets.', 'duration': 311.094, 'highlights': ['VS Code features for Python programming', 'Need for Python environment setup and PyLint installation', 'Explanation of print function and function call syntax']}], 'duration': 626.524, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ132311.jpg', 'highlights': ['Python 3 is the version for the future, with Python 2 being the legacy version supported until 2020.', 'Python is cross-platform, allowing building and running Python apps on Windows, Mac, and Linux.', 'Recommendation of Visual Studio Code as the preferred code editor for building Python programs.', 'Emphasis on the importance of adding Python to path during installation to avoid issues in following the course.', 'VS Code features for Python programming', 'Need for Python environment setup and PyLint installation', 'Explanation of print function and function call syntax']}, {'end': 1781.78, 'segs': [{'end': 871.108, 'src': 'embed', 'start': 837.047, 'weight': 1, 'content': [{'end': 840.21, 'text': "On Windows, it's probably shift, control M.", 'start': 837.047, 'duration': 3.163}, {'end': 846.355, 'text': "So as you're working with VS Code, try to memorize these shortcuts because they really help you write code faster.", 'start': 840.21, 'duration': 6.145}, {'end': 851.358, 'text': "Now let's take a look at this problems panel.", 'start': 847.396, 'duration': 3.962}, {'end': 856.321, 'text': 'So this problems panel lists all the issues in your code in one place.', 'start': 851.358, 'duration': 4.963}, {'end': 863.224, 'text': 'So if you have an application with multiple files, This is really useful because some of those files may not currently be open.', 'start': 856.321, 'duration': 6.903}, {'end': 871.108, 'text': 'So this linter pilot will analyze all your files and if it finds any issues, it will list them here in the problems panel.', 'start': 863.224, 'duration': 7.884}], 'summary': 'Learning vs code shortcuts can speed up coding. problems panel lists issues in code for easy access.', 'duration': 34.061, 'max_score': 837.047, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ837047.jpg'}, {'end': 937.311, 'src': 'embed', 'start': 907.267, 'weight': 0, 'content': [{'end': 911.05, 'text': 'With this command palette, you can execute various commands in VS Code.', 'start': 907.267, 'duration': 3.783}, {'end': 916.314, 'text': 'If you type lint here, you can see all commands related to linting.', 'start': 911.69, 'duration': 4.624}, {'end': 925.24, 'text': 'As you can see, all these commands are prefixed with Python because these commands come with a Python extension that we installed earlier.', 'start': 917.014, 'duration': 8.226}, {'end': 928.923, 'text': 'So these are additional features available to us in VS Code.', 'start': 925.46, 'duration': 3.463}, {'end': 931.785, 'text': 'The first command here is select linter.', 'start': 929.603, 'duration': 2.182}, {'end': 937.311, 'text': 'This list, you can see various linters available for pilot.', 'start': 933.567, 'duration': 3.744}], 'summary': "Vs code's command palette offers python-specific linting commands and linters.", 'duration': 30.044, 'max_score': 907.267, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ907267.jpg'}, {'end': 1136.522, 'src': 'embed', 'start': 1108.237, 'weight': 4, 'content': [{'end': 1111.039, 'text': 'So there are a bunch of tools for formatting Python code.', 'start': 1108.237, 'duration': 2.802}, {'end': 1119.384, 'text': 'The most popular one is auto pep-8, and this is the tool that this Python extension we installed uses to format our code.', 'start': 1111.039, 'duration': 8.345}, {'end': 1125.767, 'text': "So let's go ahead and install this Good now one more time.", 'start': 1119.384, 'duration': 6.383}, {'end': 1133.82, 'text': "Let's open up the command palette and execute format document See, this tool automatically formats our code.", 'start': 1125.807, 'duration': 8.013}, {'end': 1136.522, 'text': "Beautiful Let's take a look at another example.", 'start': 1133.92, 'duration': 2.602}], 'summary': 'Auto pep-8 is the most popular tool for formatting python code.', 'duration': 28.285, 'max_score': 1108.237, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1108237.jpg'}, {'end': 1189.385, 'src': 'embed', 'start': 1161.497, 'weight': 5, 'content': [{'end': 1167.639, 'text': "so once again, let's format our code that is better, beautiful.", 'start': 1161.497, 'duration': 6.142}, {'end': 1169.479, 'text': 'now let me show you a trick.', 'start': 1167.639, 'duration': 1.84}, {'end': 1175.781, 'text': 'opening up this command palette and searching for format document every time is a little bit time consuming.', 'start': 1169.479, 'duration': 6.302}, {'end': 1179.402, 'text': "so i'm going to show you how to have your file automatically formatted.", 'start': 1175.781, 'duration': 3.621}, {'end': 1182.683, 'text': 'as soon as you save the changes the top.', 'start': 1179.402, 'duration': 3.281}, {'end': 1189.385, 'text': "let's go to the code menu, preferences and settings.", 'start': 1182.683, 'duration': 6.702}], 'summary': 'Learn to automatically format code for efficiency.', 'duration': 27.888, 'max_score': 1161.497, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1161497.jpg'}, {'end': 1250.498, 'src': 'embed', 'start': 1224.903, 'weight': 6, 'content': [{'end': 1232.227, 'text': "we'll have to open up the terminal window and Run Python on Windows or Python 3 on Mac and then app that pie.", 'start': 1224.903, 'duration': 7.324}, {'end': 1237.37, 'text': 'This is a little bit tedious, So let me show you a shortcut Once again.', 'start': 1232.828, 'duration': 4.542}, {'end': 1244.514, 'text': "let's go to the extensions panel here, search for code runner.", 'start': 1237.37, 'duration': 7.144}, {'end': 1246.596, 'text': 'There are multiple code runners out there.', 'start': 1244.514, 'duration': 2.082}, {'end': 1250.498, 'text': "the one that I'm talking about is this one with the yellow icon.", 'start': 1246.596, 'duration': 3.902}], 'summary': 'Demonstrates how to run python code using code runner extension in the visual studio code.', 'duration': 25.595, 'max_score': 1224.903, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1224903.jpg'}, {'end': 1490.29, 'src': 'embed', 'start': 1465.203, 'weight': 7, 'content': [{'end': 1470.625, 'text': 'In theory, if we give some Python code to any of these implementations, we should get the same result.', 'start': 1465.203, 'duration': 5.422}, {'end': 1473.445, 'text': "But in practice, that's not always the case.", 'start': 1471.085, 'duration': 2.36}, {'end': 1478.727, 'text': 'Certain features may be available in one implementation but not another,', 'start': 1474.065, 'duration': 4.662}, {'end': 1482.748, 'text': 'or they may just behave a little bit differently in a particular implementation.', 'start': 1478.727, 'duration': 4.021}, {'end': 1485.689, 'text': 'Now you might ask what is the point of this?', 'start': 1483.468, 'duration': 2.221}, {'end': 1488.509, 'text': 'Why do we have several implementations of Python??', 'start': 1485.949, 'duration': 2.56}, {'end': 1490.29, 'text': "Wouldn't C Python be enough??", 'start': 1488.909, 'duration': 1.381}], 'summary': 'Multiple python implementations may behave differently due to varying features, prompting the need for multiple implementations.', 'duration': 25.087, 'max_score': 1465.203, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1465203.jpg'}, {'end': 1562.656, 'src': 'heatmap', 'start': 1491.167, 'weight': 0.978, 'content': [{'end': 1497.735, 'text': "Well, it's for the same reason that we have multiple operating systems or multiple browsers, or multiple programming languages.", 'start': 1491.167, 'duration': 6.568}, {'end': 1503.221, 'text': "After all these years, we programmers haven't agreed on a single programming language.", 'start': 1498.396, 'duration': 4.825}, {'end': 1505.905, 'text': "And that's the same story with Python implementations.", 'start': 1503.402, 'duration': 2.503}, {'end': 1512.226, 'text': 'However, there is one technical reason behind these implementations that you should be aware of.', 'start': 1506.741, 'duration': 5.485}, {'end': 1520.513, 'text': 'Since JSON is implemented in Java, it allows you to reuse some existing Java code in a Python program.', 'start': 1512.946, 'duration': 7.567}, {'end': 1528.759, 'text': "So if you're a Java developer and you want to import some Java code into a Python program, you should use JSON instead of CPython.", 'start': 1520.993, 'duration': 7.766}, {'end': 1532.281, 'text': 'Similarly, Iron Python is written in C sharp.', 'start': 1529.56, 'duration': 2.721}, {'end': 1539.123, 'text': "So if you're a C sharp developer and want to bring some C sharp code into a Python program, you will have to use Iron Python.", 'start': 1532.441, 'duration': 6.682}, {'end': 1544.305, 'text': "Next, we'll look at how exactly C Python executes Python code.", 'start': 1539.964, 'duration': 4.341}, {'end': 1560.916, 'text': 'The programming languages we use, like C, C sharp, Java, Python, these are all simple text-based languages that we humans understand.', 'start': 1551.834, 'duration': 9.082}, {'end': 1562.656, 'text': "Computers don't understand them.", 'start': 1561.356, 'duration': 1.3}], 'summary': 'Multiple python implementations exist for reusing existing java or c sharp code in python programs.', 'duration': 71.489, 'max_score': 1491.167, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1491167.jpg'}, {'end': 1671.688, 'src': 'embed', 'start': 1638.588, 'weight': 8, 'content': [{'end': 1642.17, 'text': 'We have JVM implementations for Windows, Mac, and so on.', 'start': 1638.588, 'duration': 3.582}, {'end': 1651.096, 'text': 'So the JVM implementation on Windows knows how to convert Java bytecode into machine code that a Windows machine can understand.', 'start': 1642.91, 'duration': 8.186}, {'end': 1656.62, 'text': 'C Sharp and Python have also taken the same route, so they are platform independent.', 'start': 1651.777, 'duration': 4.843}, {'end': 1663.566, 'text': 'When we run a Python program using CPython, first it will compile our Python code into Python bytecode.', 'start': 1657.321, 'duration': 6.245}, {'end': 1671.688, 'text': 'then it will pass that bytecode to Python virtual machine, which will in turn convert it into machine code and execute it.', 'start': 1664.286, 'duration': 7.402}], 'summary': 'Jvm, c sharp, and python are platform independent, converting bytecode to machine code for execution.', 'duration': 33.1, 'max_score': 1638.588, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1638588.jpg'}], 'start': 759.515, 'title': 'Python development in vs code', 'summary': 'Explores linting benefits in vs code, such as identifying potential code problems, using shortcuts for problem navigation, and selecting linters. it introduces python pep 8, emphasizes adhering to its conventions, and demonstrates using auto pep-8 tool. additionally, it covers python coding tips, vs code formatting shortcuts, configuring code runner, switching python versions, and understanding python implementations. lastly, it explains the role of compilers and virtual machines in code conversion, highlighting c compiler, java bytecode, java virtual machine, and jython for platform-independent execution.', 'chapters': [{'end': 976.655, 'start': 759.515, 'title': 'Linting in vs code', 'summary': 'Explores the benefits of linting in vs code, such as identifying potential code problems, using shortcuts for problem navigation, and selecting linters in python extension, with pylint highlighted as the default and most popular linter.', 'duration': 217.14, 'highlights': ['The linting feature in VS Code helps in identifying potential code problems, allowing users to address issues without waiting to run the program, as demonstrated by resolving syntax errors and incomplete sentences, improving code quality and efficiency.', 'VS Code provides shortcuts for quick navigation to problems, such as shift+command+M on Mac and shift+control+M on Windows, enhancing the speed of code writing and issue resolution.', 'The Python extension in VS Code offers a variety of linters, with PyLint being the default and most popular choice, providing developers with different options to find and report errors in their code, promoting flexibility and customization.', 'The command palette in VS Code, accessed through shift+command+P on Mac or shift+control+P on Windows, allows users to execute various commands, including those related to linting, providing additional features for enhancing the development experience.']}, {'end': 1161.497, 'start': 985.41, 'title': 'Python pep 8 and code formatting', 'summary': 'Introduces python enhancement proposals (pep) and focuses on pep 8, the popular style guide for python code, emphasizing the importance of adhering to its conventions and demonstrating how to use the auto pep-8 tool for code formatting in vs code.', 'duration': 176.087, 'highlights': ['Python Enhancement Proposals (PEP) and PEP 8', 'Demonstration of auto pep-8 tool for code formatting in VS Code', 'Introduction to Python Enhancement Proposals (PEP)']}, {'end': 1564.656, 'start': 1161.497, 'title': 'Python coding tips', 'summary': 'Covers vs code formatting shortcuts, configuring code runner, switching python versions, and understanding python implementations and their significance in programming.', 'duration': 403.159, 'highlights': ['Configuring VS Code to automatically format code on save', 'Setting up Code Runner extension to execute Python code with a shortcut', 'Switching Python versions on Mac by configuring settings.json', 'Understanding the significance of Python implementations and their differences', 'The significance of Python implementations in integrating code from other languages']}, {'end': 1781.78, 'start': 1565.236, 'title': 'Compilers and virtual machines in programming', 'summary': 'Explains the role of compilers and virtual machines in converting code to machine code, highlighting the use of c compiler, java bytecode, java virtual machine, and jython for platform-independent execution, with a mention of python tutorial and course offerings.', 'duration': 216.544, 'highlights': ['The chapter explains the role of compilers and virtual machines in converting code to machine code, highlighting the use of C compiler, Java bytecode, Java Virtual Machine, and Jython for platform-independent execution.', 'Java compiler compiles java code into a portable language called java bytecode, which is not specific to a hardware platform like windows or mac, allowing Java bytecode to run on any platforms that have a JVM.', 'CPython first compiles Python code into Python bytecode and then passes that bytecode to Python virtual machine, which converts it into machine code and executes it, making it platform independent.', 'Jython compiles Python code into Java bytecode, allowing the importing of Java code into a Python program, as the end result is Java bytecode, which will be executed by Java Virtual Machine.', 'The Python tutorial is the first two hours of a complete Python course, covering real world scenarios such as data analysis, automation, working with files and folders, spreadsheets, PDFs, data compression, sending emails, web crawling, consuming APIs, and more, with a 30-day money back guarantee and a certificate of completion.']}], 'duration': 1022.265, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ759515.jpg', 'highlights': ['The linting feature in VS Code helps in identifying potential code problems, improving code quality and efficiency.', 'VS Code provides shortcuts for quick navigation to problems, enhancing the speed of code writing and issue resolution.', 'The Python extension in VS Code offers a variety of linters, promoting flexibility and customization.', 'The command palette in VS Code allows users to execute various commands, including those related to linting, enhancing the development experience.', 'Demonstration of auto pep-8 tool for code formatting in VS Code.', 'Configuring VS Code to automatically format code on save.', 'Setting up Code Runner extension to execute Python code with a shortcut.', 'Understanding the significance of Python implementations and their differences.', 'The chapter explains the role of compilers and virtual machines in converting code to machine code, highlighting the use of C compiler, Java bytecode, Java Virtual Machine, and Jython for platform-independent execution.']}, {'end': 3053.672, 'segs': [{'end': 1883.798, 'src': 'heatmap', 'start': 1790.305, 'weight': 0, 'content': [{'end': 1800.912, 'text': "Let's start this section by a discussion of variables and the built-in primitive types in Python, including integers, floats, booleans and strings.", 'start': 1790.305, 'duration': 10.607}, {'end': 1807.156, 'text': "So here I'm going to define a few variables, starting with the first one, students Count.", 'start': 1800.912, 'duration': 6.244}, {'end': 1813.801, 'text': "note that here all the letters are lowercase and we're using an underscore to separate multiple words.", 'start': 1807.156, 'duration': 6.645}, {'end': 1816.263, 'text': 'This is the naming convention we use in Python.', 'start': 1813.801, 'duration': 2.462}, {'end': 1820.304, 'text': "So here we said students count to, let's say, a thousand.", 'start': 1816.943, 'duration': 3.361}, {'end': 1824.306, 'text': "This is an example of an integer Let's look at an example of a float.", 'start': 1820.825, 'duration': 3.481}, {'end': 1829.508, 'text': "So we said rating to 4 Let's say 99.", 'start': 1824.846, 'duration': 4.662}, {'end': 1832.729, 'text': "Here's another variable is Published.", 'start': 1829.508, 'duration': 3.221}, {'end': 1836.09, 'text': 'we set this to true or false.', 'start': 1832.729, 'duration': 3.361}, {'end': 1839.251, 'text': 'note that the first letter is uppercase.', 'start': 1836.09, 'duration': 3.161}, {'end': 1841.992, 'text': "and Finally, let's take a look at an example of a string.", 'start': 1839.251, 'duration': 2.741}, {'end': 1845.714, 'text': 'So we said course name to Python.', 'start': 1842.673, 'duration': 3.041}, {'end': 1855.562, 'text': 'In Python, you can use either double quotes or single quotes, or you can use triple quotes If your string is multiple lines.', 'start': 1846.674, 'duration': 8.888}, {'end': 1865.431, 'text': 'for example, here I can put triple quotes and In between them I can add a string that has multiple lights.', 'start': 1855.562, 'duration': 9.869}, {'end': 1872.574, 'text': 'okay, and Now one interesting feature in Python is that you can initialize multiple variables on the same line.', 'start': 1865.431, 'duration': 7.143}, {'end': 1877.556, 'text': "For example, let's say we have coordinates like x and y.", 'start': 1873.114, 'duration': 4.442}, {'end': 1879.876, 'text': 'We can initialize these two on the same line.', 'start': 1877.556, 'duration': 2.32}, {'end': 1883.798, 'text': 'So we can set x, y.', 'start': 1880.476, 'duration': 3.322}], 'summary': 'Python variables: integers, floats, booleans, and strings. naming convention used. multiple variable initialization demonstrated.', 'duration': 25.958, 'max_score': 1790.305, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1790305.jpg'}, {'end': 1933.976, 'src': 'embed', 'start': 1873.114, 'weight': 1, 'content': [{'end': 1877.556, 'text': "For example, let's say we have coordinates like x and y.", 'start': 1873.114, 'duration': 4.442}, {'end': 1879.876, 'text': 'We can initialize these two on the same line.', 'start': 1877.556, 'duration': 2.32}, {'end': 1883.798, 'text': 'So we can set x, y.', 'start': 1880.476, 'duration': 3.322}, {'end': 1886.338, 'text': 'We set it to 1, 2.', 'start': 1883.798, 'duration': 2.54}, {'end': 1889.539, 'text': 'This line is exactly equivalent to these two lines.', 'start': 1886.338, 'duration': 3.201}, {'end': 1890.94, 'text': "So it's a shortcut.", 'start': 1889.86, 'duration': 1.08}, {'end': 1898.18, 'text': 'And finally, just like almost every programming language, we can set multiple variables to the same value.', 'start': 1892.253, 'duration': 5.927}, {'end': 1902.825, 'text': 'For example, we can set x and y to 1.', 'start': 1898.76, 'duration': 4.065}, {'end': 1904.547, 'text': 'So these are the basics of variables.', 'start': 1902.825, 'duration': 1.722}, {'end': 1908.091, 'text': "Next, I'll talk about the dynamic nature of Python.", 'start': 1905.128, 'duration': 2.963}, {'end': 1925.17, 'text': 'In terms of typing, programming languages fall into two categories static languages like C++, C, Sharp and Java,', 'start': 1916.144, 'duration': 9.026}, {'end': 1928.912, 'text': 'and dynamic languages like JavaScript, Ruby and Python.', 'start': 1925.17, 'duration': 3.742}, {'end': 1933.976, 'text': 'In static languages, when declaring a variable, we need to specify its type.', 'start': 1929.493, 'duration': 4.483}], 'summary': 'Python allows initializing and setting multiple variables and is a dynamic language.', 'duration': 60.862, 'max_score': 1873.114, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1873114.jpg'}, {'end': 2128.312, 'src': 'embed', 'start': 2098.892, 'weight': 4, 'content': [{'end': 2104.476, 'text': "Now, if you come to Python from a static language like C sharp or Java, you probably don't like this.", 'start': 2098.892, 'duration': 5.584}, {'end': 2111.941, 'text': 'But the good news is that in Python 3.6, we have a new feature called type annotation or type hinting.', 'start': 2104.896, 'duration': 7.045}, {'end': 2115.663, 'text': 'So we can annotate our variables with their type.', 'start': 2112.521, 'duration': 3.142}, {'end': 2120.046, 'text': 'So we add a colon here and then int for integer.', 'start': 2116.324, 'duration': 3.722}, {'end': 2123.108, 'text': 'Now, when I save the changes, everything is still valid.', 'start': 2120.767, 'duration': 2.341}, {'end': 2128.312, 'text': 'If I run the program, there are no errors because Python is a dynamic language.', 'start': 2123.509, 'duration': 4.803}], 'summary': 'Python 3.6 introduces type annotation for variables, accommodating static language users.', 'duration': 29.42, 'max_score': 2098.892, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ2098892.jpg'}, {'end': 2268.448, 'src': 'embed', 'start': 2237.524, 'weight': 5, 'content': [{'end': 2245.289, 'text': 'So here, if we try to update x, Python interpreter is going to allocate some new memory to store the updated value.', 'start': 2237.524, 'duration': 7.765}, {'end': 2252.995, 'text': 'In other words, what we have at this original memory location will not be affected because integers are immutable.', 'start': 2245.589, 'duration': 7.406}, {'end': 2259.039, 'text': 'Let me show you this so Here after we print the ID of X.', 'start': 2253.655, 'duration': 5.384}, {'end': 2268.448, 'text': "I'm gonna increment X and Print its ID one more time See what we get? We get two different addresses.", 'start': 2259.039, 'duration': 9.409}], 'summary': 'Python allocates new memory for updated integer values, demonstrating immutability.', 'duration': 30.924, 'max_score': 2237.524, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ2237524.jpg'}, {'end': 2353.553, 'src': 'embed', 'start': 2320.645, 'weight': 7, 'content': [{'end': 2325.147, 'text': 'So here we use square brackets to indicate that this is a list.', 'start': 2320.645, 'duration': 4.502}, {'end': 2328.329, 'text': 'we can add multiple objects here.', 'start': 2325.147, 'duration': 3.182}, {'end': 2330.13, 'text': 'now, on line 4.', 'start': 2328.329, 'duration': 1.801}, {'end': 2332.271, 'text': "Let's add a new number to this list.", 'start': 2330.13, 'duration': 2.141}, {'end': 2337.193, 'text': 'So we call X dot append and pass 4 here.', 'start': 2332.591, 'duration': 4.602}, {'end': 2344.663, 'text': "now let's run the program one more time and So, as you can see, the address is not changed because lists are mutable.", 'start': 2337.193, 'duration': 7.47}, {'end': 2353.553, 'text': 'So whenever we change them by adding new objects to them or removing existing ones, the changes are applied at the same memory location.', 'start': 2344.943, 'duration': 8.61}], 'summary': 'Using square brackets to create a list, adding objects, and demonstrating mutability in python lists.', 'duration': 32.908, 'max_score': 2320.645, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ2320645.jpg'}, {'end': 2790.189, 'src': 'embed', 'start': 2765.479, 'weight': 6, 'content': [{'end': 2773.462, 'text': "now. this is okay for a simple string, like python programming here, but if you're trying to format a complex string into multiple lines,", 'start': 2765.479, 'duration': 7.983}, {'end': 2776.163, 'text': "it's better to use triple quotes.", 'start': 2773.462, 'duration': 2.701}, {'end': 2781.705, 'text': 'otherwise you will end up with a lot of backslash n sequences and that looks pretty ugly.', 'start': 2776.163, 'duration': 5.542}, {'end': 2784.266, 'text': 'so here we can use triple quotes.', 'start': 2781.705, 'duration': 2.561}, {'end': 2790.189, 'text': 'simply add Python new line programming.', 'start': 2785.926, 'duration': 4.263}], 'summary': 'Using triple quotes in python can simplify formatting complex strings and avoid excessive backslash n sequences.', 'duration': 24.71, 'max_score': 2765.479, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ2765479.jpg'}], 'start': 1790.305, 'title': 'Python variables, types, and memory allocation', 'summary': "Covers python variables, primitive types, and dynamic typing, including examples like setting 'students count' to 1000 or 'rating' to 4.99. it also explains memory allocation, immutable types, escape sequences in strings, and useful string manipulation methods.", 'chapters': [{'end': 1845.714, 'start': 1790.305, 'title': 'Python variables and primitive types', 'summary': "Discusses variables and built-in primitive types in python, including integers, floats, booleans, and strings with examples such as setting 'students count' to 1000, 'rating' to 4.99, 'is published' to true or false, and 'course name' to python.", 'duration': 55.409, 'highlights': ["The chapter discusses variables and the built-in primitive types in Python, including integers, floats, booleans, and strings with examples such as setting 'students count' to 1000, 'rating' to 4.99, 'is Published' to true or false, and 'course name' to Python.", 'The naming convention for variables in Python is lowercase letters with underscores to separate multiple words.', "An example of an integer is setting 'students count' to 1000.", "An example of a float is setting 'rating' to 4.99.", "An example of a boolean is setting 'is Published' to true or false.", "An example of a string is setting 'course name' to Python."]}, {'end': 2178.177, 'start': 1846.674, 'title': 'Python variables and dynamic typing', 'summary': 'Discusses the basics of python variables, including initializing multiple variables on the same line and setting multiple variables to the same value. it also delves into the dynamic nature of python, highlighting how variable types are determined at runtime and the introduction of type annotations in python 3.6.', 'duration': 331.503, 'highlights': ['Python is a dynamic language, so the type of variables is determined at runtime, as opposed to compile time. This is demonstrated through examples of resetting variable types and the introduction of type annotations in Python 3.6.', 'Initialization of multiple variables on the same line is demonstrated through an example of setting x and y to 1 and 2 respectively, showcasing a shortcut in Python variable initialization.', 'The chapter introduces the concept of dynamic typing in Python, contrasting it with static languages and illustrating the determination of variable types at runtime through examples.', 'The use of type annotations or type hinting in Python 3.6 is highlighted, demonstrating how annotations can be added to variables to specify their types and the introduction of the mypy linter for type checking.']}, {'end': 2611.243, 'start': 2186.431, 'title': 'Python memory allocation and immutable types', 'summary': "Explains python's memory allocation for variables, the concept of immutable types, and the differences between mutable and immutable types, along with examples of strings and lists. it also covers the len function, accessing individual characters, negative indexing, slicing strings, and the immutability of strings.", 'duration': 424.812, 'highlights': ['Python interpreter allocates new memory for updated immutable types.', 'Lists are mutable, allowing changes at the same memory location.', 'Negative indexing in strings returns characters from the end of the string.', 'Slicing strings in Python creates a new memory allocation.', 'The len function returns the number of characters in a string.']}, {'end': 3053.672, 'start': 2619.517, 'title': 'Python strings and escape sequences', 'summary': 'Explains the concept of escape characters in python strings, including examples of using backslash, single quote, double quote, and backslash n. it also demonstrates the usage of triple quotes and formatted strings, along with a brief overview of useful methods for string manipulation.', 'duration': 434.155, 'highlights': ['The chapter explains the concept of escape characters in Python strings', 'Demonstrates the usage of triple quotes and formatted strings', 'Provides a brief overview of useful methods for string manipulation']}], 'duration': 1263.367, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ1790305.jpg', 'highlights': ["The chapter discusses variables and built-in primitive types in Python with examples like setting 'students count' to 1000 or 'rating' to 4.99.", 'Python is a dynamic language, so the type of variables is determined at runtime, as opposed to compile time, demonstrated through examples of resetting variable types.', 'The naming convention for variables in Python is lowercase letters with underscores to separate multiple words.', 'Initialization of multiple variables on the same line is demonstrated through an example of setting x and y to 1 and 2 respectively.', 'The use of type annotations or type hinting in Python 3.6 is highlighted, demonstrating how annotations can be added to variables to specify their types.', 'Python interpreter allocates new memory for updated immutable types.', 'Demonstrates the usage of triple quotes and formatted strings.', 'Lists are mutable, allowing changes at the same memory location.']}, {'end': 4112.804, 'segs': [{'end': 3117.167, 'src': 'embed', 'start': 3055.834, 'weight': 2, 'content': [{'end': 3062.556, 'text': 'Now, if you want to find the index of a character or a substring in your string, you can use the find method.', 'start': 3055.834, 'duration': 6.722}, {'end': 3066.717, 'text': "So let's print course.find.", 'start': 3063.196, 'duration': 3.521}, {'end': 3069.197, 'text': "Let's search for pro.", 'start': 3067.657, 'duration': 1.54}, {'end': 3071.058, 'text': 'Run the program.', 'start': 3070.238, 'duration': 0.82}, {'end': 3074.299, 'text': 'So the index of pro here is nine.', 'start': 3071.538, 'duration': 2.761}, {'end': 3080.762, 'text': "Now, if I change this to lowercase p, We'll get negative 1,", 'start': 3075.019, 'duration': 5.743}, {'end': 3090.189, 'text': "because string comparisons are case-sensitive and we don't have these exact three characters in our course variable.", 'start': 3080.762, 'duration': 9.427}, {'end': 3095.854, 'text': 'Now, if you want to replace a character or a sequence of characters, you can use the replace method.', 'start': 3090.189, 'duration': 5.665}, {'end': 3100.178, 'text': "So let's print course that replace.", 'start': 3095.854, 'duration': 4.324}, {'end': 3103.721, 'text': "Let's replace all capital P's with a hyphen.", 'start': 3100.178, 'duration': 3.543}, {'end': 3109.163, 'text': "with this we'll get this weird string here.", 'start': 3104.541, 'duration': 4.622}, {'end': 3117.167, 'text': 'and finally, to check for the existence of a character or a sequence of characters in your string, you can use the in operator.', 'start': 3109.163, 'duration': 8.004}], 'summary': "Using string methods: find, replace, and in operator for character manipulation. example: 'pro' found at index 9.", 'duration': 61.333, 'max_score': 3055.834, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ3055834.jpg'}, {'end': 3673.032, 'src': 'embed', 'start': 3640.415, 'weight': 1, 'content': [{'end': 3644.377, 'text': "because it doesn't do any implicit type conversion on your behalf.", 'start': 3640.415, 'duration': 3.962}, {'end': 3650.239, 'text': 'You have to explicitly tell Python how you want your objects to be converted to the right type.', 'start': 3644.957, 'duration': 5.282}, {'end': 3658.023, 'text': 'JavaScript, on the other hand, is a weakly typed language, so it does perform implicit type conversion for you.', 'start': 3650.86, 'duration': 7.163}, {'end': 3673.032, 'text': 'now to solve this problem we need to use one of the built-in type conversion functions we have int float Bull and stir or string.', 'start': 3658.763, 'duration': 14.269}], 'summary': "Python requires explicit type conversion, unlike javascript's implicit conversion.", 'duration': 32.617, 'max_score': 3640.415, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ3640415.jpg'}, {'end': 4053.806, 'src': 'embed', 'start': 4023.655, 'weight': 0, 'content': [{'end': 4028.359, 'text': 'In Python, just like the other languages, we have three logical operators.', 'start': 4023.655, 'duration': 4.704}, {'end': 4033.744, 'text': 'We have the logical and, the logical or, and not.', 'start': 4029.02, 'duration': 4.724}, {'end': 4035.766, 'text': "Let's take a look at a few examples.", 'start': 4034.284, 'duration': 1.482}, {'end': 4040.29, 'text': "So I'm going to start by defining a variable name, sending it to mosh.", 'start': 4036.446, 'duration': 3.844}, {'end': 4043.733, 'text': "Now let's say this is the input that we get from the user.", 'start': 4040.95, 'duration': 2.783}, {'end': 4047.356, 'text': 'We want to check to see if name is an empty string.', 'start': 4044.373, 'duration': 2.983}, {'end': 4048.457, 'text': 'How do we do that?', 'start': 4047.876, 'duration': 0.581}, {'end': 4053.806, 'text': 'well, earlier i talked about the falsy values in python.', 'start': 4049.181, 'duration': 4.625}], 'summary': 'Python has three logical operators: and, or, and not. examples include checking for an empty string input.', 'duration': 30.151, 'max_score': 4023.655, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4023655.jpg'}], 'start': 3055.834, 'title': 'Python string methods, number representation, type conversion, and conditional statements in python', 'summary': 'Covers python string methods such as find, replace, and the in operator, number representation including binary, hexadecimal, and complex numbers, as well as python type conversion using built-in functions like int, float, bool, and str, and conditional statements with practical examples.', 'chapters': [{'end': 3156.376, 'start': 3055.834, 'title': 'Python string methods and operators', 'summary': 'Covers the usage of string methods such as find, replace, and the in operator in python, demonstrating their behavior with examples, including the case sensitivity of string comparisons and the functionality of the in and not operators.', 'duration': 100.542, 'highlights': ["The find method in Python can be used to locate the index of a character or substring within a string, and returns -1 if the search item is not found. For instance, searching for 'pro' in the string 'course' returns an index of nine, while searching for 'pro' with a lowercase 'p' returns -1, as string comparisons are case-sensitive.", "The replace method is used to replace a character or sequence of characters within a string, for example, replacing all occurrences of a capital 'P' with a hyphen in the string 'course'. This demonstrates how the method modifies the original string.", "The in operator is utilized to check for the existence of a character or sequence of characters within a string in Python. In the given example, the presence of 'programming' in the string 'course' is checked, and the program outputs 'true' after correcting the missing 'r' in the search term.", "The chapter also briefly mentions the not operator, which can be used in conjunction with the in operator to yield the opposite result. In the provided example, 'not' is used to negate the existence check for 'programming' in the string 'course', resulting in 'false'."]}, {'end': 3564.758, 'start': 3157.056, 'title': 'Number representation in python', 'summary': 'Covers representing numbers in python, including binary, hexadecimal, and complex numbers, arithmetic operators, augmented assignment operators, and useful built-in functions for working with numbers.', 'duration': 407.702, 'highlights': ['Python allows representation of numbers in binary, hexadecimal, and complex formats, and has support for arithmetic operators and augmented assignment operators.', 'Python provides useful built-in functions for working with numbers, including round and abs functions.', 'The math module in Python offers additional methods for performing mathematical computations.']}, {'end': 4112.804, 'start': 3564.758, 'title': 'Python type conversion and conditional statements', 'summary': 'Covers python type conversion using built-in functions like int, float, bool, and str, along with the concept of truthy and falsy values. it also explains conditional statements in python and the use of logical operators, demonstrating practical examples.', 'duration': 548.046, 'highlights': ['Python is a strongly typed language, requiring explicit type conversion using built-in functions like int, float, bool, and str.', "Python's concept of truthy and falsy values includes empty strings, number zero, empty lists, and None as falsy, while any other value is considered truthy.", "Python uses indentation to specify a code block in conditional statements and provides 'if-elif-else' blocks without braces, simplifying code structure.", "Python supports logical operators like 'and', 'or', and 'not', which are used to perform logical operations on values or expressions."]}], 'duration': 1056.97, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ3055834.jpg', 'highlights': ["Python supports logical operators like 'and', 'or', and 'not', used to perform logical operations on values or expressions.", 'Python is a strongly typed language, requiring explicit type conversion using built-in functions like int, float, bool, and str.', 'The find method in Python can be used to locate the index of a character or substring within a string, and returns -1 if the search item is not found.', 'The in operator is utilized to check for the existence of a character or sequence of characters within a string in Python.']}, {'end': 4771.787, 'segs': [{'end': 4203.313, 'src': 'embed', 'start': 4178.756, 'weight': 1, 'content': [{'end': 4185.581, 'text': 'this is one of the reasons that python is a highly popular language, because the syntax is so clean, without any clutter,', 'start': 4178.756, 'duration': 6.825}, {'end': 4192.265, 'text': "it's easy to understand and it comes with all these best practices and standards for writing clean code.", 'start': 4185.581, 'duration': 6.684}, {'end': 4201.272, 'text': "so let's rewrite this to 18 like this good, now let's run the program.", 'start': 4192.265, 'duration': 9.007}, {'end': 4203.313, 'text': 'obviously this person is eligible.', 'start': 4201.272, 'duration': 2.041}], 'summary': 'Python is popular due to clean syntax and best practices, making code easy to understand and follow.', 'duration': 24.557, 'max_score': 4178.756, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4178756.jpg'}, {'end': 4326.175, 'src': 'embed', 'start': 4261.672, 'weight': 2, 'content': [{'end': 4266.876, 'text': 'So in Python, we can rewrite this expression almost in plain English.', 'start': 4261.672, 'duration': 5.204}, {'end': 4275.321, 'text': 'so message is Eligible if age is greater than or equal to 18.', 'start': 4266.876, 'duration': 8.445}, {'end': 4278.563, 'text': "Otherwise, it's not eligible.", 'start': 4275.321, 'duration': 3.242}, {'end': 4279.124, 'text': "Isn't that easy?", 'start': 4278.563, 'duration': 0.561}, {'end': 4282.426, 'text': 'So this is the ternary operator in Python.', 'start': 4279.904, 'duration': 2.522}, {'end': 4292.853, 'text': 'In Python we have two types of loops.', 'start': 4290.632, 'duration': 2.221}, {'end': 4299.376, 'text': 'So unlike some languages that have four or five different kinds of loops, here we only have two types.', 'start': 4293.553, 'duration': 5.823}, {'end': 4302.978, 'text': 'We have for loops and while loops.', 'start': 4300.077, 'duration': 2.901}, {'end': 4305.559, 'text': 'Their syntax is very simple and clean.', 'start': 4303.678, 'duration': 1.881}, {'end': 4306.44, 'text': 'Let me show you.', 'start': 4305.859, 'duration': 0.581}, {'end': 4308.08, 'text': 'So we start with the for loops.', 'start': 4306.58, 'duration': 1.5}, {'end': 4313.223, 'text': 'With for loops, we can iterate over any object that is iterable.', 'start': 4308.721, 'duration': 4.502}, {'end': 4314.844, 'text': 'Here are a few examples.', 'start': 4313.843, 'duration': 1.001}, {'end': 4317.366, 'text': 'We can iterate over strings.', 'start': 4314.984, 'duration': 2.382}, {'end': 4326.175, 'text': 'So for x in Python because strings in Python are iterable, which means we can iterate over them.', 'start': 4317.907, 'duration': 8.268}], 'summary': 'Python offers simple and clean syntax for loops, with two types: for and while. strings in python are iterable for loops.', 'duration': 64.503, 'max_score': 4261.672, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4261672.jpg'}, {'end': 4517.64, 'src': 'embed', 'start': 4487.638, 'weight': 0, 'content': [{'end': 4491.121, 'text': 'So our range function returns a range object.', 'start': 4487.638, 'duration': 3.483}, {'end': 4496.145, 'text': 'Range objects in Python are iterable like strings and lists.', 'start': 4491.802, 'duration': 4.343}, {'end': 4498.727, 'text': 'So we can use them in for loops.', 'start': 4496.645, 'duration': 2.082}, {'end': 4504.992, 'text': 'Now, what is interesting about these range objects is that they take a very small amount of memory.', 'start': 4499.428, 'duration': 5.564}, {'end': 4513.978, 'text': "So here, if we pass, let's say, five Billion, we are not going to get a list of 5 billion elements.", 'start': 4505.612, 'duration': 8.366}, {'end': 4517.64, 'text': 'We have a small object that can be iterated over.', 'start': 4513.978, 'duration': 3.662}], 'summary': 'Python range objects are memory efficient, can handle 5 billion elements.', 'duration': 30.002, 'max_score': 4487.638, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4487638.jpg'}, {'end': 4578.857, 'src': 'embed', 'start': 4549.206, 'weight': 3, 'content': [{'end': 4552.09, 'text': 'So we can use our for loop for name in names.', 'start': 4549.206, 'duration': 2.884}, {'end': 4562.161, 'text': 'Now, if name that starts with J, perhaps we want to display a message like found.', 'start': 4553.411, 'duration': 8.75}, {'end': 4570.509, 'text': 'Now if this list has a million objects, as soon as we find the first object, we want to jump out of this loop.', 'start': 4563.803, 'duration': 6.706}, {'end': 4573.432, 'text': "We don't want to continue looping for performance reasons.", 'start': 4570.91, 'duration': 2.522}, {'end': 4576.775, 'text': 'So this is where we use the break statement.', 'start': 4574.173, 'duration': 2.602}, {'end': 4578.857, 'text': 'You have probably seen this before.', 'start': 4577.335, 'duration': 1.522}], 'summary': 'Using a for loop to find names starting with j, and using the break statement to enhance performance.', 'duration': 29.651, 'max_score': 4549.206, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4549206.jpg'}], 'start': 4112.863, 'title': 'Python control flow and syntax', 'summary': 'Covers python chaining comparison operators, ternary operator, loops, and iteration, emphasizing clean code writing, simplicity of syntax, and memory efficiency, with examples and demonstrations.', 'chapters': [{'end': 4299.376, 'start': 4112.863, 'title': 'Python chaining comparison operators and ternary operator', 'summary': 'Discusses the chaining comparison operators in python, demonstrating how to write clean and meaningful code with examples. it also explains the ternary operator in python and highlights the simplicity and ease of understanding of python syntax compared to other languages.', 'duration': 186.513, 'highlights': ['Python allows chaining comparison operators, making it easy to write clean and meaningful code, simplifying complex expressions and making the syntax highly popular.', "Python's ternary operator provides a simple and clear way to express conditional statements, making it easier to understand compared to other programming languages.", "Python has two types of loops, in contrast to some languages that have four or five different kinds, demonstrating the simplicity and efficiency of Python's loop structures."]}, {'end': 4771.787, 'start': 4300.077, 'title': 'Python loops and iteration', 'summary': 'Covers for loops, while loops, and range function in python, emphasizing their syntax, examples, and differences, demonstrating how to use break statements and else blocks, and explaining the concept of iterable range objects, showcasing their memory efficiency and usage in loops.', 'duration': 471.71, 'highlights': ['Python range objects are memory-efficient and iterable, unlike list objects which consume significant memory, making them suitable for large iterations such as 5 billion elements.', 'Demonstration of using break statements to terminate a loop when a specific condition is met, improving performance for large iterations.', 'Explanation of the else block in for loops, which is executed if the loop completes successfully without an immediate break.']}], 'duration': 658.924, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4112863.jpg', 'highlights': ['Python range objects are memory-efficient and iterable, suitable for large iterations such as 5 billion elements.', 'Python allows chaining comparison operators, simplifying complex expressions and making the syntax highly popular.', "Python's ternary operator provides a simple and clear way to express conditional statements, making it easier to understand compared to other programming languages.", 'Demonstration of using break statements to terminate a loop when a specific condition is met, improving performance for large iterations.', "Python has two types of loops, demonstrating the simplicity and efficiency of Python's loop structures."]}, {'end': 5574.113, 'segs': [{'end': 4836.917, 'src': 'embed', 'start': 4773.047, 'weight': 1, 'content': [{'end': 4777.769, 'text': 'Now when we run this program using code runner, it runs it in terminal.', 'start': 4773.047, 'duration': 4.722}, {'end': 4783.351, 'text': "So here in terminal window, let's add a number like one, two, three, four.", 'start': 4778.309, 'duration': 5.042}, {'end': 4786.893, 'text': 'As soon as we enter five, the game stops.', 'start': 4783.812, 'duration': 3.081}, {'end': 4791.09, 'text': 'So this is our while loop similar to for loops.', 'start': 4788.208, 'duration': 2.882}, {'end': 4793.192, 'text': 'We have an else block here.', 'start': 4791.17, 'duration': 2.022}, {'end': 4794.873, 'text': 'We can optionally use that.', 'start': 4793.552, 'duration': 1.321}, {'end': 4801.478, 'text': 'This is only executed if the while loop completes successfully without using a break statement.', 'start': 4795.513, 'duration': 5.965}, {'end': 4816.764, 'text': 'To define a function, we start with the keyword def, which is short for define or function definition.', 'start': 4809.755, 'duration': 7.009}, {'end': 4820.008, 'text': 'Here you can see we have a few code snippets.', 'start': 4817.384, 'duration': 2.624}, {'end': 4822.611, 'text': 'The first one is for defining a function.', 'start': 4820.508, 'duration': 2.103}, {'end': 4823.852, 'text': 'So just press enter.', 'start': 4822.871, 'duration': 0.981}, {'end': 4826.835, 'text': "So here's the basic syntax.", 'start': 4825.174, 'duration': 1.661}, {'end': 4832.076, 'text': 'we start with the function name like increment, now press tab.', 'start': 4826.835, 'duration': 5.241}, {'end': 4836.917, 'text': 'in Parentheses we define parameters if they exist in this case.', 'start': 4832.076, 'duration': 4.841}], 'summary': 'Demonstrating while loop and function definition in python with code snippets.', 'duration': 63.87, 'max_score': 4773.047, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4773047.jpg'}, {'end': 4966.214, 'src': 'embed', 'start': 4941.175, 'weight': 7, 'content': [{'end': 4946.437, 'text': 'What is this? This is what we call a tuple, which is basically a read only list.', 'start': 4941.175, 'duration': 5.262}, {'end': 4951.84, 'text': 'So earlier in the course, you have seen lists like numbers.', 'start': 4947.018, 'duration': 4.822}, {'end': 4954.241, 'text': 'We use square brackets, one, two, three.', 'start': 4952.28, 'duration': 1.961}, {'end': 4955.422, 'text': 'This is a list.', 'start': 4954.702, 'duration': 0.72}, {'end': 4956.983, 'text': 'We can add new objects to it.', 'start': 4955.502, 'duration': 1.481}, {'end': 4958.644, 'text': 'We can remove existing objects.', 'start': 4957.043, 'duration': 1.601}, {'end': 4962.468, 'text': 'A tuple is like a list, but we cannot modify it.', 'start': 4959.364, 'duration': 3.104}, {'end': 4964.491, 'text': 'So we cannot add new objects to it.', 'start': 4962.829, 'duration': 1.662}, {'end': 4966.214, 'text': 'We cannot remove existing objects.', 'start': 4964.671, 'duration': 1.543}], 'summary': 'A tuple is a read-only list; unlike a list, it cannot be modified by adding or removing objects.', 'duration': 25.039, 'max_score': 4941.175, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4941175.jpg'}, {'end': 5042.329, 'src': 'embed', 'start': 4991.242, 'weight': 3, 'content': [{'end': 4998.69, 'text': 'for example, here we can prefix this second argument with something like this by equals.', 'start': 4991.242, 'duration': 7.448}, {'end': 5002.196, 'text': 'Now we can read this code like plain English.', 'start': 4999.775, 'duration': 2.421}, {'end': 5004.758, 'text': 'Increment 2 by 3.', 'start': 5002.597, 'duration': 2.161}, {'end': 5007.559, 'text': 'So this is what we call a keyword argument.', 'start': 5004.758, 'duration': 2.801}, {'end': 5010.381, 'text': "It's just a way to make our code more readable.", 'start': 5008.039, 'duration': 2.342}, {'end': 5016.813, 'text': 'Also similar to a lot of languages out there, we can assign default values to these parameters.', 'start': 5011.391, 'duration': 5.422}, {'end': 5022.295, 'text': 'For example, we can set a default value for the by parameter.', 'start': 5017.313, 'duration': 4.982}, {'end': 5025.736, 'text': "So now we don't have to pass a second argument here.", 'start': 5022.855, 'duration': 2.881}, {'end': 5032.258, 'text': 'And when we run this program, the value of by will be set to one by default.', 'start': 5026.676, 'duration': 5.582}, {'end': 5035.221, 'text': 'And one last thing before we finish this lecture.', 'start': 5033.378, 'duration': 1.843}, {'end': 5039.426, 'text': 'Earlier I talked about type annotation or type hinting.', 'start': 5035.881, 'duration': 3.545}, {'end': 5042.329, 'text': 'We can use that feature in our functions as well.', 'start': 5039.946, 'duration': 2.383}], 'summary': 'Keyword arguments improve code readability and can have default values. type hinting is also supported.', 'duration': 51.087, 'max_score': 4991.242, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4991242.jpg'}, {'end': 5210.505, 'src': 'embed', 'start': 5159.039, 'weight': 0, 'content': [{'end': 5164.827, 'text': 'So all we have to do is to prefix this parameter with an asterisk.', 'start': 5159.039, 'duration': 5.788}, {'end': 5172.217, 'text': "Now let's print list and see what we get when we call the multiply function.", 'start': 5165.728, 'duration': 6.489}, {'end': 5174.8, 'text': 'So save the changes, run the program.', 'start': 5172.818, 'duration': 1.982}, {'end': 5179.978, 'text': 'What do we get here? We get a tuple because of this parenthesis.', 'start': 5175.742, 'duration': 4.236}, {'end': 5186.686, 'text': 'So when we add an asterisk before a parameter, Python will see that parameter as a tuple.', 'start': 5180.619, 'duration': 6.067}, {'end': 5194.195, 'text': 'So when we pass an arbitrary number of arguments, Python will automatically package them into a tuple.', 'start': 5187.026, 'duration': 7.169}, {'end': 5203.783, 'text': 'I told you before a tuple is like a list so we can loop over it get all the numbers and multiply them together Let me show you real quick.', 'start': 5195.681, 'duration': 8.102}, {'end': 5207.885, 'text': 'So We start by defining a variable total.', 'start': 5204.564, 'duration': 3.321}, {'end': 5210.505, 'text': 'We set it to one Next we need a loop.', 'start': 5207.905, 'duration': 2.6}], 'summary': 'Adding an asterisk before a parameter in python packages it into a tuple, enabling automatic packaging of arbitrary arguments into a tuple.', 'duration': 51.466, 'max_score': 5159.039, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ5159039.jpg'}, {'end': 5446.425, 'src': 'embed', 'start': 5415.649, 'weight': 5, 'content': [{'end': 5419.851, 'text': 'The same applies if we have a loop here a for loop or a while loop.', 'start': 5415.649, 'duration': 4.202}, {'end': 5423.252, 'text': "So in Python we don't have block level scope.", 'start': 5420.551, 'duration': 2.701}, {'end': 5430.695, 'text': 'No matter where we define a variable in a function, it is always accessible in that function after it is defined.', 'start': 5423.892, 'duration': 6.803}, {'end': 5433.156, 'text': "So that's all about our local variables.", 'start': 5431.155, 'duration': 2.001}, {'end': 5435.837, 'text': "Now let's talk about global variables.", 'start': 5434.056, 'duration': 1.781}, {'end': 5446.425, 'text': "If we put this message variable outside of this function, now it's a global variable, so it's accessible anywhere in this file, in any functions.", 'start': 5436.618, 'duration': 9.807}], 'summary': 'Python local variables have function-level scope, global variables are accessible anywhere.', 'duration': 30.776, 'max_score': 5415.649, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ5415649.jpg'}, {'end': 5591.477, 'src': 'embed', 'start': 5558.342, 'weight': 8, 'content': [{'end': 5564.286, 'text': 'And that is the reason I said you should avoid using global variables, or, if you really want to use them,', 'start': 5558.342, 'duration': 5.944}, {'end': 5570.53, 'text': 'make sure not to modify them inside of a function, because this can create a side effect in other functions.', 'start': 5564.286, 'duration': 6.244}, {'end': 5574.113, 'text': 'Maybe other functions rely on the original value of that variable.', 'start': 5570.97, 'duration': 3.143}, {'end': 5591.477, 'text': "so avoid using the global statement it's a bad practice it's evil All right, let's finish up this section by looking at debugging in VS Code.", 'start': 5574.933, 'duration': 16.544}], 'summary': 'Avoid using global variables to prevent side effects in functions.', 'duration': 33.135, 'max_score': 5558.342, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ5558342.jpg'}], 'start': 4773.047, 'title': 'Python functions, syntax, and variable scopes', 'summary': 'Covers defining functions in python, including while loops, parameters, return values, tuples, keyword arguments, default parameter values, type annotation, and variable number of arguments. it also explains python variable scopes, covering local and global variables, lack of block-level scope, and good programming practices for modifying global variables inside functions.', 'chapters': [{'end': 5301.331, 'start': 4773.047, 'title': 'Python functions and syntax', 'summary': 'Covers the syntax of defining functions in python, including using while loops, defining parameters, returning values, using tuples, keyword arguments, default parameter values, type annotation, and passing a variable number of arguments to a function.', 'duration': 528.284, 'highlights': ['The chapter covers the syntax of defining functions in Python, including using while loops, defining parameters, returning values, using tuples, keyword arguments, default parameter values, type annotation, and passing a variable number of arguments to a function.', 'In Python, while loops can have an else block that is executed only if the while loop completes successfully without using a break statement.', "Functions in Python are defined using the keyword 'def' and can have parameters defined within parentheses and a colon, followed by an indented body.", "Python functions by default return the 'None' or null value, and can return multiple values as a tuple using parentheses.", 'Tuples in Python are similar to lists, but are read-only and are defined using parentheses instead of square brackets.', 'Keyword arguments can be used to make the code more readable, and default values can be assigned to function parameters.', 'Type annotation or type hinting can be used to specify the parameter types and return type of a function in Python.', 'In Python, an asterisk before a parameter allows for passing an arbitrary number of arguments, which are automatically packaged into a tuple.', 'Double asterisks before a parameter allow for passing an arbitrary number of keyword arguments to a function.']}, {'end': 5574.113, 'start': 5301.331, 'title': 'Python variable scopes', 'summary': "Explains python variable scopes, covering local and global variables, demonstrating how python doesn't have block-level scope and discussing the good programming practices for modifying global variables inside functions.", 'duration': 272.782, 'highlights': ["Python doesn't have block-level scope", 'Difference between local and global variables', 'Good programming practices for modifying global variables']}], 'duration': 801.066, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ4773047.jpg', 'highlights': ['The chapter covers defining functions in Python, including while loops, parameters, return values, tuples, keyword arguments, default parameter values, type annotation, and variable number of arguments.', 'In Python, while loops can have an else block that is executed only if the while loop completes successfully without using a break statement.', "Functions in Python are defined using the keyword 'def' and can have parameters defined within parentheses and a colon, followed by an indented body.", 'Keyword arguments can be used to make the code more readable, and default values can be assigned to function parameters.', 'Type annotation or type hinting can be used to specify the parameter types and return type of a function in Python.', "Python doesn't have block-level scope", 'Double asterisks before a parameter allow for passing an arbitrary number of keyword arguments to a function.', 'Tuples in Python are similar to lists, but are read-only and are defined using parentheses instead of square brackets.', 'Good programming practices for modifying global variables']}, {'end': 6477.399, 'segs': [{'end': 5706.273, 'src': 'embed', 'start': 5633.679, 'weight': 0, 'content': [{'end': 5639.704, 'text': 'Or if you have taken any of my courses before, you know that I always put a lot of emphasis on using your keyboard,', 'start': 5633.679, 'duration': 6.025}, {'end': 5643.247, 'text': 'because professional developers use their keyboard, not their mouse.', 'start': 5639.704, 'duration': 3.543}, {'end': 5648.752, 'text': 'So using F9, you can add or remove a breakpoint.', 'start': 5644.108, 'duration': 4.644}, {'end': 5652.455, 'text': 'Now open up the debugging panel.', 'start': 5649.773, 'duration': 2.682}, {'end': 5656.299, 'text': 'Here on the top, click this icon here.', 'start': 5654.017, 'duration': 2.282}, {'end': 5663.75, 'text': 'This will create a JSON file called launch.json with a bunch of configuration for debugging.', 'start': 5657.762, 'duration': 5.988}, {'end': 5670.681, 'text': 'You can see this file, the project folder, inside of this vs code folder.', 'start': 5664.27, 'duration': 6.411}, {'end': 5672.362, 'text': "here's launch.json.", 'start': 5670.681, 'duration': 1.681}, {'end': 5673.883, 'text': 'now you never have to touch this file.', 'start': 5672.362, 'duration': 1.521}, {'end': 5676.144, 'text': 'we just have to create it the first time.', 'start': 5673.883, 'duration': 2.261}, {'end': 5680.025, 'text': "now let's close this back to the debugging panel.", 'start': 5676.144, 'duration': 3.881}, {'end': 5682.366, 'text': 'now, after this file is created.', 'start': 5680.025, 'duration': 2.341}, {'end': 5689.388, 'text': 'in this drop down list, you can see various configuration options for a debugging session from this list.', 'start': 5682.366, 'duration': 7.022}, {'end': 5692.91, 'text': 'select python current file integrated terminal.', 'start': 5689.388, 'duration': 3.522}, {'end': 5699.14, 'text': "So we're going to debug the current file in the terminal that is integrated inside of VS Code.", 'start': 5693.59, 'duration': 5.55}, {'end': 5702.827, 'text': 'There is also another one with an external terminal.', 'start': 5699.481, 'duration': 3.346}, {'end': 5706.273, 'text': 'Now to start a debugging session, press F5.', 'start': 5703.789, 'duration': 2.484}], 'summary': 'Emphasizes keyboard usage for debugging in vs code, creates launch.json, and starts debugging session with f5.', 'duration': 72.594, 'max_score': 5633.679, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ5633679.jpg'}, {'end': 5813.202, 'src': 'embed', 'start': 5781.734, 'weight': 6, 'content': [{'end': 5783.374, 'text': 'Press shift and F11.', 'start': 5781.734, 'duration': 1.64}, {'end': 5788.585, 'text': 'now we are out back on line 9, f10.', 'start': 5785.015, 'duration': 3.57}, {'end': 5793.137, 'text': 'one more time and one more time, and the debugging session is finished.', 'start': 5788.585, 'duration': 4.552}, {'end': 5807.06, 'text': "Alright, let's finish up this section by looking at a few very useful shortcuts for writing code fast.", 'start': 5801.618, 'duration': 5.442}, {'end': 5813.202, 'text': "First I'm going to show you the shortcuts for Windows users, and in the next lecture we'll look at the shortcuts for Mac.", 'start': 5807.62, 'duration': 5.582}], 'summary': 'Debugging session completed with useful coding shortcuts demo.', 'duration': 31.468, 'max_score': 5781.734, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ5781734.jpg'}, {'end': 6431.257, 'src': 'embed', 'start': 6397.746, 'weight': 2, 'content': [{'end': 6403.268, 'text': 'So what you see here is the simplest and most elegant implementation of the fizzbuzz algorithm.', 'start': 6397.746, 'duration': 5.522}, {'end': 6405.549, 'text': 'And that brings us to the end of this section.', 'start': 6403.969, 'duration': 1.58}, {'end': 6409.631, 'text': "In the next lecture, we're going to explore data structures in Python.", 'start': 6406.19, 'duration': 3.441}, {'end': 6413.913, 'text': "You're going to learn about lists, tuples, sets, and dictionaries.", 'start': 6409.991, 'duration': 3.922}, {'end': 6416.594, 'text': 'I hope you enjoyed this section, and thank you for watching.', 'start': 6414.413, 'duration': 2.181}, {'end': 6431.257, 'text': "You made it this far and that makes me think that you're really enthusiastic about learning Python.", 'start': 6426.394, 'duration': 4.863}], 'summary': 'Introduction to fizzbuzz algorithm and upcoming data structures in python.', 'duration': 33.511, 'max_score': 6397.746, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ6397746.jpg'}], 'start': 5574.933, 'title': 'Debugging in vs code and python fizzbuzz algorithm', 'summary': "Covers the process of debugging in vs code, including adding breakpoints, creating a launch.json file, and emphasizing the use of keyboard shortcuts. it also discusses the python fizzbuzz algorithm, demonstrating a simplified implementation and addressing an error in the original code, resulting in the simplest and most elegant implementation, with demonstrations of the algorithm's functionality with various input values.", 'chapters': [{'end': 5682.366, 'start': 5574.933, 'title': 'Debugging in vs code', 'summary': 'Covers the process of debugging in vs code including adding breakpoints, opening the debugging panel to create a launch.json file, and emphasizing the use of keyboard shortcuts over the mouse. it also mentions the location of the file launch.json.', 'duration': 107.433, 'highlights': ['The chapter emphasizes the use of keyboard shortcuts for adding or removing breakpoints in VS Code, as professional developers use their keyboard, not their mouse.', 'It covers the process of opening the debugging panel in VS Code to create a launch.json file, which contains configurations for debugging, and highlights the location of the file inside the project folder.', 'It explains the process of adding a breakpoint in VS Code using the mouse or the keyboard shortcut F9, and its relevance to starting the debugging process.']}, {'end': 6013.52, 'start': 5682.366, 'title': 'Vs code debugging and coding shortcuts', 'summary': 'Covers debugging in vs code, including setting breakpoints, stepping through code, and using integrated terminal, with a demonstration of useful coding shortcuts for windows and mac users.', 'duration': 331.154, 'highlights': ['The chapter covers debugging in VS Code, including setting breakpoints, stepping through code, and using integrated terminal.', 'Demonstration of useful coding shortcuts for Windows and Mac users is included.']}, {'end': 6477.399, 'start': 6014.66, 'title': 'Python fizzbuzz algorithm', 'summary': "Discusses the fizzbuzz algorithm, demonstrating a simplified implementation and addressing an error in the original code, resulting in the simplest and most elegant implementation of the fizzbuzz algorithm, with demonstrations of the algorithm's functionality with various input values.", 'duration': 462.739, 'highlights': ['The chapter discusses the FizzBuzz algorithm, demonstrating a simplified implementation and addressing an error in the original code.', "The chapter demonstrates the simplest and most elegant implementation of the FizzBuzz algorithm, with demonstrations of the algorithm's functionality with various input values.", 'The chapter provides a preview of the upcoming lecture on data structures in Python, including lists, tuples, sets, and dictionaries.']}], 'duration': 902.466, 'thumbnail': 'https://coursnap.oss-ap-southeast-1.aliyuncs.com/video-capture/f79MRyMsjrQ/pics/f79MRyMsjrQ5574933.jpg', 'highlights': ['The chapter emphasizes the use of keyboard shortcuts for adding or removing breakpoints in VS Code, as professional developers use their keyboard, not their mouse.', 'The chapter covers debugging in VS Code, including setting breakpoints, stepping through code, and using integrated terminal.', 'The chapter discusses the FizzBuzz algorithm, demonstrating a simplified implementation and addressing an error in the original code.', 'It covers the process of opening the debugging panel in VS Code to create a launch.json file, which contains configurations for debugging, and highlights the location of the file inside the project folder.', "The chapter demonstrates the simplest and most elegant implementation of the FizzBuzz algorithm, with demonstrations of the algorithm's functionality with various input values.", 'It explains the process of adding a breakpoint in VS Code using the mouse or the keyboard shortcut F9, and its relevance to starting the debugging process.', 'Demonstration of useful coding shortcuts for Windows and Mac users is included.', 'The chapter provides a preview of the upcoming lecture on data structures in Python, including lists, tuples, sets, and dictionaries.']}], 'highlights': ["Python is the world's fastest growing and most popular programming language, used by a wide range of professionals.", 'Python is a multipurpose language used for data analysis, AI and machine learning, automation scripts, web, mobile, and desktop applications, software testing, and hacking.', 'The average salary of a Python developer in the US was over $115,000 in March 2018, making Python a highly desirable language for professionals.', 'Python is a high-level language, relieving developers from complex tasks such as memory management as required in languages like C++.', 'Python 3 is the version for the future, with Python 2 being the legacy version supported until 2020.', 'Python is cross-platform, allowing building and running Python apps on Windows, Mac, and Linux.', 'Recommendation of Visual Studio Code as the preferred code editor for building Python programs.', 'The linting feature in VS Code helps in identifying potential code problems, improving code quality and efficiency.', "Python supports logical operators like 'and', 'or', and 'not', used to perform logical operations on values or expressions.", 'Python range objects are memory-efficient and iterable, suitable for large iterations such as 5 billion elements.', 'The chapter covers defining functions in Python, including while loops, parameters, return values, tuples, keyword arguments, default parameter values, type annotation, and variable number of arguments.', 'The chapter emphasizes the use of keyboard shortcuts for adding or removing breakpoints in VS Code, as professional developers use their keyboard, not their mouse.']}